热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flink访问hive(上)——在idea中本地运行

本文中使用的flink版本1.13,hive版本2.3.4使用工具idea2020有个朋友问了我这个问题,他说他试了很多网上的方法都跑不了,

        本文中使用的flink版本1.13,hive版本2.3.4

        使用工具idea2020

        有个朋友问了我这个问题,他说他试了很多网上的方法都跑不了,我研究了下,好像给的依赖都不全。

        在官网中的有解决方式,但主要篇幅是在服务器上如何处理,在程序中,只告诉我们需要添加三个依赖,这个其实是不全的。解决这个问题主要麻烦也就是依赖,以下是我能成功访问的依赖:

        

1.13.52.11org.apache.flinkflink-connector-hive_${scala.version}${flink.version}org.apache.flinkflink-table-api-java-bridge_${scala.version}${flink.version}org.apache.flinkflink-table-planner-blink_${scala.version}${flink.version}org.apache.hivehive-exec2.3.4org.apache.hadoophadoop-common2.7.4org.apache.hadoophadoop-client2.7.4org.apache.hadoophadoop-hdfs2.7.4org.apache.flinkflink-clients_${scala.version}${flink.version}org.anarres.lzolzo-hadoop1.0.5

        最后一个依赖是因为我的表采用了lzo,所以导入的依赖,如果你的表未使用lzo可以不用

        大致解释下其他的依赖:官网要求的,hive数据在hdfs上,需要hadoop的依赖,flink客户端,然后得多加个flink-table-planner-blink这个依赖,最后有点就是hive-exec得依赖得放在blink的后面。

测试代码:

EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlinkPlanner().build();TableEnvironment tenv = TableEnvironment.create(settings);String name = "zxchive";//查询的database名称String database = "default";//hive配置文件的位置,里面要有 hive-site.xmlString hiveConfDir = "data/";//创建对象,注册,使用HiveCatalog hive = new HiveCatalog(name, database, hiveConfDir);tenv.registerCatalog("zxchive",hive);tenv.useCatalog("zxchive");
// TableResult table = tenv.executeSql("show tables");
// table.print();//执行sqlTable table2 = tenv.sqlQuery("select * from p_begin limit 10");table2.execute().print();

        代码的话比较简单,没什么需要解释了,注意一点就是需要hive-site.xml这个文件,别忘了。

最后就是:最新的1.14的,我瞟了一眼,代码写法变了,本文应该不适用了。

        官网地址:

                flink1.13的:Overview | Apache Flinkicon-default.png?t=LBL2https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/connectors/table/hive/overview/

                flink1.14的:把上面的地址的1.13改成1.14就行了

        最最最后,放个成功的截图,以证明可用:

 


推荐阅读
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文详细介绍了Java中的输入输出(IO)流,包括其基本概念、分类及应用。IO流是用于在程序和外部资源之间传输数据的一套API。根据数据流动的方向,可以分为输入流(从外部流向程序)和输出流(从程序流向外部)。此外,还涵盖了字节流和字符流的区别及其具体实现。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
author-avatar
mobiledu2502876597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有