温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
问题重现
Fayson在CDH6.1.1集群中安装了CDSW1.5,启动一个Session在会话的Terminal执行hadoop命令报如下错误:
cdsw@z24ku4qbzj1pcr62:~$ hadoop fs -ls /
WARNING: log4j.properties is not found. HADOOP_CONF_DIR may be incomplete.
Exception in thread "main" java.lang.RuntimeException: core-site.xml not found
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2869)
at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2838)
at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2715)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1352)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1324)
at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1665)
2
问题分析
1.通过在Terminal终端输出当前会话的HADOOP_CONF_DIR环境变量
cdsw@z24ku4qbzj1pcr62:~$ env |grep HADOOP_CONF_DIR
2.通过HADOOP_CONF_DIR环境变量配置的路径查看发现两个目录下均有core-site.xml配置文件
通过对HADOOP_CONF_DIR环境变量的分析得出,主要是由于在Hadoop3中不支持该环境变量多路径配置方式。
3
问题解决
关于以上问题,主要是由于HADOOP_CONF_DIR的环境变量配置了多路径导致,可以通过如下方式解决该问题。
3.1
Terminal中重新指定环境变量
通过在Terminal中临时指定HADOOP_CONF_DIR的环境变量即可解决该问题,如下截图所示:
3.2
CDSW中配置全局环境变量
1.使用管理员登录CDSW在“Admin”->“Engines”页面的如下位置添加全局的环境变量
2.重新启动Session验证hadoop命令
通过上图可以看到hadoop命令正常执行,并且HADOOP_CONF_DIR的环境变量也修改为我们指定的单路径。
3.3
修改Spark Gateway环境变量方式
1.登录Cloudera Manager进入配置界面选择Gateway搜索“spark*.sh”,在如下配置项增加HADOOP_CONF_DIR配置
2.根据CM提示重启依赖服务(含CDSW),重启成功后在CDSW上进行验证
通过上图可以看到HADOOP_CONF_DIR环境变量已被修改为指定的/etc/hadop/conf路径。
4
问题总结
对于上述问题主要是由于Hadoop3中HADOOP_CONF_DIR环境变量不支持多路径配置导致的问题,可以通过重写HADOOP_CONF_DIR环境变量的方式解决问题。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操