学习过程,会遇到并解决了大量的问题,时间久了,遇到同样问题为了不到处查找,做个笔记很有必要,以后每10个问题一篇日记记录这些解决方法。
------------- 1-1 ------------------
问题:pig运行mapreduce时不断提示
2018-12-17 21:34:52,737 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
原因:没有启动jobhistory server
解决:
配置参考 https://blog.csdn.net/xiaoduan_/article/details/79689882
运行:mr-jobhistory-daemon.sh start historyserver
---------------1- 2 --------------------
问题:运行 hadoop fs -ls / 显示本地文件目录,不显示hdfs目录,提示
Warning: fs.defaultFS is not set when running "ls" command.
同时 pig -x mapreduce 运行时,不能自动connect hdfs
但检查 hadoop的core-site.xml文件 fs.defaultFs 正常设置
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos7:8020</value>
</property>
原因:检查运行 hadoop/bin 目录下的 ./hadoop fs -ls / 正常显示hdfs目录
which hadoop 显示运行的是 /usr/bin/hadoop 这两个不一致
解决: rm /usr/bin/hadoop
并确认 hadoop/bin 目录在执行搜索路径里
------------------ 1-3 -----------------------------
hdfs操作提示在安全模式
参考 https://blog.csdn.net/ys_230014/article/details/80482956
解决命令:bin/hdfs dfsadmin -safemode leave
----------------------1-4--------------------------
spark运行时提示log4j类未发现
解决:在其它组件下找到slf4j-api-1.7.5.jar文件并复制到 sparkXX/lib/slf4j-api-1.7.5.jar
------------------------1-5-------------------------------
spark worker启动提示如下错误
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
解决办法:
/home/linbin/software/hadoop-2.6.0-cdh5.15.1/share/hadoop/mapreduce1/lib/
目录下的
jackson-databind-2.2.3.jar
jackson-core-2.2.3.jar
jackson-annotations-2.2.3.jar
复制到/home/linbin/software/hadoop-2.6.0-cdh5.15.1/share/hadoop/common/lib 目录
更多参考:https://www.jianshu.com/p/a0c38dc46b89
------------------1-6--------------------------------
经常需要使用 jps 查看进程,有时看到
2578 -- process information unavailable
kill 也杀不掉
解决办法:
[root@centos7 linbin]# ls /tmp/hsperfdata_*
/tmp/hsperfdata_linbin:
/tmp/hsperfdata_root:
3989 4149 4343 4532 4749 5078
可以看见pid是在哪个用户目录下的未关闭进程
然后 以该用户身份去使用jps命令即可关闭该进程
sudo -u XXX(上面显示的用户名) jps
------------------1-7------------------------------------
安装oozie后,sqoop不能启动,提示
ERROR: Oozie could not be started
REASON: org.apache.oozie.service.ServiceException: E0000: System property ''oozie.home.dir'' not defined
原来,安装oozie后,启动oozie会自动把oozie.war 复制到 /home/linbin/software/sqoop2-1.99.5-cdh5.16.0/server/webapps/目录
如果oozie配置有问题,不能启动,会造成sqoop也不能启动
暂时解决办法:删除/home/linbin/software/sqoop2-1.99.5-cdh5.16.0/server/webapps/oozie.war 文件和 /home/linbin/software/sqoop2-1.99.5-cdh5.16.0/server/webapps/oozie目录,然后再启动sqoop即可正常
当然,最好是调试好oozie,让oozie网站能正常启动
-----------------1-8--------------------------------------
oozie 不能正常启动
运行 sqoop.sh server run 会提示如下错误
ERROR: Oozie could not be started
REASON: org.apache.oozie.service.ServiceException: E0000: System property ''oozie.home.dir'' not defined
问题原因:是oozie的配置问题,oozie会部署到 $SQOOP_HOME/server/webapps/oozie.war 里,oozie不能启动,导致sqoop也不能启动
问题解决:
(1)修改oozie-4.3.1/conf/oozie-env.sh
加入:
export OOZIE_INSTANCE_ID="${OOZIE_HTTP_HOSTNAME}"
export OOZIE_CONF=${OOZIE_HOME}/conf
export OOZIE_DATA=${OOZIE_HOME}/data
export OOZIE_LOG=${OOZIE_HOME}/logs
export CATALINA_BASE=${OOZIE_HOME}/oozie-server
export CATALINA_TMPDIR=${OOZIE_HOME}/oozie-server/temp
export CATALINA_OUT=${OOZIE_LOG}/catalina.out
(2)从新准备oozie.war
bin/oozie-setup.sh prepare-war
可以看到屏幕提示有加入
Adding to CATALINA_OPTS: -Doozie.home.dir=/home/linbin/software/oozie-4.3.1 -Doozie.config.dir=/home/linbin/software/oozie-4.3.1/conf -Doozie.log.dir=/home/linbin/software/oozie-4.3.1/logs -Doozie.data.dir=/home/linbin/software/oozie-4.3.1/data -Doozie.instance.id=centos7 -Doozie.config.file=oozie-site.xml -Doozie.log4j.file=oozie-log4j.properties ....
(3) 再启动 bin/oozied.sh start
正常可用
如果显示原来已经存在 oozie.pid 删除该文件再启动即可
-----------------------1-9----------------------------------------------
运行oozie项目,提示错误:root is not allowed to impersonate root
解决办法:
检查hadoop的core-site.xml文件
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>root</value>
</property>
然后运行:
hdfs dfsadmin -refreshSuperUserGroupsConfiguration
yarn rmadmin -refreshSuperUserGroupsConfiguration
-------------------------1-10--------------------------------
运行oozie项目,提示错误 JA009: Unknown rpc kind in rpc headerRPC_WRITABLE
原因:lib里有hadoop1.X 的jar
解决办法: 删除libext里含mr1的jar
rm *mr1*.jar
-------------------------------------