Hadoop完全分布式搭建

实验一:基础环境配置。

 

实验任务一:Linux基础环境配置

 

步骤一:查看ip

 

设置静态ip

3.网络配置文件设置

1)进入网络配置文件目录

cd /etc/sysconfig/network-scripts

2)编辑网络配置文件

sudo vim ifcfg-eno16777736

网络配置文件内容编辑如下(红色标识为变动的部分):

TYPE="Ethernet"

BOOTPROTO="static"

DEFROUTE="yes"

PEERDNS="yes"

PEERROUTES="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_PEERDNS="yes"

IPV6_PEERROUTES="yes"

IPV6_FAILURE_FATAL="no"

NAME="eno16777736"

UUID="0e6ca219-0d2e-4000-8f17-bf7424e46595"

DEVICE="eno16777736"

ONBOOT="yes"

IPADDR=192.168.255.101

GATEWAY=192.168.255.2

NETMASK=255.255.255.0

DNS1=222.246.129.80

DNS2=192.168.154.2

DNS3=8.8.8.8

DNS4=114.114.114.114

3)保存修改网络配置文件,重启网卡服务

service network restart

4.验证网络配置结果

ping www.baidu.com

 


DNS1=222.246.129.80

DNS2=114.114.114.114

DNS3=8.8.8.8

[root@VM-M-01594949483071 ~]# ip a

 

 

1-4ip地址

步骤四:修改主机名

[root@VM-M-01594949483071 ~]# hostnamectl set-hostname master

[root@VM-M-01594949483071 ~]# bash

 

[root@VM-M-01594949481966 ~]# hostnamectl set-hostname slave1

[root@VM-M-01594949481966 ~]# bash

 

[root@VM-M-01594949480907 ~]# hostnamectl set-hostname slave2

[root@VM-M-01594949480907 ~]# bash


可以不重启:service network restart

 

步骤五:主机映射

[root@master ~]# vi /etc/hosts

[root@slave1 ~]# vi /etc/hosts

[root@slave2 ~]# vi /etc/hosts

 

添加图1.的配置

 

 

 

保存并退出 

实验任务二:时钟同步


yum install ntp ntpdate -y

步骤一:修改配置文件

 

[root@master ~]# vi /etc/sysconfig/ntpd

 

 

[root@slave1 ~]# vi /etc/sysconfig/ntpd

 

[root@slave2 ~]# vi /etc/sysconfig/ntpd

  

1-5配置文件内容

 

 

保存并退出

 

步骤二:同步时间

 

[root@master ~]# systemctl start ntpd

[root@master ~]# date

 

 

[root@slave1 ~]# systemctl start ntpd

[root@slave1 ~]# date

 

 

[root@slave2 ~]# systemctl start ntpd

[root@slave2 ~]# date

 

 

 

1-6时间同步查看

 

 

实验任务三:防火墙

 

步骤一:关闭防火墙(三台都要关闭)

 

[root@master ~]# systemctl stop firewalld.service

[root@slave1 ~]# systemctl stop firewalld.service

[root@slave2 ~]# systemctl stop firewalld.service

 

步骤二:关闭防火墙自启

 

[root@master ~]# systemctl disable firewalld.service

[root@slave1 ~]# systemctl disable firewalld.service

[root@slave2 ~]# systemctl disable firewalld.service

 

步骤三:查看防火墙状态

 

[root@master ~]# systemctl status firewalld.service

 

 [root@slave1 ~]# systemctl status firewalld.service

 

[root@slave2 ~]# systemctl status firewalld.service

 

 

实验任务四:ssh免密

 

步骤一:创建免密(三个主机同时进行)

 

[root@master ~]# su - hadoop

[hadoop@master ~]$ ssh-keygen -t rsa -P ""

 

输入回车

[root@slave1 ~]# su - hadoop

[hadoop@slave1 ~]$ ssh-keygen -t rsa -P ""

[root@slave2 ~]# su - hadoop

[hadoop@slave2 ~]$ ssh-keygen -t rsa -P ""

 

 

 

 

 

 

步骤二:创建公钥

 

[hadoop@master ~]$ cat  ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

[hadoop@slave1 ~]$ cat  ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

[hadoop@slave2 ~]$ cat  ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

 

步骤三:给公钥执行权限

 

[hadoop@master ~]$ chmod 700 ~/.ssh/authorized_keys

[hadoop@slave1 ~]$ chmod 700 ~/.ssh/authorized_keys

[hadoop@slave2 ~]$ chmod 700 ~/.ssh/authorized_keys 

 

步骤四:将公钥传输给slave1和slave2

 

[hadoop@master ~]$ scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/ 

[hadoop@master ~]$ scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/

 

第一次传输是需要输入密码的,后面就不用了

 

步骤五:登陆测试

 

[hadoop@master ~]$ ssh slave1

 

[hadoop@master ~]$ ssh slave2

 

 

好了,这是登陆成功了

 

 

步骤2:实验二:Hadoop集群部署。

 

