Flink 連接 hive 解決 java.net.UnknownHostException

錯誤

今天在實驗 Flink 連接 hive 的操作,由於 CDH 的 hadoop 是 HA,連接過程中報錯如下:

Exception in thread "main" java.lang.IllegalArgumentException: java.net.UnknownHostException: nameservice1
    at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:378)
    at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:310)
    at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:176)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:678)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:619)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2653)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
    
解決方式

1.配置 HADOOP_CONF_DIR 環境變量

2.flink-conf.yaml 配置 env.hadoop.conf.dir

3.如果是在 idea 中調試,僅僅需要在該項目的環境變量中配置如下:
HADOOP_CONF_DIR=/hadoop-conf;HADOOP_USER_NAME=hdfs

其中 /hadoop-conf 中存放的是 hdfs 的配置文件

至此就完美解決了,可以在本地愉快的調試程序了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章