天天看點

【阿裡雲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 使用步驟