实验任务一:Hadoop软件安装

 

步骤一:解压安装Hadoop

 

[hadoop@master ~]$ su root

[root@master hadoop]$ cd

[root@master ~]# tar -zxvf /opt/software/hadoop-2.7.1.tar.gz -C /usr/local/src/

 

 

 

步骤二:更改hadoop文件名

 

[root@master ~]# mv /usr/local/src/hadoop-2.7.1 /usr/local/src/hadoop

 

步骤三:配置hadoop环境变量

 

[root@master ~]# vi /etc/profile

 

进行如下配置

export HADOOP_HOME=/usr/local/src/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存并退出

 

步骤四:修改目录所有者和所有者组

 

上述安装完成的Hadoop软件只能让root用户使用,要让hadoop用户能够运行Hadoop软件,需要将目录/usr/local/src的所有者改为hadoop用户。

 

[root@master ~]#  chown -R hadoop:hadoop /usr/local/src

 

[root@master ~]# ll /usr/local/src/

/usr/local/src目录的所有者已经改为hadoop了。

 

实验任务二:安装JAVA环境

 

步骤一:解压安装jdk

 

[root@master ~]# tar -zxvf  /opt/software/jdk-8u152-linux-x64.tar.gz -C /usr/local/src 

步骤二:更改jdk的名称

 

[root@master ~]# mv /usr/local/src/jdk1.8.0_152/ /usr/local/src/java

[root@master ~]# chown -R hadoop:hadoop /usr/local/src/java

步骤三:配置java的环境变量

 

[root@master ~]# vi /etc/profile

 

配置如下环境

 

export JAVA_HOME=/usr/local/src/java #JAVA_HOME指向JAVA安装目录

export PATH=$PATH:$JAVA_HOME/bin #将JAVA安装目录加入PATH路径 

 

保存并退出

步骤四:生效环境变量

 

[root@master ~]# source /etc/profile

[root@master ~]# update-alternatives --install /usr/bin/java java /usr/local/src/java/bin/java 200

[root@master ~]# update-alternatives --set java /usr/local/src/java/bin/java

步骤五:查看java和hadoop

 

[root@master ~]# java -version

 

 

[root@master ~]# hadoop version

 

 

这样就是安装成功了

 

实验任务三:集群配置

 

步骤一:进入到hadoop配置文件的目录下hadoop

 

[root@master ~]# cd /usr/local/src/hadoop/etc/hadoop

 

步骤二:配置core-site.xml

 

[root@master hadoop]# vi core-site.xml

 

在文件里添加如下配置

<configuration>

        <property>

               <name>fs.defaultFS</name>

               <value>hdfs://master:9000</value>

        </property>

        <property>

               <name>hadoop.tmp.dir</name>

               <value>file:/usr/local/src/hadoop/tmp</value>

        </property>

</configuration>

 

 

 

保存并退出

步骤三:配置hadoop-env.sh

 

[root@master hadoop]# vi hadoop-env.sh

 

在文件的最下方添加如下环境配置

 

export JAVA_HOME=/usr/local/src/java

export HADOOP_PERFIX=/usr/local/src/hadoop

export HADOOP_OPTS="-Djava.library.path=$HADOOP_PERFIX/lib:$HADOOP_PERFIX/lib/natice" 

 

保存并退出

 

步骤四:配置hdfs-site.xml

 

[root@master hadoop]# vi hdfs-site.xml

在文件里添加如下配置

<configuration>

        <property>

               <name>dfs.namenode.name.dir</name>

               <value>file:/usr/local/src/hadoop/dfs/name</value>

        </property>

        <property>

               <name>dfs.datanode.data.dir</name>

               <value>file:/usr/local/src/hadoop/dfs/data</value>

        </property>

        <property>

               <name>dfs.replication</name>   

               <value>3</value>

        </property>

</configuration>

 

 

 

保存并退出

 

步骤五:配置mapred-site.xml

将副本拷贝成mapred-site.xml

 

