天天看点

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

作者:林志成,阿里云EMR产品团队技术支持,拥有多年开源大数据经验

1、以测试集群版本为例(EMR-4.4.1)

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

2、执行命令如下

cp /opt/apps/ecm/service/flink/1.10-vvr-1.0.2-hadoop3.1/package/flink-1.10-vvr-1.0.2-hadoop3.1/conf/sql-client-defaults.yaml /etc/ecm/flink-conf/

并做如下修改

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

3、将配置分发到各个节点

(如果需要在别的集群也使用的话执行以下步骤,以及所有拷贝jar的步骤在所有机器执行)

scp /etc/ecm/flink-conf/sql-client-defaults.yaml root@emr-worker-1:/etc/ecm/flink-conf/

scp /etc/ecm/flink-conf/sql-client-defaults.yaml root@emr-worker-2:/etc/ecm/flink-conf/

...(这里参考后面,因为还有几个jar需要拷贝)

4、拷贝jar包

start-cluster.sh

sql-client.sh embedded

会发现报错如下:

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

原因是缺少jar包,执行下面操作不然会有一系列报错。

cd /usr/lib/flink-current/lib

sudo cp /lib/hive-current/lib/hive-exec-3.1.2.jar .

sudo wget

https://repo1.maven.org/maven2/org/apache/flink/flink-connector-hive_2.11/1.10.2/flink-connector-hive_2.11-1.10.2.jar https://repo1.maven.org/maven2/org/apache/flink/flink-hadoop-compatibility_2.11/1.10.2/flink-hadoop-compatibility_2.11-1.10.2.jar https://repo1.maven.org/maven2/org/apache/thrift/libfb303/0.9.3/libfb303-0.9.3.jar

5、启动

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

下面是空的因为新集群没有数据,下面到hive去创建点数据

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

重新执行sql-client.sh embedded进入SQL client发现已经能看见了。

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

查询发现报错了。

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

6、排错

排查了下看8081端口都没有起来

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

最后发现是社区hive connector的兼容性问题,之前的冲突是1.10.2导致的,理论上vvr-1.10可以使用社区的hive-connector-1.10.x,这个问题在1.11里面已经修复了。

所以我们换一下jar包。

mv flink-connector-hive_2.11-1.10.2.jar /tmp/

https://repo1.maven.org/maven2/org/apache/flink/flink-connector-hive_2.11/1.10.1/flink-connector-hive_2.11-1.10.1.jar

7、重新执行

start-cluster.sh;sql-client.sh embedded

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤
【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

出现上图所示就成功了。

我们会在钉钉群定期推送精彩案例,邀请更多技术大牛直播分享。欢迎有兴趣的同学扫下方二维码加入钉钉群进行交流和技术分享。关注公众号,锁定每周精彩分享内容!

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