大数据集群报错集锦及解决方案

文章目录

  • 前言
  • 1 Hadoop
    • 1.1 Yarn上执行MR计算报错空指针
    • 1.2 NameNode启动失败
  • 2 Hive
    • 2.1 Hive数据量过大
  • 3 Kafka
    • 3.1 Kafka集群部分机器起不来
  • 4 Azkaban
    • 4.1 Azkaban页面登陆乱码
  • 5 Oozie
    • 5.1 Oozie初始化失败
    • 5.2 脚本修改之后Oozie任务执行失败
  • 6 Kerberos
    • 6.1 启用Kerberos之后,hdfs浏览器打开鉴权失败
  • 7 Spark
    • 7.1 Sparksql向hive覆写overwrite的时候报错
  • 8 Kibana
    • 8.1 Kibana创建index失败
  • 9 DBeaver
    • 9.1 DBeaver连接Phoenix失败


前言

新开一篇,记录一下大数据集群的报错和解决的方法。持续更新ing


1 Hadoop

1.1 Yarn上执行MR计算报错空指针

INFO mapreduce.JobSubmitter:Cleaning up the staging area /tmp/hadoop-yarn/staging/zhouchen/.staging/job_1569676186313_0005
java.lang.NullPointException

大数据集群报错集锦及解决方案_第1张图片
问题原因:
该方法计算的是/home/zhouchen/下的文件,而该目录下存在多个文件。Input只能指定目录又不能指定具体的文件
解决方案:
将文件移到一个单独的目录下即可解决
在这里插入图片描述在这里插入图片描述

1.2 NameNode启动失败

启动namenode报错【错误: 找不到或无法加载主类 namanode】
在这里插入图片描述
问题原因:
初次搭建的Hadoop需要格式化namenode。而且要在namenode所在的机器上格式化namenode节点!!
解决方案:

[zhouchen@zhouchen-linux1 hadoop-2.5.0-cdh5.3.6]$ bin/hdfs namenode -format

2 Hive

2.1 Hive数据量过大

Error: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=2)

问题原因: 查看日志

大数据集群报错集锦及解决方案_第2张图片
解决方案:
临时修改参数或者在配置文件中永久修改配置
设置参数:set mapreduce.map.memory.mb=3072;


3 Kafka

3.1 Kafka集群部分机器起不来

集群启动成功过。stop集群,再次启动,启动命令执行成功,echo? 结果为0,但是jps检查没有kafka进程
问题原因: 日志报错如下:
大数据集群报错集锦及解决方案_第3张图片
集群启动成功过,说明集群搭建是没有问题的,问题在于搭建完好的集群,再次修改server.properties文件,导致logs下的meta.properties与修改后的server.properties不匹配

解决方案:
删除logs下的所有文件,再次启动,启动完成,jps检查进程ok


4 Azkaban

4.1 Azkaban页面登陆乱码

Azkaban服务启动正常,executor/web进程正常,登陆web页面乱码:
大数据集群报错集锦及解决方案_第4张图片
问题原因:
azkaban页面需要使用https协议登陆。http协议登陆会乱码
解决方案:
使用https web协议登陆


5 Oozie

5.1 Oozie初始化失败

Oozie初始化失败,报错Error: E0100: Could not initialize service
大数据集群报错集锦及解决方案_第5张图片
问题原因:
oozie-site.xml配置让Oozie引用Hadoop的配置文件异常
在这里插入图片描述
配置属性值中,不能有空格

解决方案:
在这里插入图片描述

5.2 脚本修改之后Oozie任务执行失败

问题原因:
oozie调度的是hdfs上的脚本。需要将Linux上修改之后的脚本重新put到hdfs上(先删除)
解决方案:
删除hdfs上的脚本文件,将修改之后的脚本文件重新put到hdfs上的相同位置


6 Kerberos

6.1 启用Kerberos之后,hdfs浏览器打开鉴权失败

大数据集群报错集锦及解决方案_第6张图片
问题原因:
浏览器鉴权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都是可以使用的


7 Spark

7.1 Sparksql向hive覆写overwrite的时候报错

.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>

8 Kibana

8.1 Kibana创建index失败

kibana创建index失败,报错analyzer [ik_max_word] not found for field
问题原因:
kibana的解码器不全
解决方案:
需要根据kibana的版本下载对应的解码器

  1. 检查kibana的版本:curl http://hadoop102:9200/
  2. 下载地址https://github.com/medcl/elasticsearch-analysis-ik/releases
  3. 在$elasticsearch_home/plugins目录下创建ik目录,将下载的zip压缩包解压到ik
    unzip elasticsearch-analysis-ik-6.3.1.zip
  4. 重启elasticsearch和kibana
    bash elastic_kibana.sh stop
    bash elastic_kibana.sh start

9 DBeaver

9.1 DBeaver连接Phoenix失败

  1. 不使用Dbeaver的工具下载驱动包,使用Phoenix安装包中的phoenix-4.14.2-HBase-1.3-client.jar

  2. Phoenix依赖HBASE,驱动包中只包含hbase-default.xml,需要将已配置好的HBASE环境conf/hbase-site.xml下载并压缩到驱动包phoenix-4.14.2-HBase-1.3-client.jar中
    大数据集群报错集锦及解决方案_第7张图片

  3. Dbeaver默认依赖的jre环境与Linux安装的Java环境还有Windows的Java环境是不匹配的,需要修改工具的配合文件
    大数据集群报错集锦及解决方案_第8张图片

  4. Dbeaver的Phoenix连接配置如图
    大数据集群报错集锦及解决方案_第9张图片

你可能感兴趣的:(大数据,大数据)