[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml 

[root@master hadoop]# vi mapred-site.xml

 

在文件里添加如下配置

<configuration>

        <property>

               <name>mapreduce.framework.name</name>

               <value>yarn</value>

        </property>

        <property>

               <name>mapreduce.jobhistory.address</name>

               <value>master:10020</value>

        </property>

        <property>

               <name>mapreduce.jobhistory.webapp.address</name>

               <value>master:19888</value>

        </property>

</configuration> 

 

保存并退出

 

步骤六:配置yarn-site.xml

 

[root@master hadoop]# vi yarn-site.xml

 

在文件里添加如下配置

<configuration>

        <property>

               <name>yarn.resourcemanager.address</name>

               <value>master:8032</value>

        </property>

        <property>

               <name>yarn.resourcemanager.scheduler.address</name>

               <value>master:8030</value>

        </property>

        <property>

               <name>yarn.resourcemanager.resource-tracker.address</name>

               <value>master:8031</value>

        </property>

        <property>

               <name>yarn.resourcemanager.admin.address</name>

               <value>master:8033</value>

        </property>

        <property>

               <name>yarn.resourcemanager.webapp.address</name>

               <value>master:8088</value>

        </property>

        <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> 

 

保存并退出

 

步骤七:配置masters文件

 

执行以下命令修改masters配置文件。

[root@master hadoop]# vi masters  #加入以下配置信息

master 

保存并退出

步骤八:配置slaves

 

[root@master hadoop]# vi slaves

 

在文件里改成如下配置

slave1

slave2

 

 

 

 

保存并退出

步骤九:创建目录

[root@master hadoop]# mkdir -p /usr/local/src/hadoop/dfs/name

[root@master hadoop]# mkdir -p /usr/local/src/hadoop/dfs/data

[root@master hadoop]# mkdir -p /usr/local/src/hadoop/tmp

 

chown -R hadoop:hadoop /usr/local/src/hadoop

 

实验任务四:主从节点文件的分发

 

步骤一:分发hadoop目录

 

[root@master hadoop]# scp -r /usr/local/src/hadoop/ root@slave1:/usr/local/src/

[root@master hadoop]# scp -r /usr/local/src/hadoop/ root@slave2:/usr/local/src/

[root@master hadoop]# scp -r /usr/local/src/java/ root@slave1:/usr/local/src/

[root@master hadoop]# scp -r /usr/local/src/java/ root@slave2:/usr/local/src/

 

步骤二:分发环境配置

 

[root@master hadoop]# scp -r /etc/profile root@slave1:/etc/ 

[root@master hadoop]# scp -r /etc/profile root@slave2:/etc/ 

 

在每个Slave节点上修改/usr/local/src/hadoop目录的权限

[root@master ~]# chown -R hadoop:hadoop /usr/local/src/hadoop/

[root@slave1~]# chown -R hadoop:hadoop /usr/local/src/hadoop/ 

[root@slave2~]# chown -R hadoop:hadoop /usr/local/src/hadoop/ 

步骤三:生效环境配置

 

[root@slave1 ~]# source /etc/profile

[root@slave1 ~]# update-alternatives --install /usr/bin/java java /usr/local/src/java/bin/java 200

[root@slave1 ~]# update-alternatives --set java /usr/local/src/java/bin/java

 

[root@slave2 ~]# source /etc/profile

[root@slave2 ~]# update-alternatives --install /usr/bin/java java /usr/local/src/java/bin/java 200

[root@slave2 ~]# update-alternatives --set java /usr/local/src/java/bin/java

 

步骤3:实验三:Hadoop集群启动测试。

  •                 

 

 

实验任务一:hadoop启动

 

 

步骤一:格式化元数据

 

进入hadoop用户

 

 

[root@master hadoop]# su hadoop

 

[hadoop@master hadoop]$ source /etc/profile

[root@slave1 hadoop]# su hadoop

[hadoop@slave1 hadoop]$ source /etc/profile

[root@slave2 hadoop]# su hadoop

[hadoop@slave2 hadoop]$ source /etc/profile

 

[hadoop@master hadoop]$ hdfs namenode -format

 

状态为0显示的是成功

 

 

 

 

步骤二:启动hdfs

 

 

[hadoop@master ~]$ start-dfs.sh

 

步骤三:启动yarn

 

[hadoop@master ~]$ start-yarn.sh

 

 

 

 

实验任务二:hadoop的查看

 

 

步骤一:进程的查看

 

 

[hadoop@master ~]$ jps

 

 

 

 

 

 

步骤二:master:50070查看

 

 

进入到浏览器查看

 

 

 

步骤三:master:8088查看

 

 

查看成功

 

 

步骤四:master:9000查看

 

 

显示有人访问

 

 

实验任务三:mapreduce测试

 

步骤一:创建一个测试文件

 

 

[hadoop@master ~]$ vi a.txt

 

内容如下:

HELLO WORD

HELLO HADOOP

HELLO JAVA

 

 

步骤二:在hdfs创建文件夹

 

 

[hadoop@master ~]$ hadoop fs -mkdir /input

 

 

步骤三:将a.txt传输到input

 

 

[hadoop@master ~]$ hadoop fs -put ~/a.txt /input

 

 

步骤四:进入到jar包测试文件目录下

 

 

[hadoop@master hadoop]$ cd /usr/local/src/hadoop/share/hadoop/mapreduce/ 

 

步骤五:测试mapreduce

 

 

[hadoop@master mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /input/a.txt /output

 

成功如下:

 

 

 

注:如果需要重复执行,需要删除输出目录,否则会报错

[hadoop@master mapreduce]$ hdfs dfs -rm -r -f /output

 

步骤六:查看hdfs下的传输结果

 

 

[hadoop@master mapreduce]$ hadoop fs -lsr /output

 

 

 

步骤七:查看文件测试的结果

 

[root@master mapreduce]# hadoop fs -cat /output/part-r-00000

 

 

posted @ 2022-09-17 22:18  小阿三  阅读(136)  评论(0编辑  收藏  举报