问题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
留意日志输出,启动顺序 这样就可以了。