新开一篇,记录一下大数据集群的报错和解决的方法。持续更新ing
INFO mapreduce.JobSubmitter:Cleaning up the staging area /tmp/hadoop-yarn/staging/zhouchen/.staging/job_1569676186313_0005
java.lang.NullPointException
问题原因:
该方法计算的是/home/zhouchen/下的文件,而该目录下存在多个文件。Input只能指定目录又不能指定具体的文件
解决方案:
将文件移到一个单独的目录下即可解决
启动namenode报错【错误: 找不到或无法加载主类 namanode】
问题原因:
初次搭建的Hadoop需要格式化namenode。而且要在namenode所在的机器上格式化namenode节点!!
解决方案:
[zhouchen@zhouchen-linux1 hadoop-2.5.0-cdh5.3.6]$ bin/hdfs namenode -format
Error: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=2)
问题原因: 查看日志
解决方案:
临时修改参数或者在配置文件中永久修改配置
设置参数:set mapreduce.map.memory.mb=3072;
集群启动成功过。stop集群,再次启动,启动命令执行成功,echo? 结果为0,但是jps检查没有kafka进程
问题原因: 日志报错如下:
集群启动成功过,说明集群搭建是没有问题的,问题在于搭建完好的集群,再次修改server.properties文件,导致logs下的meta.properties与修改后的server.properties不匹配
解决方案:
删除logs下的所有文件,再次启动,启动完成,jps检查进程ok
Azkaban服务启动正常,executor/web进程正常,登陆web页面乱码:
问题原因:
azkaban页面需要使用https协议登陆。http协议登陆会乱码
解决方案:
使用https web协议登陆
Oozie初始化失败,报错Error: E0100: Could not initialize service
问题原因:
oozie-site.xml配置让Oozie引用Hadoop的配置文件异常
配置属性值中,不能有空格
问题原因:
oozie调度的是hdfs上的脚本。需要将Linux上修改之后的脚本重新put到hdfs上(先删除)
解决方案:
删除hdfs上的脚本文件,将修改之后的脚本文件重新put到hdfs上的相同位置
问题原因:
浏览器鉴权Kerberos需要kinit方式的桌面客户端方式的鉴权。但是oozie调度的脚本使用的认证方式是keytab,到时kinit方式失败。
解决方案:
1.使用cpw强制修改密码
2. kadmin.local -q “cpw hive/hive”
3.使用MIT Kerberos tickets manager,用kinit方式认证
4.登陆hdfs web
4.最后执行oozie的脚本调度任务,此时不管是keytab认证,还是kinit认证,hdfs web都是可以使用的
.write.mode("overwrite").saveAsTable("city_count")
Caused by: MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.reconnect(HiveMetaStoreClient.java:308)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:148)
at com.sun.proxy.$Proxy12.dropTable(Unknown Source)
at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:1035)
... 35 more
问题原因:
saveMode为overwrite是支持覆盖写的,但是这里报错是因为使用了外部hive,hive的元数据存储在mysql上,而mysql驱动的版本与使用的spark不兼容导致覆写报错。
解决方案:
使用兼容的mysql驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
kibana创建index失败,报错analyzer [ik_max_word] not found for field
问题原因:
kibana的解码器不全
解决方案:
需要根据kibana的版本下载对应的解码器