Hadoop报错信息处理积累

一、报错信息:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

错误描述:把Hadoop集群架设好以后,运行TestDFSIO基准测试,发现总是可以map成功,但是reduce总是卡在某个位置13%、11%、16%等,等待七分钟左右,输出信息Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out。

原因分析:由于是在局域网中通信,使用的是主机名,主机名如果无法解析,则DataNode彼此无法找到对方,使得数据快无法复制,从而产生上述问题。

解决办法:在/etc/hosts文件中加入主机名和IP地址的映射

例如:我的hosts文件为:

127.0.0.1	localhost
192.168.1.2	chw-desktop2
192.168.1.3	chw-desktop
192.168.1.4	chw-ProLiant-DL380-G4

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

其中chw-desktop、chw-desktop2、chw-ProLiant-DL380-G4分别为其他DataNode的主机名,前面对应的是它们的IP 地址;

修改所有节点的hosts信息,搞定!!!困扰了好久,好久啊~~~

二、报错信息:
### 三级标题:Hadoop Security Authentication 报错解决方法 在使用 Hadoop 生态系统时,可能会遇到与安全认证相关的错误,例如 `java.lang.NoSuchMethodError` 涉及 `org.apache.hadoop.security.authentication.util.KerberosUtil`。此类问题通常源于依赖版本不一致或配置不当。 #### 依赖管理问题 一种常见的问题是由于不同版本的 Hadoop JAR 包混合使用导致的。例如,在项目中可能已经包含了 `hadoop-client`、`hadoop-common` 和 `hadoop-hdfs` 等依赖项,但它们的版本并不一致,从而引发运行时异常。为了解决这个问题,可以采取以下措施之一: - **排除冲突依赖**:从导入的依赖中排除所有 Hadoop JAR 文件,然后将正确版本的 Hadoop JAR 添加到项目的 `pom.xml` 中。 ```xml <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> </exclusion> </exclusions> </dependency> ``` - **显式添加兼容版本**:确保使用的 `hadoop-common` 版本与其他 Hadoop 组件兼容。例如,如果其他组件要求使用 2.9.2 版本,则应明确声明此版本[^3]。 ```xml <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.9.2</version> </dependency> ``` #### 配置问题 有时候,应用程序中的某些配置也可能引起此类错误。比如,在 Phoenix 数据源配置中启用命名空间映射功能可能导致问题。这种情况下,可以通过移除或注释掉相关配置来解决问题: ```properties # phoenix.schema.isNamespaceMappingEnabled=true # phoenix.schema.mapSystemTablesToNamespace=true ``` 以及相应的代码段: ```java // Properties props = new Properties(); // props.setProperty("phoenix.schema.isNamespaceMappingEnabled", Boolean.toString(true)); // props.setProperty("phoenix.schema.mapSystemTablesToNamespace", Boolean.toString(true)); // dataSource.setConnectProperties(props); ``` 通过这些调整,可以避免因配置不当引起的 `NoSuchMethodError` 异常[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值