錯誤
今天在實驗 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 的配置文件
至此就完美解決了,可以在本地愉快的調試程序了。