【常见问题】hive、Hadoop(HA)、sqoop出现的问题的总结---各种问题以及解决方案-

问题1:sqoop运行时出现下面的问题:

问题:Exceptionin thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

       atorg.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43)

       at org.apache.sqoop.SqoopOptions.writeProperties(SqoopOptions.java:755)

解决方案:将java-json.jar导入lib目录下

 

 

问题2 hive与sqoop的相关问题

 Encountered IOException running import job:java.io.IOException:

java.lang.ClassNotFoundException:org.apache.hadoop.hive.conf.HiveConf

分析原因:hive相关的jar没有加载到SQOOP运行环境CLASSPATH

 exportHADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/opt/cdh5.7.6/hive-1.1.0-cdh5.7.6/lib/*, 不报错,但是hive数据库中没有相关的表, 需要将hive-site.xml配置文件放到${HADOOP_HOME}/ete/hadoop/下面

 ln -s/opt/cdh5.7.6/hive-1.1.0-cdh5.7.6/conf/hive-site.xml   

/opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/etc/hadoop/hive-site.xml

如下图所示:

 

 

 

问题3:Hive的相关问题--严格模式

 FAILED: SemanticException 22:2 In strict mode,if ORDER BY is specified, LIMIT must also be specified. Error encountered neartoken 'total'

分析问题:出现这个问题是因为设置了安全模式的原因,这是在配置文件中配置以下内容

 

这是因为没有指定分区表,也是因为设置了安全模式,不需要查询所有。

企业中,生产环境中集群必须配置 hive的运行模式是严格模式。防止新手查询出现宕机。

Hadoop分布式集群的HA实现:

开始格式化会出现status为1,这样如果你的配置没有错,那可能是你没有启动journalnode这个服务,如果启动了就可以了,没有启动会报以下的错。造成这个错误有三个原因:

1.      slaves文件没有配置

2.      journalnode没有在配置文件中配置

3.      journalnode服务没有启动。

然后启动所以集群的journalnode就可以了。以及删掉tmpData目录下的文件以及logs在格式化就可以了。

问题4:启动【nn 1】切换为Active  bin/hdfs haadmin-transitionToActive nn1时出现以下错误

Refusing to manually manage HA state, since it may cause
a split-brain scenario or other incorrect state.
If you are very sure you know what you are doing, please 
specify the --forcemanual flag.

可能是你没有启动zookeeper,或者zookeeper的没有格式化,先停止格所有进程,然后在格式化

启动zookeeper:bin/zkServer.shstart

初始化HA在zookeeper中状态:bin/hdfs zkfc -formatZK     

启动hdfs服务:sbin/start-dfs.sh

 留意日志输出,启动顺序  这样就可以了。

 

 

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值