我最近一直在尝试构建和配置一个(8-pi)raspberrypi3hadoop集群(作为夏季的个人项目)。请容忍我(不幸的是我对hadoop有点陌生)。我使用的是hadoop版本2.9.2。我认为重要的是要注意到,现在我正试图让一个namenode和一个datanode彼此完全正常工作,然后继续在其余的七个pi上复制相同的过程。
问题:my namenode(别名:master)是唯一在dfs运行状况界面下显示为“live datanode”的节点,并且通过使用:
dfsadmin-报告
即使datanode显示为“active node”(在集群hadoop ui的节点中),并且“master”没有在slaves文件中列出。我的目标配置是namenode不应该执行任何datanode操作。此外,我正在尝试配置集群,以便上面的命令将我的datanode(别名:slave-01)显示为“live datanode”。
我怀疑我的问题是由于我的namenode和datanode使用了相同的主机名(raspberrypi)造成的,但是我不确定为了纠正这个问题我需要做哪些配置更改。在查看了文档之后,我很不幸地找不到一个关于是否允许这样做的结论性答案。
如果有人能帮我解决这个问题,将不胜感激!我已经在下面提供了任何相关的文件信息(我认为这可能对解决问题有用)。谢谢:)
ps:除非另有说明,否则namenode和datanode中的所有文件都是相同的。
更新1
我已经从namenode和datanode的slaves文件中删除了localhost,并将它们各自的主机名更改为“master”和“slave-01”。
在运行jps之后:我注意到所有正确的进程都在master节点上运行,但是在datanode上有一个错误,日志显示:
exitcodeexception exitcode=1:chmod:更改“/opt/hadoop\u tmp/hdfs/datanode”的权限:不允许操作。
如果有人能帮我解决这个问题,将不胜感激!不幸的是,尽管使用“chmod 777”更改了权限,问题仍然存在。提前感谢:)
主机文件
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspberrypi
192.168.1.2 master
192.168.1.3 slave-01
主文件
master
从属文件
localhost
slave-01
core-site.xml文件
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000/</value>
</property>
<property>
<name>fs.default.FS</name>
<value>hdfs://master:9000/</value>
</property>
</configuration>
hdfs-site.xml文件
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop_tmp/hdfs/datanode</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop_tmp/hdfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.job.tracker</name>
<value>master:5431</value>
</property>
<property>
<name>mapred.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml文件
<configuration>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8035</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
1条答案
按热度按时间yks3o0rb1#
您可以让您的本地路由器提供主机名,而不是操纵主机名
/etc/hosts
你们自己,但为了改变每个圆周率的名字,编辑/etc/hostname
然后重新启动。Boot 前后,检查跑步情况
hostname -f
注:一旦你有了“Yarn大师”、“hdfs大师”、“Hive大师”等,那么“大师”就毫无意义了namenode
,data{1,2,3}
,yarn-rm
,等等关于权限问题,您可以以root身份运行所有内容,但在家庭实验室之外这是不安全的,因此您需要运行一些
adduser
命令至少hduser
(如其他地方所述,但可以是其他任何内容),以及yarn
,然后以这些用户的身份运行命令chown -R
这些用户及其所属的unix组将拥有的数据和日志目录