通过Hue创建Sqoop任务将数据从HBase导入HDFS时报错
用户问题
利用Hue的Sqoop操作把HBase中的数据导入HDFS时报错:
Caused by: java.lang.ClassNotFoundException: org.apache.htrace.Trace
本章节仅适用于MRS 1.9.2版本集群。
问题现象
Sqoop任务运行成功,但HDFS中的CSV文件无内容。
原因分析
由于jar包冲突或者缺少相关jar包导致。
处理步骤
- 进入Sqoop的安装目录下查找文件。
- 进入Sqoop节点的“/opt/Bigdata/MRS_1.9.2/install/FusionInsight-Sqoop-1.99.7/FusionInsight-Sqoop-1.99.7/server/lib”目录下,进行grep查找。
- 进入Yarn WebUI界面,查看运行的任务的报错具体信息。
- 将java.class.path复制出来,搜索htrace-core。
- 复制jar包到如下位置。
cp /opt/Bigdata/MRS_1.9.2/install/FusionInsight-Sqoop-1.99.7/FusionInsight-Sqoop-1.99.7/server/lib/htrace-core-3.1.0-incubating.jar /opt/Bigdata/MRS_1.9.2/install/FusionInsight-Hadoop-2.8.3/hadoop/share/hadoop/common/lib/
- 修改权限。
chmod 777 htrace-core-3.1.0-incubating.jar (真实复制的jar包)
chown omm:ficommon htrace-core-3.1.0-incubating.jar (真实复制的jar包)
- 查看hosts文件,对其他所有节点进行同样的复制jar包操作。
- 重新运行sqoop任务,产生报错如下:
- 去HBase的安装目录下查找文件。
- 进入HBase的lib目录下,进行grep查找。
- 继续复制jar包。
cp /opt/Bigdata/MRS_1.9.2/install/FusionInsight-HBase-1.3.1/hbase/lib/metrics-core-2.2.0.jar /opt/Bigdata/MRS_1.9.2/install/FusionInsight-Hadoop-2.8.3/hadoop/share/hadoop/common/lib/
- 修改文件权限。
chmod 777 metrics-core-2.2.0.jar (真实复制的jar包)
chown omm:ficommon metrics-core-2.2.0.jar(真实复制的jar包)
- 查看hosts文件,对其他所有节点进行同样的复制jar包操作。
- 继续运行sqoop任务,成功。
处理总结
- 将sqoop的lib下htrace-core-3.1.0-incubating.jar和hbase的lib下的metrics-core-2.2.0.jar,复制到“/opt/Bigdata/MRS_1.9.2/install/FusionInsight-Hadoop-2.8.3/hadoop/share/hadoop/common/lib/”下。
- 修改jar包的文件权限为777和omm:ficommon。
- 所有节点均采取以上操作,重新运行sqoop任务即可。