Raspberry Pi Hadoop 集群配置
Raspberry Pi Hadoop Cluster Configuration
我最近一直在尝试构建和配置 (8-Pi) Raspberry Pi 3 Hadoop 集群(作为夏季的个人项目)。请耐心等待(不幸的是我对 Hadoop 有点陌生)。我使用的是 Hadoop 版本 2.9.2。我认为重要的是要注意,现在我正在尝试让一个 Namenode 和一个 Datanode 彼此完全发挥作用,然后继续前进并在其余七个 Pi 上复制相同的过程。
问题:我的Namenode(别名:master)是唯一的节点,显示为'Live Datanode'在 dfs-health 界面下,并通过使用:
dfsadmin -report
即使 Datanode 显示为 'Active Node'(在群集 Hadoop 的节点中 UI)并且 'master' 未在从属文件中列出。我的目标配置是 Namenode 不应该执行任何 Datanode 操作。此外,我正在尝试以上述命令将我的 Datanode(别名:slave-01)显示为 'Live Datanode'.
的方式配置集群
我怀疑我的问题是由我的 Namenode 和 Datanode 使用相同的主机名 (raspberrypi) 引起的,但是我不确定我需要进行的配置更改才能更正问题。在查看了文档之后,很遗憾,我找不到关于是否允许这样做的决定性答案。
如果有人能帮我解决这个问题,我将不胜感激!我在下面提供了任何相关的文件信息(我认为这可能对解决问题有用)。谢谢 :)
PS:除非另有说明,否则Namenode和Datanode中的所有文件都是相同的。
============================================= ==============================
更新 1
我已经从 Namenode 和 Datanode 的 slaves 文件中删除了 localhost,并将它们各自的主机名也更改为 'master' 和 'slave-01'。
在 运行 JPS 之后:我注意到所有正确的进程都在主节点上 运行,但是我在 Datanode 上遇到错误日志显示:
ExitCodeException exitCode=1: chmod: changing permissions of '/opt/hadoop_tmp/hdfs/datanode': Operation not permitted.
如果有人能帮我解决这个问题,我将不胜感激!不幸的是,尽管使用 '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
核心-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>
纱-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>
你 可以 让你的本地路由器提供主机名而不是自己操作 /etc/hosts
,但是为了改变每个 Pi 的名字,编辑 /etc/hostname
并重启。
开机前后,检查运行ning hostname -f
注意:一旦你有"YARN master"、"HDFS master"、"Hive Master"等,"master"就真的没有意义了。最好按字面意思说namenode
、data{1,2,3}
、yarn-rm
,依此类推
关于权限问题,您可以 运行 以 root 身份执行所有操作,但在家庭实验室之外这样做是不安全的,因此您需要 运行 一些 adduser
命令至少 hduser
(如其他地方所述,但可以是其他任何内容)和 yarn
,然后 运行 作为这些用户执行命令,在 chown -R
之后是这些用户拥有的数据和日志目录他们所属的用户和 Unix 组
我最近一直在尝试构建和配置 (8-Pi) Raspberry Pi 3 Hadoop 集群(作为夏季的个人项目)。请耐心等待(不幸的是我对 Hadoop 有点陌生)。我使用的是 Hadoop 版本 2.9.2。我认为重要的是要注意,现在我正在尝试让一个 Namenode 和一个 Datanode 彼此完全发挥作用,然后继续前进并在其余七个 Pi 上复制相同的过程。
问题:我的Namenode(别名:master)是唯一的节点,显示为'Live Datanode'在 dfs-health 界面下,并通过使用:
dfsadmin -report
即使 Datanode 显示为 'Active Node'(在群集 Hadoop 的节点中 UI)并且 'master' 未在从属文件中列出。我的目标配置是 Namenode 不应该执行任何 Datanode 操作。此外,我正在尝试以上述命令将我的 Datanode(别名:slave-01)显示为 'Live Datanode'.
的方式配置集群我怀疑我的问题是由我的 Namenode 和 Datanode 使用相同的主机名 (raspberrypi) 引起的,但是我不确定我需要进行的配置更改才能更正问题。在查看了文档之后,很遗憾,我找不到关于是否允许这样做的决定性答案。
如果有人能帮我解决这个问题,我将不胜感激!我在下面提供了任何相关的文件信息(我认为这可能对解决问题有用)。谢谢 :)
PS:除非另有说明,否则Namenode和Datanode中的所有文件都是相同的。
============================================= ==============================
更新 1
我已经从 Namenode 和 Datanode 的 slaves 文件中删除了 localhost,并将它们各自的主机名也更改为 'master' 和 'slave-01'。
在 运行 JPS 之后:我注意到所有正确的进程都在主节点上 运行,但是我在 Datanode 上遇到错误日志显示:
ExitCodeException exitCode=1: chmod: changing permissions of '/opt/hadoop_tmp/hdfs/datanode': Operation not permitted.
如果有人能帮我解决这个问题,我将不胜感激!不幸的是,尽管使用 '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
核心-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>
纱-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>
你 可以 让你的本地路由器提供主机名而不是自己操作 /etc/hosts
,但是为了改变每个 Pi 的名字,编辑 /etc/hostname
并重启。
开机前后,检查运行ning hostname -f
注意:一旦你有"YARN master"、"HDFS master"、"Hive Master"等,"master"就真的没有意义了。最好按字面意思说namenode
、data{1,2,3}
、yarn-rm
,依此类推
关于权限问题,您可以 运行 以 root 身份执行所有操作,但在家庭实验室之外这样做是不安全的,因此您需要 运行 一些 adduser
命令至少 hduser
(如其他地方所述,但可以是其他任何内容)和 yarn
,然后 运行 作为这些用户执行命令,在 chown -R
之后是这些用户拥有的数据和日志目录他们所属的用户和 Unix 组