概述
HIve调试
- 一、调试方法
- 1.1 主要方法
- 1.2 查看工作日志
- 二、具体错误总结
- 2.1 服务启动相关问题
- 2.2 检查resourcemanager运行日志,发现异常如下:
- 2.2.1 解决方案一
- 2.2.2 解决方案二
- 2.2.3 解决方案三
- 2.3 控制台报如下错误:
- 2.4 hadoop 进入安全模式
- 2.5 内存溢出
- 2.6 Hive cli 不显示表头信息:hive-site.xml
- 2.7 yarn 集群中所有namenode 都处于 standby 状态
- 2.8 如果,hive中数据库表的中文变为?
- 2.9 jps查询进程 出现 [1]+
- 2.10 jps查看进程 出现 PID -- process information unavailable
一、调试方法
1.1 主要方法
- 查看工作日志
- 查看配置参数
1.2 查看工作日志
Hive运行环境下,执行如下指令,查看Hive运行日志
指令:tmp/运行用户名(root)/hive.log
注意:如果不能发现问题,或者日志文件只包含 code 1/2 之间的数据,可以通过namenode检查hadoop运行日志
二、具体错误总结
2.1 服务启动相关问题
- hadoop [ha] running ?
解决:jps 查看服务状态。缺少啥,单独启动啥。 - hadoop ha nn1/nn2 active ?
解决:hdfs haadmin -transitionToActive nn1[nn2] - mysql [d] running ?
解决:systemctl restart mysql - hiveserver2(RunJar) running ?
解决:kill -9 PID nohup hivserver2 >/dev/null 2>&1 &
2.2 检查resourcemanager运行日志,发现异常如下:
Got exception: org.apache.hadoop.yarn.exceptions.YarnException:Unauthorized request to start container.
This token is expired. current time is 1598286603872 found 1598258405375
Note: System times on machines may be out of sync. Check system time and time zones.
2.2.1 解决方案一
启动namenode的节点 执行如下指令
- 查看时区
date + ‘%Z’ - 设置时区
rm /etc/localtime
mkdir /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime - 查看时区
yum --y install ntpdate.x86_64
timedatectl
2.2.2 解决方案二
- 退出 hadoop的安全模式
hadoop dfsadmin --safemode leave
2.2.3 解决方案三
- 本地时钟服务器搭建
rpm -qa |grep ntp
yum -y remove ntpdate-4.2.6p5-29.e17.centos.x86_64 - 安装ntp
yum -y install ntp - 修改所有节点的 /etc/ntp.conf
vi /etc/ntp.conf
主节点:
# 当前节点的IP地址
restrict 192.168.8.116 nomodify notrap nopeer noquery
# 集群所在网段的网关Gateway,子网掩码Netmask
restrict 192.168.8.0 mask 255.255.255.0 nomodify notrap
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0
Fudge 127.127.1.0 stratum 10
从节点:
# 当前节点的IP地址
restrict IP地址 nomodify notrap nopeer noquery
# 集群所在网段的网关Gateway,子网掩码Netmask
restrict 192.168.8.0 mask 255.255.255.0 nomodify notrap
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 主节点IP地址
Fudge 主节点IP地址 stratum 10 - 启动ntp服务
service ntpd start - 设置开机启动
chkconfig ntpd on - 查看ntp状态
systemctl status ntpd
watch “ntpq -p”
2.3 控制台报如下错误:
Error: Error while processing statement: FALLED: Execution Error,return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=1)
原因:文件权限无法访问
解决:1)设置hdfs访问权限
hdfs dfs -chmod 777 /path/file
解决2:配置hive的配置文件hive-site.xml
hdfs.permissions默认是true开启状态->仅测试环境使用
编辑配置信息:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
2.4 hadoop 进入安全模式
解决:退出安全模式
- 查看安全模式
hdfs dfsadmin -safemode get - 退出安全模式
hadoop dfsadmin --safemode leave
2.5 内存溢出
错误提示:
java.lang.OutOfMemoryError:Java heap space
解决:修改hadoop配置文件yarn-site.xml
<property>
<name>yarn.sheduler.maximum-allocation-mb</name>
<vlaue>2048</value>
</property>
<property>
<name>yarn.sheduler.minimum-allocation-mb</name>
<vlaue>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<vlaue>2.1</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<vlaue>-Xmx1024m</value>
</property>
2.6 Hive cli 不显示表头信息:hive-site.xml
解决:
hive.cli.print.header
true
2.7 yarn 集群中所有namenode 都处于 standby 状态
解决:手动唤醒yarn集群中某一个节点
hdfs haadmin -transitionToActive nn1
2.8 如果,hive中数据库表的中文变为?
解决:
- 修改 my.cnf 配置
vi /etc/my.cnf
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
[mysql]
no-auto-rehash
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
- 永久配置虚拟机字符集
vi /etc/profile
编辑输入:
export LANG=zh_CN.UTF-8
2.9 jps查询进程 出现 [1]+
原因:
nohup文件日志过大造成磁盘文件已满,清理nohup日志文件命令
解决:
清空nohup.out的命令。
- 方式一:cp /dev/null nohup.out
- 方式二:cat /dev/null > nohup.out
2.10 jps查看进程 出现 PID – process information unavailable
原因:错误的 kill -9 PID 命令杀死进程,导致tmp文件残留
解决:
方案一:
- cd /tmp
- 找到 PID号对应的残留文件
- 删除这个文件:rm -rf 残留文件名
方案二:
执行 tmpwatch 命令删除 /tmp 目录下文件
指令:yum -y install tmpwatch
4. tmpwatch -af 1 /tmp 删除/tmp目录下,1小时未使用的文件
5. tmpwatch -af 1m /tmp 删除/tmp目录下,1分钟未使用的文件
6. tmpwatch -af 1d /tmp 删除/tmp目录下,1天未使用的文件
指令解读:
-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。
最后
以上就是怕孤单眼睛为你收集整理的HIVE使用过程中,运行出错调试总结一、调试方法二、具体错误总结的全部内容,希望文章能够帮你解决HIVE使用过程中,运行出错调试总结一、调试方法二、具体错误总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复