如何在Ubuntu上设置Hadoop多节点集群
在本教程中,我们将学习如何在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