欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop完全分布式集群搭建

程序员文章站 2022-05-07 17:16:33
...

实验环境

虚拟机:Virtualbox

系统:CentOS-6.5

JDK:jdk-8u172-linux-x64.tar

Hadoop版本:hadoop-2.7.3

上述软件均是开源,大家可以网上自行下载



一、CentOS6.5安装

1.打开Virtualbox,点击新建

Hadoop完全分布式集群搭建

2.输入第一台机器名centos6.5-matser,类型选择linux,版本选择Red Hat(64-bit)

Hadoop完全分布式集群搭建


3.设置分配内存大小,电脑8G内存的可以选择分配1024MB即可

Hadoop完全分布式集群搭建


4.选择现在创建虚拟硬盘

Hadoop完全分布式集群搭建


5.选择VDI模式

Hadoop完全分布式集群搭建


6.选择动态分配

Hadoop完全分布式集群搭建


7.创建虚拟硬盘分配20GB的大小

Hadoop完全分布式集群搭建

8.重复上述2-7步骤,完成另外两台机器slave1,slave2的创建

Hadoop完全分布式集群搭建


#下述步骤,每台机器都要执行


9.完成机器创建后,需要选中机器点击网络

Hadoop完全分布式集群搭建


10.选择桥接网卡,在这里dodo使用的是无线(寝室校园网需要特别注意,建议使用自己的手机无线),所以用的是无线网卡,界面名称选择为dodo电脑的Intel(R)Dual…,混杂模式选择全部允许,详细同下图

Hadoop完全分布式集群搭建


11.选中机器,并启动

Hadoop完全分布式集群搭建


12.为机器选择下载好的ISO文件,这里dodo使用的是centos6.5

Hadoop完全分布式集群搭建

13.选择skip跳过即可

Hadoop完全分布式集群搭建


14.选中Install or upgrade an existing system,键盘点击Enter

Hadoop完全分布式集群搭建


14.进入安装界面,点击next

Hadoop完全分布式集群搭建


15.选择语言

Hadoop完全分布式集群搭建


16.选择键盘,这里都是美国英语式,不建议变更,点击下一步

Hadoop完全分布式集群搭建


17.选择基本存储设备,点击下一步

Hadoop完全分布式集群搭建

18.选择:是,忽略所有数据 ,点击下一步

Hadoop完全分布式集群搭建

19.1.第一台主机名是master,后面两台主机名分别是slave1,slave2

Hadoop完全分布式集群搭建


19.2.一定一定一定要记得点击配置网络

Hadoop完全分布式集群搭建


19.3编辑网络,勾选上自动连接,点击应用。下一步

Hadoop完全分布式集群搭建

Hadoop完全分布式集群搭建


20.取消勾选系统时钟使用UTC时间,城市选择亚洲/上海,点击下一步

Hadoop完全分布式集群搭建

21.创建root用户的密码,密码过于简单,直接无论如何都使用即可,点击下一步

Hadoop完全分布式集群搭建


22.1.选择创建自定义布局,点击下一步

Hadoop完全分布式集群搭建


22.2鼠标选中空闲,点击创建,创建标准分区

Hadoop完全分布式集群搭建

Hadoop完全分布式集群搭建


22.3文件系统类型为swap,分配大小为4096MB

Hadoop完全分布式集群搭建


22.4第二块文件系统类型选择ext4,注意挂载点为 / ,下方选择使用全部空间

Hadoop完全分布式集群搭建


22.5自定义布局完成,点击下一步

Hadoop完全分布式集群搭建


22.6格式化即可,点击下一步

Hadoop完全分布式集群搭建

22.7将修改写入磁盘,点击下一步

Hadoop完全分布式集群搭建

22.8,点击下一步

Hadoop完全分布式集群搭建

23,我们点击选中BasicServer,统一三台机器都是终端界面即可(有需求图形界面的同学选择Desktop),点击下一步

Hadoop完全分布式集群搭建


24.等待安装

Hadoop完全分布式集群搭建


25.点击重新引导,完成重启

Hadoop完全分布式集群搭建

26.重复9~25步骤,完成另外两台机器的创建


27.输入ifconfig,查看网络状态,inet addr 地址存在即可。并且三台机器的Ip网段一致,如下方192.168.43.xxx

Hadoop完全分布式集群搭建

Hadoop完全分布式集群搭建

Hadoop完全分布式集群搭建

28.至此,三台机器搭建完成


二、配置三台机器之间的ssh免密登录

三台主机ip和主机名

192.168.43.174 master
192.168.43.113 slave1
192.168.43.168 slave2                


#三台节点都需要操作

1.在root用户下创建普通用户hadoop

useradd hadoop
passwd hadoop

2.为hadoop用户赋予root权限,添加到sudoers中

visudo

在文件中加入一条语句

Hadoop完全分布式集群搭建

3.切换回hadoop用户下

su hadoop

4.编辑/etc/hosts文件,将主机名与ip绑定

sudo vim /etc/hosts

Hadoop完全分布式集群搭建

5.生成公钥和私钥

ssh-****** -t rsa -P '' -f ~/.ssh/id_rsa        
6.将公钥添加到认证库文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

7.设置authorized_keys的访问权限为600

chmod 600 ~/.ssh/authorized_keys

8.设置.ssh的访问权限为700

chmod 700 ~/.ssh


#只在master节点上执行即可

1.将两个子节点的公钥追加到主节点的认证库文件中

ssh 192.168.43.113 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh 192.168.43.168 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

追加完成,可以查看到下图结果

cat ~/.ssh/authorized_keys
Hadoop完全分布式集群搭建

2.此时,主节点上的认证库文件就含有三台主机的公钥,将整合好的认证库文件覆盖掉子节点的认证库文件

