0


Hadoop搭建

前言

   Hadoop是一个开源的、可运行与Linux集群上的分布式计算平台,用户可借助Hadoop存有基础环境的配置(虚拟机安装、Linux安装等),Hadoop集群搭建,配置和测试。

一、虚拟机的安装


   VMware (Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器、桌面虚拟化的解决方案。
使用的虚拟软件:VMware Workstation Pro 17

VMware 17许可证密钥是:MC60H-DWHD5-H80U9-6V85M-8280D

二、Linux系统安装

1.环境准备

    VMware Workstation Pro 17
     Centos7下载链接:Centos-7-DVD

    FinalShell下载连接:FinalShell

    JDK8:jdk-8u152-linux-x64.tar.gz

    Hadoop3:hadoop-3.2.4.tar.gz

2.虚拟机安装

(1)新建虚拟机,选择典型

(2)选择安装光盘镜像(iso)

(3)虚拟机创建用户名密码

(4)虚拟机名称和位置

(5)指定磁盘容量

(6)虚拟机配置如下

    点击完成就是漫长的等待~~~

三、修改网络配置

1.虚拟网络编辑器

(1)打开虚拟网络编辑器

    点击编辑—>虚拟网络编辑器,进行网络编辑,点击更改配置

(2)修改子网IP和掩码

    将VMnet8网络模式改为NET模式,并且将子网IP地址配置为192.168.88.0,将子网掩码设置为:255.255.255.0

2.更改本机的ip地址配置

    在设置中选择网络和Internet,选择状态,高级网络设置,点击更改适配器选项

3.更改虚拟机的网络配置

(1)打开命令窗口

(2) 更改虚拟机的网络配置

    使用命令切换到root用户下
[yy@localhost ~]$ su root
    使用vim命令编辑ifcfg-ens33文件,编辑完成ESC退出,输入:wq 保存
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
    将其中内容改为:BOOTPROTO -->  dhcp   改成  static
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=d476bb38-7219-42b1-a12f-c97a86cca0ad
EVICE="ens33"
ONBOOT=yes
    根据自己的IP地址更改下边的IP即可,其余的不用动
# IP 地址设置  
IPADDR=192.168.88.111  
  
# 子网掩码  
NETMASK=255.255.255.0  
# 或者使用CIDR表示法  
PREFIX=24  
  
# 默认网关  
GATEWAY=192.168.88.2  
  
# DNS 服务器设置  
# 首选DNS服务器  
DNS1=8.8.8.8  
# 备用DNS服务器  
DNS2=114.114.114.114

4. 更改主机名,添加主机映射名

[root@hadoop111 yy]# vim /etc/hostname
    在hostname文件下先删除所有,在添加主机名:hadoop111 
[root@hadoop111 yy]# vim /etc/hosts
    在hosts文件下追加以下内容:
192.168.88.111 hadoop111
192.168.88.112 hadoop112
192.168.88.113 hadoop113
    配置完ip地址和host文件名之后,输入reboot 重启虚拟机

5. 验证配置成功

    使用ifconfig命令查看ip地址:


使用命令 ping www.baidu.com 查看是否可以连接外网,ctrl+c 退出ping命令

四、FinalShell配置

1.打开FinalShell

    点击![](https://img-blog.csdnimg.cn/direct/364cab86b8b84ceeab2c05363cebef4d.png)打开,连接管理器

    点击![](https://img-blog.csdnimg.cn/direct/046be601ab2742679da37effc1b12b8e.png)选择SSH连接,输入内容

    确定后点击hadoop111

    连接完成

五、Hadoop集群配置

1.配置sudo权限

    配置yy用户具有的root权限,方便后期加sudo执行root权限命令
[root@hadoop111 yy]# vim /etc/sudoers
    在文件下添加(注意添加位置): yy ALL=(ALL) NOPASSWD:ALL

2.卸载现有JDK

(1)查询是否安装 Java

[root@hadoop111 yy]# rpm -qa | grep java

(2)卸载该 JDK:

    首先切换到root用户下,其次删除jdk
[root@hadoop111 yy]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
    重启虚拟机:reboot

(3)创建文件夹

    在/opt 目录下创建 module、software 文件夹
[yy@hadoop111 opt]$ sudo mkdir module
[yy@hadoop111 opt]$ sudo mkdir software
[yy@hadoop111 opt]$ ll

    修改 module、software 文件夹的所有者
[yy@hadoop111 opt]$ sudo chown yy:yy module/ software/
[yy@hadoop111 opt]$ ll

    立即关机
[yy@hadoop111 opt]$ sudo poweroff

(4)克隆虚拟机

    使用模板机hadoop111 克隆出两台虚拟机)点击 创建完整克隆,依次克隆出来hadoop112,hadoop113

(5)修改虚拟机

  修改hadoop112,hadoop113两个虚拟机的ip地址(vim /etc/sysconfig/network-scripts/ifcfg-ens33),主机名(vim /etc/hostname)
#分别在hadoop112  hadoop113 修改
[yy@hadooplll ~]$ su
Password:
[root@hadoop111 yy]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@hadoop11l yy]#vim/etc/hostname
    IP地址分别改成192.168.88.112和192.168.88.113

    主机名分别改hadoop112和hadoop113

3.配置JDK

(1)用 FinalShell工具

    连接hadoop111将 JDK ,hadoop导入到opt 目录下面的 software 文件夹下面

    点击“历史”旁边的![](https://img-blog.csdnimg.cn/direct/fdcac95b45bb4fa3b690e824cad2f927.png)上传

(2)解压jdk

    解压 JDK 到/opt/module 目录下
[yy@hadoop111 software]$ tar -zxvf jdk-8u152-linux-x64.tar.gz -C /opt/module/
    查看是否解压成功
[yy@hadoop111 software]$ ls /opt/module/
    jdk1.8.0_152

(3) 配置 JDK 环境变量

    先获取 JDK 路径
[yy@hadoop111 jdk1.8.0_152]$ pwd
    /opt/module/jdk1.8.0_152
             进入到profile.d文件下,新建my_path.sh配置文件
[yy@hadoop111 jdk1.8.0_152]$ cd /etc/profile.d/
[yy@hadoop111 profile.d]$ sudo vim my_path.sh
    在文件下添加以下内容:
#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_152
export PATH=$PATH:$JAVA_HOME/bin

(4)测试

    让修改后的文件生效
[yy@hadoop111 profile.d]$ source /etc/profile
    测试 JDK 是否安装成功
[yy@hadoop111 profile.d]$ java -version
    java version "1.8.0_152"
     注意:重启(如果 java -version 可以用就不用重启)
[yy@hadoop111 jdk1.8.0_152]$ sudo reboot

4.配置Hadoop

(1)解压hadoop

    进入到 Hadoop 安装包路径下
[yy@hadoop111 profile.d]$ cd /opt/software/
    解压安装文件到/opt/module 下面
[yy@hadoop111 software]$ tar -zxvf hadoop-3.2.4.tar.gz -C /opt/module/
    查看是否解压成功
[yy@hadoop111 software]$ ls /opt/module/
    hadoop-3.2.4  jdk1.8.0_152

     获取 Hadoop 安装路径
[yy@hadoop111 hadoop-3.2.4]$ pwd
    /opt/module/hadoop-3.2.4

(2)环境变量配置

    进入到profile.d文件下,修改my_path.sh配置文件
[yy@hadoop111 hadoop-3.2.4]$ sudo vim /etc/profile.d/my_path.sh 
    在my_path.sh添加以下内容:
#HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

(2)测试

    让修改后的文件生效
[yy@hadoop111 hadoop-3.2.4]$ source /etc/profile
    测试是否安装成功
[yy@hadoop111 hadoop-3.2.4]$ hadoop version
    Hadoop 3.2.4
     注意:重启(如果 Hadoop 命令不能用再重启)
[yy@hadoop111 hadoop-3.2.4]$ sudo reboot

5.配置hosts文件和ssh免密登录

(1)生成密钥文件(四次回车)

ssh-keygen -t rsa

(2)复制公钥文件

    注意:接收方需先开机

 在hadoop111上执行,先输入yes,后输入对应主机的密码,多台虚拟机配置操作相同

ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

    在虚拟机hadoop112,hadoop113都需要执行,保证三台主机都能够免密登录
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop02

(3)查看是否成功免密登录

6.分发jdk与hadoop

(1)使用scp安全拷贝

    将配置好的jdk,hadoop分发给hadoop112,hadoop113.
[yy@hadoop111 module]$ scp -r jdk1.8.0_152/ yy@hadoop112:/opt/module/
[yy@hadoop111 module]$ scp -r jdk1.8.0_152/ yy@hadoop113:/opt/module/
[yy@hadoop111 module]$ scp -r hadoop-3.2.4/ yy@hadoop112:/opt/module/
[yy@hadoop111 module]$ scp -r hadoop-3.2.4/ yy@hadoop113:/opt/module/

(2)创建xsync脚本

    实现分发功能
[yy@hadoop111 ~]$ mkdir bin
[yy@hadoop111 ~]$ cd bin/
[yy@hadoop111 bin]$ vim xsync
    在xsync文件下添加如下内容:
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
        echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in hadoop111 hadoop112 hadoop113
do
      echo ============  $host   =============
      #3. 遍历所有目录,逐个发送
       for file in $@
       do 
          #4.  判断文件是否存在
          if [ -e $file ]
          then 
        #5. 获取父目录
        pdir=$(cd -P $(dirname $file); pwd)
        #6. 获取当前文件的名称
        fname=$(basename $file)
        ssh $host "mkdir -p $pdir"
        rsync -av $pdir/$fname $host:$pdir
         else 
                 echo  $file does not exists!
    fi
      done
done
    修改脚本 xsync 具有执行权限
[yy@hadoop111 bin]$ chmod 777 xsync
    ·使用xsync同步分发
[yy@hadoop111 ~]$ xsync bin/

(3)分发环境变量配置文件

    每台需要输入两遍root密码
[yy@hadoop111 ~]$ sudo ./bin/xsync /etc/profile.d/my_path.sh
    在hadoop112、hadoop113上执行:
[yy@hadoop112 ~]$ source /etc/profile
[yy@hadoop113 ~]$ source /etc/profile

六、配置文件

    首先使用命令进入到hadoop文件夹下:
[yy@hadoop111 ~]$ cd /opt/module/hadoop-3.2.4/etc/hadoop/

1.core-site.xml配置

[yy@hadoop111 hadoop]$ vim core-site.xml
    在core-site.xml添加内容为:
<configuration>
    <!-- 指定Name Node的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop111:8020</value>
    </property>
    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.2.4/data</value>
    </property>
    <!-- 配置HDFS网页登录使用的静态用户为yy -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>yy</value>
    </property>
</configuration>

2.yarn-site.xml配置

[yy@hadoop111 hadoop]$ vim yarn-site.xml 
    在yarn-site.xml添加如下内容:
<configuration>

<!-- Site specific YARN configuration properties -->

    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!--  指定 ResourceManager 的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop112</value>
    </property>
    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

<!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
<!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop111:19888/jobhistory/logs</value>
    </property>
<!-- 设置日志保留时间为7天 -->
    <property>
        <name>yarn.aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
</configuration>

3.hdfs-site.xml配置

[yy@hadoop111 hadoop]$ vim hdfs-site.xml 
    在hdfs-site.xml添加如下内容:
<configuration>
    <!-- nn web端访问地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop111:9870</value>
    </property>
    <!-- 2nn web端访问地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop113:9868</value>
    </property>
</configuration>

4.mapred-site.xml配置

[yy@hadoop111 hadoop]$ vim mapred-site.xml
    在mapred-site.xml添加如下内容:
<configuration>
    <!-- 指定MapReduce程序运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop111:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop111:19888</value>
    </property> 
</configuration>

5.workers配置

[yy@hadoop111 hadoop]$ vim workers 
    在workers修改为如下内容:
hadoop111
hadoop112
hadoop113

6.分发配置文件

    将配置好的文件分发给hadoop112,hadoop113
[yy@hadoop111 hadoop]$ xsync /opt/module/hadoop-3.2.4/etc/hadoop/
    在去hadoop103、hadoop104上查看配置情况

七.Hadoop集群测试

1.启动集群

(1)初始化集群

    仅第一次启动
[yy@hadoop111 hadoop-3.2.4]$ hdfs namenode -format
    在hadoop111上启动hdfs:
[yy@hadoop111 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop111 hadoop-3.2.4]$ sbin/start-dfs.sh
    在hadoop112上启动yarn:
[yy@hadoop112 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop112 hadoop-3.2.4]$ sbin/start-yarn.sh
    在hadoop111上启动historyserver:
[yy@hadoop111 hadoop-3.2.4]$ bin/mapred --daemon start historyserver

(2)查看集群进程

    使用jps命令查看进程

注意:一个不能少

(3)web界面

** 关闭防火墙(所有虚拟机都要操作)**

systemctl stop firewalld    #关闭防火墙
systemctl disable firlewalld  #关闭防火墙开机启动
    在网页查看HDFS的namendoe:http://hadoop111:9870


在网页查看YERN的resourcemanager: http://hadoop112:8088

2.关闭集群

(1)初始化集群

   在hadoop111上关闭historyserver:
[yy@hadoop111 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop111 hadoop-3.2.4]$ bin/mapred --daemon stop historyserver
      在hadoop112上关闭yarn:
[yy@hadoop112 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop112 hadoop-3.2.4]$ sbin/stop-yarn.sh
       在hadoop111上关闭hdfs:
[yy@hadoop111 hadoop-3.2.4]$ sbin/stop-dfs.sh

(2)查看集群进程

    使用jps命令查看进程


本文转载自: https://blog.csdn.net/Xlianshu/article/details/138856495
版权归原作者 我要吃蛋糕 所有, 如有侵权,请联系我们删除。

“Hadoop搭建”的评论:

还没有评论