【大数据开发】报错汇总

文章列举了在操作Hadoop、Hive和Spark时遇到的一些典型错误,如尝试以root用户操作HDFS、Namenode未启动、Guava版本不匹配、NameNode处于安全模式以及Spark找不到winutils.exe。针对这些问题,提供了相应的解决方案,包括删除datalogs重置Namenode、替换Guava库、等待或强制退出安全模式以及配置HADOOP_HOME环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Hadoop

Attempting to operate on hdfs namenode as root

jps后没有namenode

Hive

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

Caused by:org.apache.hadoop.ipc. RemoteException (org.apache.hadoop.hdfs.server.namenode.SafeModeException):Cannot create directory /tmp/hive. Name node is in safe mode

Spark

ERROR --[main]org.apache.hadoop.util.Shell(line:303):Failed to locate the winutils binary in the hadoop binary pathjava.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binaries


Hadoop

Attempting to operate on hdfs namenode as root

HDfs客户端报错

(31条消息) 两种解决ERROR: Attempting to operate on hdfs namenode as root的方法_世幻水的博客-CSDN博客

报错:

jps后没有namenode

解决

删除data logs 重新初始化namenode 

Hive

报错

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

原因

hive和hadoop里的 guava.jar版本不一样

解决

cd /opt/module/hive-3.1.1/lib
ll |gerp guava
cd /opt/module/hadoop-3.1.3/share/hadoop/common/lib
ll |grep guava

比较两个guava-*-jre.jar的版本

rm guava-低版本的.jar
cp 高版本的 低版本的文件目录加guava-高版本的.jar

报错

Caused by:org.apache.hadoop.ipc. RemoteException (org.apache.hadoop.hdfs.server.namenode.SafeModeExcepti
on):Cannot create directory /tmp/hive. Name node is in safe mode

原因

NameNode 处于安全模式 ,对于客户端是only-read。

NameNode启动时,将镜像文件fsimage载入内存,并执行编辑日志edits log中的所有操作,从而建立完整的元数据metadata

满足最小副本条件(配置项minimal replication condition决定),NameNode 将会在随后(默认30s,配置项dfs.namenode.safemode.extension自动退出safemode

NameNode 处于安全模式有两种情况:

1. NameNode启动前30s.

2. 不满足最小副本条件。

参数:

属性名称数据类型默认值说明
dfs.namenode.replication.minint1成功执行写操作所需要创建的最小副本数目(也称为最小副本级别)
dfs.namenode.safemode.threshold-pctfloat0.999在namenode退出安全模式之前,系统中满足最小副本级别(dfs.namenode.replication.min定义)的块的比例。将这项值设为0或更小会令namenode无法启动安全模式;设为高于1则永远不会退出安全模式
dfs.namenode.safemode.extensionint30000在满足最小副本条件(由dfs.namenode.safemode.threshold-pct定义)之后,namenode还需要处于安全模式的时间(以毫秒为单位)。对于小型集群(几十个节点)来说,这项值可以设为0

解决

 等待30s后,再启动Hive;

如果不行可以强制退出

# hdfs:可执行命令
# dfsadmin:运行一个dfs admin client
# -safemode:参数,安全模式
# get:参数,是否安全模式(on表示是,off表示否)
# enter:参数,进入安全模式
# leave:参数,离开安全模式

hdfs dfsadmin -safemode get    # NameNode是否出于安全模式

hdfs dfsadmin -safemode enter    # 进入安全模式

hdfs dfsadmin -safemode leave    # 离开安全模式

Spark

ERROR --[main]org.apache.hadoop.util.Shell(line:303):Failed to locate the winutils binary in the hadoop binary path
java.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binaries

原因:在windows 系统下没有找到Hadoop相关服务。
解决:在idea中配置HADOOP_HOME环境变量

 

 

来源:

启动 hive 报错:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeE... - 简书 (jianshu.com)

尚硅谷 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

返返返

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值