问题处理记录

1、问题描述:java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
at org.apache.hive.hcatalog.mapreduce.HCatBaseInputFormat.getSplits(HCatBaseInputFormat.java:102)
at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:303)
at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:320)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:198)
at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1341)
at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1338)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1844)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1338)
at org.apache.kylin.engine.mr.common.AbstractHadoopJob.waitForCompletion(AbstractHadoopJob.java:180)
at org.apache.kylin.engine.mr.steps.FactDistinctColumnsJob.run(FactDistinctColumnsJob.java:111)
at org.apache.kylin.engine.mr.common.MapReduceExecutable.doWork(MapReduceExecutable.java:131)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:69)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

解决方案:

hive版本问题(老的是1.1.0,更换成2.3.2就好了)


2、问题描述:FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. PermGen space

解决方案:

在hive/conf/hive-env.sh文件中,加入下面的内容,问题得以解决:
export HADOOP_OPTS="$HADOOP_OPTS -XX:PermSize=512M -XX:MaxPermSize=1024M"

参考https://blog.csdn.net/u014454538/article/details/83792344

3、问题描述:
Exception: java.net.ConnectException: Call From clzx4/134.64.14.139 to clzx4:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
java.net.ConnectException: Call From clzx4/134.64.14.139 to clzx4:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

解决方案:

检测端口是否开启netstat -aln|grep 10020
启动historyserver,解决
$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver

4、问题描述:Failed to find metadata store by url: kylin_metadata@hbase

解决方案:

kylin的版本与hbase版本不兼容,换成合适版本即可

 

5、问题描述:Could not allocate all requires slots

解决办法:
# 每个taskManager提供任务的slots数量大小(默认1,修改成3)
taskmanager.numberOfTaskSlots: 3

6、问题描述:java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.mapreduce.JobCounter.VCORES_MILLIS_REDUCES
解决办法:
Hbase 0.98 使用的默认hadoop client 版本是2.2.0, 可以通过命令./hbase classpath 显示。
这是由于hbase 0.98使用的hadoop-client 与集群的hadoop版本不一致造成的。可能的几种解决方法
1, 升级hbase0.98到 hbase1.0+
2, 让hbase引用hadoop-2.5.2 版本的客户端。我选择的第二种方法。升级hbase 有点麻烦。下面的是具体的方法
1)进入hbase/lib目录, 删除(或者移走)以hadoop- 开头的所有jar 包(调整后hbase不需要重启即可生效,但是kylin需要重启)
2)通过./hbase classpath, 可以看到hbase的运行classpath已经包含了hadoop的library 路径,应该是通过hbase-env.sh 文件中的# Extra Java CLASSPATH elements.  Optional. export HBASE_CLASSPATH=/home/hadoop/hadoop/etc/hadoop 这条配置路径。
所以实际上只需要第一步,删除或者移走hbase0.98 lib 目录下的hadoop-2.2.0客户端jar包。
运行后提交mapreduce job 成功。
原文链接:https://blog.csdn.net/abccheng/article/details/53066420

7、问题描述:kafka程序运行一段时间报内存溢出
解决办法:异常信息有29W数据,导致内存满了

8、问题描述:centos7和centos6 执行hadoop fs -du hdfs路径,列出的文件列数不一致,导致获取文件路径异常,执行命令列出的每列中间的空格数不一致,在分隔获取hdfs路径时不正确,导致远程写入hsfs,报错illegal character in scheme name at index 0

9、问题描述:排查实时抽取数据冗余,无法消费到最新消息问题
解决办法:因为max.poll.interval.ms默认值为30000,设置的max.poll.records为1000,在阻塞时间内业务尚未处理完成,kafka会认为心跳失败,offset未提交,重新消费.所以数据一是重复的,二无法消费到最新的消息

10、问题描述:SparkSQL 运行异常:org/codehaus/janino/InternalCompilerException
解决办法:https://www.jianshu.com/p/e1dd00df7a84

11、问题描述:java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapred.FileInputFormat
解决办法:https://blog.csdn.net/tianhouquan/article/details/85055169
这个貌似和spark不兼容,需要低版本到的guava,在pom里面添加一个15版本的,再次运行,发现没问题了
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>15.0</version>
</dependency>

12、问题描述:Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: copyFiles: error while moving files!!! Cannot move hdfs://master:9000/user/hive/warehouse/cdr_adt.db/adt_ip_patientacount_c/.hive-staging_hive_2019-10-29_13-49-57_812_8479165422659368150-1/-ext-10000/part-00000 to hdfs://master:9000/user/hive/warehouse/cdr_adt.db/adt_ip_patientacount_c/part-00000_copy_117
解决办法:https://blog.csdn.net/MrZhangBaby/article/details/101203558

sparksql

13、问题描述:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在: s3:// .... 
解决办法:【SparkSql分区损坏的问题解决】损坏分区数据不参与计算
在Spark程序中设置spark.sql.hive.verifyPartitionPath=true[.config("spark.sql.hive.verifyPartitionPath", "true")];表示忽略这个损坏的分区数据、
或者在spark-default.conf,spark.sql.hive.verifyPartitionPath=true;中设置

 

posted @ 2019-09-04 14:46  小辣椒2009  阅读(572)  评论(0编辑  收藏  举报