gpt4 book ai didi

Hadoop伪分布式运行报错: Protocol message tag had invalid wire type

转载 作者:可可西里 更新时间:2023-11-01 14:19:20 24 4
gpt4 key购买 nike

我正在设置一个 Hadoop 2.6.0 单节点集群。我关注hadoop-common/SingleCluster documentation .我在 Ubuntu 14.04 上工作。到目前为止,我已经成功地运行了独立操作。

我在尝试执行伪分布式操作 时遇到错误。我设法启动了 NameNode 守护进程和 DataNode 守护进程。 jps 输出:

martakarass@marta-komputer:/usr/local/hadoop$ jps
4963 SecondaryNameNode
4785 DataNode
8400 Jps
martakarass@marta-komputer:/usr/local/hadoop$

但是当我尝试创建执行 MapReduce 作业所需的 HDFS 目录时,我收到以下错误:

martakarass@marta-komputer:/usr/local/hadoop$ bin/hdfs dfs -mkdir /user
15/05/01 20:36:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
mkdir: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.; Host Details : local host is: "marta-komputer/127.0.0.1"; destination host is: "localhost":9000;
martakarass@marta-komputer:/usr/local/hadoop$

(我相信此时我可以忽略 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... 警告。)


关于 Hadoop 配置文件,我只更改了文档中提到的文件。我有:

etc/hadoop/core-site.xml:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

etc/hadoop/hdfs-site.xml:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

我设法连接到本地主机:

martakarass@marta-komputer:~$ ssh localhost
martakarass@localhost's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-45-generic x86_64)

* Documentation: https://help.ubuntu.com/

Last login: Fri May 1 20:28:58 2015 from localhost

我格式化了文件系统:

martakarass@marta-komputer:/usr/local/hadoop$  bin/hdfs namenode -format
15/05/01 20:30:21 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = marta-komputer/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.6.0
(...)
15/05/01 20:30:24 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at marta-komputer/127.0.0.1
************************************************************/

/etc/hosts:

127.0.0.1       localhost
127.0.0.1 marta-komputer

# 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

etc/主机名:

marta-komputer

最佳答案

这是我在 Ubuntu 上遇到完全相同的问题但使用 2.7.1 时遵循的一组步骤。 ,之前和 future 版本的步骤应该不会有太大差异(我相信)。

1)我的格式/etc/hosts 文件夹:

    127.0.0.1    localhost   <computer-name>
# 127.0.1.1 <computer-name>
<ip-address> <computer-name>

# Rest of file with no changes

2) *.xml配置文件(显示<configuration>标签内的内容):

  • 对于 core-site.xml :

        <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost/</value>
    </property>
    <!-- set value to a directory you want with an absolute path -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>"set/a/directory/on/your/machine/"</value>
    <description>A base for other temporary directories</description>
    </property>
  • 对于 hdfs-site.xml :

        <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
  • 对于 yarn-site.xml :

        <property>
    <name>yarn.recourcemanager.hostname</name>
    <value>localhost</value>
    </property>

    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
  • 对于 mapred-site.xml :

        <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>

3) 验证$HADOOP_CONF_DIR :

这是验证您确实在使用此配置的好机会。在您的.xml 文件所在的文件夹中,查看脚本 hadoop_env.sh 的内容 并确保 $HADOOP_CONF_DIR指向正确的目录。

4) 检查你的端口:

NameNode 在我的标准发行版上绑定(bind)端口 500708020,DataNode 绑定(bind)端口 5001050020、< strong>50075 和 43758。运行 sudo lsof -i确定没有其他服务出于某种原因正在使用它们。

5) 必要时格式化:

此时,如果你改变了值hadoop.tmp.dir你应该通过 hdfs namenode -format 重新格式化 NameNode .如果不是删除您正在使用的 tmp 目录中已经存在的临时文件(默认 /tmp/ ):

6)启动节点和 yarn :

/sbin/ 使用 start-dfs.sh 启动名称和数据节点 脚本和 yarn 与 start-yarn.sh 并评估 jps 的输出:

    ./start-dfs.sh   
./start-yarn.sh

此时,如果 NameNode、DataNode、NodeManager 和 ResourceManager 都在运行,您就可以开始了!

如果其中任何一个尚未启动,请共享日志输出以供我们重新评估。

关于Hadoop伪分布式运行报错: Protocol message tag had invalid wire type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com