零基础搭建hadoop完全分布式集群搭建
此文章使用的是jdk1.8,hadoop2.7,分为三台机器hadoop132,hadoop133,hadoop134
1.环境搭建
1.配置虚拟机
(1)将所有虚拟的防火墙关闭
service iptables stop //服务关闭
chkconfig iptables off //关闭开机自启
(2)修改虚拟机的ip,改为静态ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 将文件修改为,其中IPADDR设置为你想要设置的ip,GATEWAY与DNS1也要与你自己的虚拟机的网关一致
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.25.132
PREFIX=24
GATEWAY=192.168.25.2
DNS1=192.168.25.2
NAME=eth0
(3)设置每台机器的主机名
vim /etc/sysconfig/network
#修改HOSTNAME字段为
HOSTNAME=hadoop132
2.安装JDK
(1)将jdk安装包传到linux上去
(2)先查看一下本地是否装有jdk
rpm -qa | grep java
#卸载
sudo rpm -e 软件包
(3)解压jdk到指定的目录
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
(4)配置环境变量,打开/etc/profile文件,在后面添加java环境变量,其中JAVA_HOME是你解压java的路径
sudo vim /etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(5)让修改后的文件生效
source /etc/profile
(6)测试是否安装成功
java -version
#出现这样子即为成功
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
3.安装hadoop
(1)解压hadoop到指定的目录
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
(2)配置环境变量,打开/etc/profile文件,在后面添加hadoop的环境变量,其中HADOOP_HOME是你解压java的路径
sudo vim /etc/profile
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(3)让修改后的文件生效
source /etc/profile
(4)测试是否安装成功
hadoop version
#出现这样子即为成功
Hadoop 2.7.2
Subversion Unknown -r Unknown
Compiled by root on 2017-05-22T10:49Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar
4.安装其他机器的jdk与hadoop
当然我们可以按照上面的步骤,一台一台机器的安装,但是这个过于麻烦,我们可以写一个脚本,将第一台机器的jdk和hadoop同步到其他两台机器上去
我们在/bin目录下创建一个xsync的文件
sudo vim xsync
文件内容为
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=133; host<135; host++)); do
echo ------------------- hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
修改这个文件的权限
sudo chmod 777 xsync
在/opt目录下执行
xsync software/
xsync module/
其中输入yes和其他机器的密码即可

同步/etc/profile这个文件
sudo xsync /etc/profile
source /etc/profile
检查是否都安装成功
java -version
hadoop version
2.集群配置
现在集群的配置如下表
| hadoop132 | hadoop133 | hadoop134 | |
|---|---|---|---|
| HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
| YARN | NodeManager | ResourceManager NodeManager | NodeManager |
配置一些核心文件,进入etc/hadoop目录下
vim core-site.xml
# 添加
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop132:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
vim hdfs-site.xml
# 添加
<!-- 指定备份机器的个数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop134:50090</value>
</property>
vim yarn-site.xml
# 添加
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop133</value>
</property>
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
# 添加
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
然后将所有的修改的配置文件,同步到其他的机器上去
xsync /opt/module/hadoop-2.7.2/
3.配置ssh无密登陆配置
在132这台机器上生成公钥和私钥,并将公钥分发都其他机器上
ssh-keygen -t rsa
ssh-copy-id hadoop132
ssh-copy-id hadoop133
ssh-copy-id hadoop134
这个还需要在133这台机器上运行一遍,因为133会启动yarn
7.配置slaves
vim /opt/module/hadoop-2.7.2/etc/hadoop/slaves
#将文件修改为这里就是所有机器的地址
hadoop132
hadoop133
hadoop134
8.启动hadoop集群
这样子基本已经配置完毕了
然后格式化HDFS
hdfs namenode -format
# 启动
start-dfs.sh
oop133
ssh-copy-id hadoop134
这个还需要在133这台机器上运行一遍,因为133会启动yarn
## 7.配置slaves
```shell
vim /opt/module/hadoop-2.7.2/etc/hadoop/slaves
#将文件修改为这里就是所有机器的地址
hadoop132
hadoop133
hadoop134
8.启动hadoop集群
这样子基本已经配置完毕了
然后格式化HDFS
hdfs namenode -format
# 启动
start-dfs.sh
本文详细介绍如何从零开始在三台虚拟机上搭建Hadoop完全分布式集群,包括环境配置、JDK与Hadoop安装、集群配置、SSH无密登录配置及集群启动等关键步骤。
1万+

被折叠的 条评论
为什么被折叠?



