知识目录
- 二、Hive启动hiveserver2报错🔥
- 三、HiveServer2启动方式✨
- 四、Hive执行SQL语句报一大堆日志🍉
- 五、Hive使用Load加载数据报错🍭
- 六、Hive执行含Count的SQL语句报错🍉
- 七、Hive执行SQL语句报/bin/java🍭
- 八、总结撒花😊
一、写在前面✨
作者:我是初心
二、Hive启动hiveserver2报错🔥
- 报错内容
java.lang.classnotfoundexception: org.apache.tez.dag.api.tezconfiguration
- 解决方案
hive-site.xml添加以下配置可以解决。
<property>
<name>hive.server2.active.passive.ha.enable</name>
<value>true</value>
</property>
三、HiveServer2启动方式✨
第一种:占用一个Xshell窗口的启动
$HIVE_HOME/bin/hive --service hiveserver2
第二种:也是占用Xshell窗口启动
$HIVE_HOME/bin/hiveserver2
第三种:悬挂启动(推荐,hive.log文件和路径换自己的)
nohup $HIVE_HOME/bin/hiveserver2 >/opt/module/logs/hive_log/hive.log 2>&1 &
启动后会得到一个进程号:
悬挂启动关闭HiveServer2的方式。
首先查询进程号:
ps -ef | grep hive
杀死进程号:
kill -15 3475(进程号)
细心的朋友会发现,这个进程号就是我们悬挂启动HiveServer2时显示的进程号,所以,你直接 kill 掉那个进程号,不查询也是可以的。查询是在我们启动HiveServer2之后还执行了很多命令情况下使用。
四、Hive执行SQL语句报一大堆日志🍉
- 问题详情
在hive-3.1.x版本中,使用hive shell时,会发现在查询命令中夹杂大量的日志信息,严重干扰查询结果显示,特别是强迫症患者,不能忍受。
- 解决方案
在 Hive 安装目录的 conf 目录下创建出 log4j.properties 日志配置文件,添加如下内容。
log4j.rootLogger=WARN, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
五、Hive使用Load加载数据报错🍭
- 报错内容
Invalid path ''/data/deal_after_taoao.csv'': No files matching path hdfs://mycluster/data/deal_after_taoao.csv
- 解决方案
命令敲错了,应该用大写写法。Load加载非csv文件也是同理,只要是报这一类错误。
LOAD DATA INPATH '/data/deal_after_taobao.csv' OVERWRITE INTO TABLE taobao.taobao;
六、Hive执行含Count的SQL语句报错🍉
- 报错内容
[SIGINT handler] ERROR org.apache.hadoop.hive.ql.exec.tez.TezJobExecHelper
或
java.lang.ClassNotFoundException: org.apache.tez.dag.api.DAG
- 解决方案
Hive执行含有Count的SQL语句,属于Map和Reduce任务,需要开启Yarn。在yarn-site.xml和mapred-site.xml文件中配置好yarn并启动即可。
启动Yarn:(ResourceManager结点上)
start-yarn.sh
启动历史服务器:(历史服务器结点上的Hadoop目录下,其实也可以不启动,无妨)
bin/mapred --daemon start historyserver
七、Hive执行SQL语句报/bin/java🍭
- 报错内容
/bin/java: No such file or directory
- 解决方案
需要在集群中的每个结点上,创建一个/bin/java 的软连接,实际指向 jdk 真实目录。(下面的/opt/module/HA是我的jdk安装路径,换成自己的即可)
ln -s /opt/module/HA/jdk1.8/bin/java /bin/java