错误
今天在实验 Flink 连接 hive 的操作,由于 CDH 的 hadoop 是 HA,连接过程中报错如下:
代码语言:javascript复制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 的配置文件
至此就完美解决了,可以在本地愉快的调试程序了。