hadoop 报错:Unable to find SASL server implementation for

在执行hadoop mapreduce 作业时报错:  集群配置

Hadoop 2.8 with openjdk-9.




0002_000002. Got exception: org.apache.hadoop.security.AccessControlException: Unable to find SASL server implementation for DIGEST-MD5

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@9-internal/Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(java.base@9-internal/NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(java.base@9-internal/DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(java.base@9-internal/Constructor.java:453)
    at org.apache.hadoop.yarn.ipc.RPCUtil.instantiateException(RPCUtil.java:53)
    at org.apache.hadoop.yarn.ipc.RPCUtil.instantiateIOException(RPCUtil.java:80)
    at org.apache.hadoop.yarn.ipc.RPCUtil.unwrapAndThrowException(RPCUtil.java:119)
    at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:109)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:531)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:398)
    at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:163)
    at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:155)
    at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:335)
    at com.sun.proxy.$Proxy87.startContainers(Unknown Source)
    at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119)
    at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:250)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@9-internal/ThreadPoolExecutor.java:1158)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@9-internal/ThreadPoolExecutor.java:632)
    at java.lang.Thread.run(java.base@9-internal/Thread.java:804)
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Unable to find SASL server implementation for DIGEST-MD5
    at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1481)
    at org.apache.hadoop.ipc.Client.call(Client.java:1427)
    at org.apache.hadoop.ipc.Client.call(Client.java:1337)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:227)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:116)
    at com.sun.proxy.$Proxy86.startContainers(Unknown Source)
    at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:106)
    ... 15 more

百度一天没发现解决方法,在stackoverflow终于找到了解决答案,是JDK 版本的问题,与是否使用安全机制没有关系
问题链接:https://stackoverflow.com/questions/41185251/spark-hadoop-unable-to-find-sasl-server-implementation-for-digest-md5

我的问题:一开始配置安装了oracle的jdk  1.8,在安装hadoop 集群时,因为更新了一下软件,jdk版本使用ubuntu的版本openjdk-.1.9配,没有使用自己安装,一直保以上错误

以上jdk是后来修改的,我自己安装的是后来将置到hadoop-env.sh成为后来的openjdk的路径,故造成以上错误.




解决方法:  修改自己已安装的JDK 版本
vi  hadoop-env.sh


export JAVA_HOME=/usr/java

当你在Ubuntu系统上尝试启动Hadoop服务时,如果遇到 Job for hadoop.service failed错误,这通常意味着Hadoop主服务(如NameNode或JobTracker)启动过程中遇到了问题,导致控制进程以非零退出代码结束。这种错误可能由多种原因引起,包括但不限于: 1. **配置文件问题**:检查Hadoop配置文件(如core-site.xml, hdfs-site.xml, yarn-site.xml等),确保它们正确地指定了Hadoop的安装路径、网络设置和资源限制。 2. **依赖缺失**:确保所有必要的库和组件已经安装,并且版本兼容。比如,Java、SSH、Zookeeper、HDFS和YARN等都需要正常运行。 3. **权限问题**:Hadoop服务可能需要特定的用户权限才能访问文件系统、日志目录或其他关键资源。确认这些权限是否已正确设置。 4. **磁盘空间不足**:检查Hadoop数据目录是否有足够的存储空间,如果没有,你需要清理一些空间或者调整配置。 5. **日志文件**:查看Hadoop的日志文件(通常是logs目录下的)以获取具体的错误信息,这有助于定位问题根源。 6. **网络问题**:确认集群内的节点间网络连接畅通,特别是Hadoop的通信端口(如8020, 9000等)是否对外开放并且可达。 7. **服务冲突**:检查是否有其他服务占用了Hadoop的服务端口,导致启动失败。 为了解决这个问题,你可以按照以下步骤进行排查: 1. **查看错误日志**:使用命令 `journalctl -u hadoop.service` 或 `sudo journalctl -xe` 查看详细错误信息。 2. **检查服务状态**:`systemctl status hadoop.service` 看服务是否启动,以及启动时的输出。 3. **尝试重启服务**:`sudo systemctl restart hadoop.service` 并观察是否能解决问题。 4. **修复问题后手动启动**:如果重启不成功,找到并解决日志中指出的具体错误,然后手动启动服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值