scp ~/.ssh/authorized_keys 192.168.43.113:~/.ssh/
scp ~/.ssh/authorized_keys 192.168.43.168:~/.ssh/

Hadoop完全分布式集群搭建

3.测试是否免密

# 测试时,第一次,需要输入密码,之后就不需要输入密码了。
# 在192.168.43.174上测试,进入操作其他主机时可以敲入exit退出
ssh 192.168.43.113
ssh 192.168.43.168

# 在192.168.43.113上测试
ssh 192.168.43.174
ssh 192.168.43.168

# 在192.168.43.168上测试
ssh 192.168.43.113
ssh 192.168.43.174


三、JDK的卸载与安装

#每个节点都需要操作

1.检查当前本机安装的JDK

rpm -qa|grep jdk

Hadoop完全分布式集群搭建

2.卸载本机自带的JDK

sudo rpm -e  --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
sudo rpm -e  --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

3.查询当前系统相关的Java目录,并且删除

whereis java

4.删除查询出的结果目录

sudo rm -rf /etc/java
sudo rm -rf /usr/lib/java
sudo rm -rf /usr/share/java



#三台节点都需要操作

1.在每个节点的/home/hadoop目录下创建soft目录,将jdk,和hadoop文件传入

cd /home/hadoop
mkdir soft

2.打开filezilla分别输入各主机的IP地址,用户名hadoop,密码*** 端口号22,点击快速链接

Hadoop完全分布式集群搭建

3. 找到windows下存放文件的路径,并且选择好节点的目录路径,传送文件

Hadoop完全分布式集群搭建

4.查看文件是否传送

ls /home/hadoop/soft

Hadoop完全分布式集群搭建

5.将JDK解压到soft文件夹下

tar -zxvf /home/hadoop/soft/jdk-8u172-linux-x64.tar.gz -C /home/hadoop/soft

6.创建软连接jdk.soft指向jdk1.8.0_172

ln -s jdk1.8.0_172 jdk.soft

Hadoop完全分布式集群搭建

7.配置jdk环境变量

vim ~/.bash_profile

在文件中追加如下内容

export JAVA_HOME=/home/hadoop/soft/jdk.soft
export PATH=$JAVA_HOME/bin:$PATH

Hadoop完全分布式集群搭建

8.保存退出编辑,刷新.bash_profile文件使之生效

source ~/.bash_profile

9.检查JDK状态

java -version
Hadoop完全分布式集群搭建


四、Hadoop安装配置

#所有节点执行

1.关闭selinux

sudo vim /etc/sysconfig/selinux

SELINUX=disabled

2.关闭主机的防火墙

sudo chkconfig iptables off
sudo chkconfig ip6tables off

3.查看防火墙是否全关闭(如果没有重复步骤2)

sudo chkconfig iptables --list
sudo chkconfig iptables --list

#在master节点下操作

4.将hadoop-2.7.3.tar.gz解压到/home/hadoop/soft下

tar -zxvf /home/hadoop/soft/hadoop-2.7.3.tar.gz 

5.进入/home/hadoop/soft下,将hadoop-2.7.3改名为hadoop

mv hadoop-2.7.3 hadoop

6..进入hadoop/etc/hadoop下,修改hadoop-env.sh文件

cd /usr/hadoop/etc/hadoop
vim hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/soft/jdk.soft

7.修改core-site.xml,指定dfs存放的目录,以及各个子节点datanode挂载的位置

vim core-site.xml
<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/soft/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

8.修改hdfs-site.xml,指定副本数为1即可

vim hdfs-site.xml
<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>

9.修改yarn-site.xml

vim yarn-site.xml 
<configuration>
        <!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

10.修改mapred-site.xml,先将创建出mapred-site.xml文件

cp mapred-site.xml.template mapred-site.xml

vim mapred-site.xml
<!-- Put site-specific property overrides in this file. -->
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

12.修改slaves,将localhost拿掉,添加两个子节点的主机名

slave1
slave2

13.进入 /home/hadoop/soft ,打包hadoop

cd /home/hadoop/soft
tar -zcvf hadoop.tar.gz hadoop

14.将hadoop.tar.gz发送到两个子节点的/usr下

scp /home/hadoop/soft/hadoop.tar.gz aaa@qq.com:/home/hadoop/soft
scp /home/hadoop/soft/hadoop.tar.gz aaa@qq.com:/home/hadoop/soft

Hadoop完全分布式集群搭建

切换到slave1,slave2主机/home/hadoop/soft下,分别将hadoop.tar.gz解压

tar -zxvf hadoop.tar.gz



#三个节点都需要执行

1.为hadoop文件创建软连接hadoop.soft

ln -s hadoop hadoop.soft

3.配置hadoop的环境变量,在/home/hadoop/.bash_profile下追加

vim /home/hadoop/.bash_profile
export HADOOP_HOME=/home/hadoop/soft/hadoop.soft
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

2.刷新.bash_profile文件

source /home/hadoop/.bash_profile


#回到master主机节点

1.格式化namenode节点

hdfs namenode -format

Hadoop完全分布式集群搭建

2.启动hdfs

start-dfs.sh

#每个节点运行jps

jps

Hadoop完全分布式集群搭建

Hadoop完全分布式集群搭建

Hadoop完全分布式集群搭建




#windows上运行

1.进入下方目录

C:\Windows\System32\drivers\etc

2.选中hosts文件,右键属性,选中安全选项卡,将Users赋予完全控制权限

Hadoop完全分布式集群搭建

3.编辑hosts文件,在文件中添加三台主机的ip和主机名

Hadoop完全分布式集群搭建


在window浏览器上输入 http://master:50070/

Hadoop完全分布式集群搭建

可以看到下方活跃的datanode节点数为2,至此,完全分布式集群搭建完毕