0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析

Fayson的github: https://github.com/fayson/cdhproject

推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f

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)

0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第1张图片

2 问题分析

1.通过在Terminal终端输出当前会话的HADOOP_CONF_DIR环境变量

cdsw@z24ku4qbzj1pcr62:~$ env |grep HADOOP_CONF_DIR

在这里插入图片描述

2.通过HADOOP_CONF_DIR环境变量配置的路径查看发现两个目录下均有core-site.xml配置文件

0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第2张图片

通过对HADOOP_CONF_DIR环境变量的分析得出,主要是由于在Hadoop3中不支持该环境变量多路径配置方式。

3 问题解决

关于以上问题,主要是由于HADOOP_CONF_DIR的环境变量配置了多路径导致,可以通过如下方式解决该问题。

3.1 Terminal中重新指定环境变量

通过在Terminal中临时指定HADOOP_CONF_DIR的环境变量即可解决该问题,如下截图所示:
0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第3张图片

3.2 CDSW中配置全局环境变量

1.使用管理员登录CDSW在“Admin”->“Engines”页面的如下位置添加全局的环境变量

0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第4张图片

2.重新启动Session验证hadoop命令

0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第5张图片

通过上图可以看到hadoop命令正常执行,并且HADOOP_CONF_DIR的环境变量也修改为我们指定的单路径。

3.3 修改Spark Gateway环境变量方式

1.登录Cloudera Manager进入配置界面选择Gateway搜索“spark*.sh”,在如下配置项增加HADOOP_CONF_DIR配置

0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第6张图片

2.根据CM提示重启依赖服务(含CDSW),重启成功后在CDSW上进行验证

0649-6.1.1-在C6集群中CDSW的Terminal执行hadoop命令异常分析_第7张图片

通过上图可以看到HADOOP_CONF_DIR环境变量已被修改为指定的/etc/hadop/conf路径。

4 问题总结

对于上述问题主要是由于Hadoop3中HADOOP_CONF_DIR环境变量不支持多路径配置导致的问题,可以通过重写HADOOP_CONF_DIR环境变量的方式解决问题。

你可能感兴趣的:(Hadoop实操)