版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangyang163wy/article/details/88122071
搭建 Hadoop 2.7.2 完全分布式
我使用了4台虚拟机来搭建相对应的节点,具体情况如下:
|
master |
slave1 |
slave2 |
slave3 |
NameNode |
√ |
|
|
|
SecondaryNameNode |
|
|
|
√ |
DataNode |
|
√ |
√ |
√ |
ResourceManage |
√ |
|
|
|
NodeManage |
|
√ |
√ |
√ |
软件版本:
另注:我的所有软件都安装在 /usr/wang/ 目录下。
安装JDK
1.解压
tar -zxvf jdk-8u191-linux-x64.tar.gz
2.重命名并建立软链
mv jdk-8u191-linux-x64 jdk-8u191
ln -s jdk-8u191 jdk
3.配置环境变量
sudo vim /etc/profile
# JAVA ENVIROMENT
export JAVA_HOME=/usr/wang/jdk
export PATH=$JAVA_HOME/bin:$PATH
4.验证JDK是否安装成功
source /etc/profile
java -version
如果出现相对应的java版本,则安装成功。
安装 Hadoop
设置免密钥登录
1.生成公钥和私钥
ssh-keygen -t rsa
2.分发密钥
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
解压 Hadoop 并配置环境变量
1.解压
tar -zxvf hadoop-2.7.2.tar.gz
2.建立软链
ln -s hadoop-2.7.2 hadoop
3.将 Hadoop 添加到环境变量
sudo vim /etc/profile
# HADOOP ENVIROMENT
export HADOOP_HOME=/usr/wang/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
4.验证 Hadoop 是否安装成功
source /etc/profile
hadoop version
如果出现相对应的 Hadoop 版本,则安装成功。
配置相应的 Hadoop 的配置文件
需要修改的配置文件主要包括:core-site.xml、hadoop-env.sh、hdfs-site.xml、yarn-env.sh、yarn-site.xml、mapred-env.sh、mapred-site.xml 和 slaves。
这些相关的配置文件都在 hadoop/etc/hadoop/ 下
1.配置 core-site.xml
vim core-site.xml
添加相应的属性:
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/wang/hadoop/data/tmp</value>
</property>
</configuration>
2.配置 hadoop-env.sh
vim hadoop-env.sh
配置 JDK 所在目录
# The java implementation to use.
export JAVA_HOME=/usr/wang/jdk
3.配置 hdfs-site.xml
vim hdfs-site.xml
添加相应的属性:
<configuration>
<!-- 配置副本数 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave3:50090</value>
</property>
</configuration>
4.配置 yarn-env.sh
vim yarn-site.xml
配置JDK所在目录
# The java implementation to use.
export JAVA_HOME=/usr/wang/jdk
5.配置 yarn-site.xml
vim yarn-site.xml
添加相应的属性:
<configuration>
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
6.配置 mapred-env.sh
vim yarn-site.xml
配置 JDK 所在目录
# The java implementation to use.
export JAVA_HOME=/usr/wang/jdk
7.配置 mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
添加相应的属性:
<configuration>
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
8.修改 slaves
添加相对应的 DataNode 主机名:
slave1
slave2
slave3
分发配置完成的 Hadoop 到其它节点
rsync -rvl hadoop-2.7.2 spark@slave1:/usr/wang/
rsync -rvl hadoop-2.7.2 spark@slave2:/usr/wang/
rsync -rvl hadoop-2.7.2 spark@slave3:/usr/wang/
格式化 NameNode
进入你设置的 NameNode 节点中 hadoop 的 bin/ 目录,格式化 NameNode:
./hadoop namenode -format
最终如果在打印的消息中提示 successfully 的话,就表示格式化成功,接下来就可以启动 HDFS 和 YARN 了。
启动 HSDF 和 YARN
sbin/start-hdfs.sh
sbin/start-yarn.sh
该命令位于 hadoop 文件中的 sbin/ 目录下。
关闭 HDFA 和 YARN
sbin/stop-hdfs.sh
sbin/stop-yarn.sh
该命令同样位于 hadoop 文件中的 sbin/ 目录下。