如何在Ubuntu上设置Hadoop多节点集群

时间:2020-03-05 15:25:45  来源:igfitidea点击:

在本教程中,我们将学习如何在Ubuntu 16上设置多节点hadoop集群。
具有超过1个datanode的hadoop集群是一个多节点hadoop集群,因此,本教程的目标是获得2数据节点已启动并正在运行。

1)准备工作

  • Ubuntu 16.04
  • Hadoop-2.7.3
  • Java 7
  • SSH协议

在本教程中,我有两个ubuntu16.
04系统,我称它们为主系统和从属系统,每个系统上将运行一个datanode。

主站的IP地址-> 192. 168. 1. 37

从站的IP地址-> 192. 168. 1. 38

在 Master

编辑具有主机和从机IP地址的主机文件。

sudo gedit /etc/hosts

如下编辑文件,我们可以删除文件中的其他行。
编辑后,保存文件并关闭它。

在从服务器上

编辑具有主机和从机IP地址的主机文件。

sudo gedit /etc/hosts

如下编辑文件,我们可以删除文件中的其他行。
编辑后,保存文件并关闭它。

2)Java安装

在设置hadoop之前,我们需要在系统上安装Java。
使用以下命令在两台ubuntu机器上安装开放式JDK 7.

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
do apt-get install openjdk-7-jdk

运行以下命令,查看系统上是否安装了Java。

java -version

默认情况下,java获取存储在/usr/lib/jvm /目录中。

ls /usr/lib/jvm

在中设置Java路径。
bashrc文件。

sudo gedit .bashrc

导出JAVA_HOME =/usr/lib/jvm/java-7-openjdk-amd64

导出PATH = $PATH:/usr/lib/jvm/java-7-openjdk-amd64/bin

运行以下命令以更新在中所做的更改。
bashrc文件。

source .bashrc

3)SSH

Hadoop需要SSH访问权限来管理其节点,因此我们需要在主系统和从属系统上都安装ssh。

sudo apt-get install openssh-server</pre

Now, we have to generate an SSH key on master machine. When it asks you to enter a file name to save the key, do not give any name, just press enter.
ssh-keygen -t rsa -P ""

其次,我们必须使用此新创建的密钥启用对主计算机的SSH访问。

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

现在,通过连接到本地计算机来测试SSH设置。

ssh localhost

现在运行以下命令,将在主服务器上生成的公钥发送给从服务器。

ssh-copy-id -i $HOME/.ssh/id_rsa.pub ubuntu@slave

现在,主服务器和从服务器都具有公共密钥,我们可以将主服务器连接到主服务器,也可以将主服务器连接到从服务器。

ssh master
ssh slave

在 Master

如下编辑主文件。

sudo gedit hadoop-2.7.3/etc/hadoop/masters

如下编辑奴隶文件。

sudo gedit hadoop-2.7.3/etc/hadoop/slaves

在Slave

如下编辑主文件。

sudo gedit hadoop-2.7.3/etc/hadoop/masters

4)Hadoop安装

现在,我们已经准备好了Java和ssh设置。
我们很高兴在两个系统上都安装了hadoop。
使用下面的链接下载hadoop软件包。
我正在使用最新的稳定版hadoop2. 7. 3

http://hadoop。
阿帕奇。
组织/版本。
html

在 Master

下面的命令将下载hadoop-2. 7. 3 tar文件。

wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz
ls

解压缩文件

tar -xvf hadoop-2.7.3.tar.gz
ls

确认系统上已安装hadoop。

cd hadoop-2.7.3/
bin/hadoop-2.7.3/

在设置hadoop的配置之前,我们将在中设置以下环境变量。
bashrc文件。

cd
sudo gedit .bashrc

Hadoop环境变量

# Set Hadoop-related environment variables 
 
export HADOOP_HOME=$HOME/hadoop-2.7.3
export HADOOP_CONF_DIR=$HOME/hadoop-2.7.3/etc/hadoop
export HADOOP_MAPRED_HOME=$HOME/hadoop-2.7.3 
export HADOOP_COMMON_HOME=$HOME/hadoop-2.7.3 
export HADOOP_HDFS_HOME=$HOME/hadoop-2.7.3
export YARN_HOME=$HOME/hadoop-2.7.3
# Add Hadoop bin/directory to PATH 
export PATH=$PATH:$HOME/hadoop-2.7.3/bin

在AD末尾放置以下几行。
bashrc文件,保存文件并关闭它。

source .bashrc

在“ hadoop-env”中配置JAVA_HOME。
sh’。
该文件指定影响Apache Hadoop 2使用的JDK的环境变量。
7.由Hadoop启动脚本启动的3个守护程序:

cd hadoop-2.7.3/etc/hadoop/
sudo gedit hadoop-env.sh

导出JAVA_HOME =/usr/lib/jvm/java-7-openjdk-amd64

如上所示设置Java路径,保存文件并关闭它。

现在,我们将创建NameNode和DataNode目录。

cd
mkdir -p $HADOOP_HOME/hadoop2_data/hdfs/namenode
mkdir -p $HADOOP_HOME/hadoop2_data/hdfs/datanode

Hadoop有许多配置文件,需要根据hadoop基础架构进行配置。
让我们一一配置hadoop配置文件。

cd hadoop-2.7.3/etc/hadoop/
sudo gedit core-site.xml

core-site.xml文件

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
sudo gedit hdfs-site.xml

hdfs-site.xml文件

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/ubuntu/hadoop-2.7.3/hadoop2_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/ubuntu/hadoop-2.7.3/hadoop2_data/hdfs/datanode</value>
</property>
</configuration>
sudo gedit yarn-site.xml

yarn-site.xml文件

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
cp mapred-site.xml.template mapred-site.xml
sudo gedit mapred-site.xml

mapred-site.xml

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

现在,在从机上也执行相同的hadoop安装和配置步骤。
在两个系统上都安装并配置好hadoop之后,启动hadoop集群的第一件事就是格式化hadoop文件系统,该文件系统是在集群的本地文件系统之上实现的。
第一次安装hadoop时,这是必需的。
不要格式化正在运行的hadoop文件系统,这会删除我们所有的HDFS数据。

在 Master

cd
cd hadoop-2.7.3/bin
hadoop namenode -format

现在,我们准备启动hadoop守护进程,例如:Apache Hadoop集群上的NameNode,DataNode,ResourceManager和NodeManager。

cd ..

现在,运行以下命令在主机上启动NameNode,在主机和从机上启动DataNode。

sbin/start-dfs.sh

下面的命令将启动YARN守护程序,ResourceManager将在主服务器上运行,而NodeManagers将在主服务器和从属服务器上运行。

sbin/start-yarn.sh

使用JPS(Java进程监视工具)交叉检查所有服务是否已正确启动。
在主计算机和从计算机上。

以下是在主机上运行的守护程序。

jps

在Slave上

我们将看到DataNode和NodeManager也将在从属计算机上运行。

jps

现在在主计算机上打开mozilla浏览器,然后转到下面的URL

检查NameNode状态:http://master:50070/dfshealth. html

如果在活动节点中看到“ 2”,则意味着2个DataNode已启动并正在运行,并且我们已经成功设置了多节点hadoop culster。