知名网站建设商家,视频制作平台,想要自己做一个网站怎么做,企业网站运营推广难做吗我们正在分享有关在基于Linux的机器#xff08;多节点#xff09;上安装Apache Hadoop的经验。 在这里#xff0c;我们还将分享我们在各种故障排除方面的经验#xff0c;并在将来进行更新。 用户创建和其他配置步骤– 我们首先在每个集群中添加一个专用的Hadoop系统用户。… 我们正在分享有关在基于Linux的机器多节点上安装Apache Hadoop的经验。 在这里我们还将分享我们在各种故障排除方面的经验并在将来进行更新。 用户创建和其他配置步骤– 我们首先在每个集群中添加一个专用的Hadoop系统用户。 $ sudo addgroup hadoop
$ sudo adduser –ingroup hadoop hduser 接下来我们在所有群集上配置SSH安全外壳以启用安全的数据通信。 usernode1:~$ su – hduser
hdusernode1:~$ ssh-keygen -t rsa -P “” 输出将类似于以下内容 Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa):
Created directory /home/hduser/.ssh.
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
The key fingerprint is:
9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hduserubuntu
..... 接下来我们需要使用此新创建的密钥启用对本地计算机的SSH访问 hdusernode1:~$ cat $HOME/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys 在所有群集节点中重复上述步骤并通过执行以下语句进行测试 hdusernode1:~$ ssh localhost 还需要执行此步骤以将本地计算机的主机密钥指纹保存到hduser用户的known_hosts文件中。 接下来我们需要编辑/ etc / hosts文件在其中将集群中每个系统的IP和名称放入其中。 在我们的方案中我们有一个主机IP 192.168.0.100和一个从机IP 192.168.0.101 $ sudo vi /etc/hosts 然后将这些值作为键值对放入主机文件中。 192.168.0.100 master
192.168.0.101 slave 提供SSH访问 主节点上的hduser用户必须能够连接 在这种情况下通过ssh master可以将其自身的用户帐户转移到master上而不必是ssh localhost。 通过无密码SSH登录到从设备的hduser帐户。 因此我们将hduser master的SSH公钥分配给它的所有从属在我们的情况下我们只有一个从属。如果您有更多从属请执行以下语句更改计算机名称即slaveslave1slave2。 hdusermaster:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduserslave 尝试通过将主机连接到主机将主机连接到从机然后检查是否一切正常。 配置Hadoop 让我们编辑conf / masters 仅在masters节点中 然后我们在文件中输入master 为此我们告诉Hadoop在此计算机的多节点集群中启动Namenode和secondary NameNodes 。 主NameNode和JobTracker将始终在我们运行bin / start-dfs.sh和bin / start-mapred.sh的计算机上 。 现在让我们使用以下命令编辑conf / slaves 仅在masters节点中 master
slave 这意味着我们也尝试在主机上运行datanode进程-namenode也在其中运行。 如果我们拥有更多的机器作为数据节点我们可以让主服务器充当从服务器。 如果我们有更多的奴隶那么每行添加一个主机如下所示 master
slave
slave2
slave3 等等…。 现在让我们编辑两个重要文件 在集群的所有节点中 conf / core-site.xml conf / core-hdfs.xml 1conf / core-site.xml 我们必须更改指定NameNode主机和端口的fs.default.parameter 。 在我们的例子中这是主机 propertynamefs.default.name/name
valuehdfs://master:54310/value…..[Other XML Values]/property 创建一个目录Hadoop将在其中存储其数据– $ mkdir /app/hadoop 我们必须确保该目录可由任何用户写入 $ chmod 777 /app/hadoop 再次修改core-site.xml以添加以下属性 property
namehadoop.tmp.dir/name
value/app/hadoop/value
/property 2conf / core-hdfs.xml 我们必须更改dfs.replication参数该参数指定默认的块复制。 它定义了单个文件可用之前应复制到多少台计算机。 如果将其设置为大于可用从属节点数更确切地说是DataNode数的值则将开始在日志中看到很多“找到零目标forbidden1.size 1”类型错误文件。 dfs.replication的默认值为3。但是由于在我们的方案中只有两个节点可用因此我们将dfs.replication设置为2。 property
namedfs.replication/name
value2/value
…..[Other XML Values]
/property 让我们通过NameNode 格式化 HDFS文件系统。 在master上运行以下命令 bin/hadoop namenode -format 让我们启动多节点集群 运行命令在本例中我们将在名为master的机器上运行 bin/start-dfs.sh检查Hadoop状态– 一切开始后在所有节点上运行jps命令以查看一切运行良好与否。 在主节点上所需的输出将是– $ jps14799 NameNode
15314 Jps
14880 DataNode
14977 SecondaryNameNode 在从站中 $ jps
15314 Jps
14880 DataNode 当然进程ID会因计算机而异。 故障排除 Datanode可能无法在我们所有的节点中启动。 在这一点上如果我们看到 logs/hadoop-hduser-datanode-.log 在受影响的节点上以下情况除外 java.io.IOException: Incompatible namespaceIDs 在这种情况下我们需要执行以下操作– 停止整个集群即MapReduce和HDFS层。 删除有问题的DataNode上的数据目录该目录由conf / hdfs-site.xml中的 dfs.data.dir指定。 在我们的例子中相关目录是/ app / hadoop / tmp / dfs / data 重新格式化NameNode。 在格式化过程中所有HDFS数据都会丢失。 重新启动集群。 要么 我们可以手动更新有问题的DataNode的namespaceID 停止有问题的DataNode。 编辑$ {dfs.data.dir} / current / VERSION中的namespaceID的值以匹配$ {dfs.name.dir} / current / VERSION中当前NameNode的对应值。 重新启动固定的DataNode。 在Apache Hadoop多节点群集中运行Map-Reduce作业中 我们将按照apache hadoop示例分享有关Map Reduce Job Running的经验。 资源资源 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/ http://hadoop.apache.org/docs/current/ 参考通过Phlox Blog博客的JCG合作伙伴 Piyas De 设置Apache Hadoop Multi-Node Cluster 。 翻译自: https://www.javacodegeeks.com/2013/06/setting-up-apache-hadoop-multi-node-cluster.html