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

        点击打开,连接管理器

        点击选择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 文件夹下面

        点击“历史”旁边的上传

(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命令查看进程

  • 23
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建Hadoop的高可用(HA)环境,你需要考虑以下几个步骤: 1. 配置Hadoop集群:确保你已经成功地设置了一个Hadoop集群,并且所有节点都能够正常通信。 2. 配置ZooKeeper:HA模式下,Hadoop使用ZooKeeper来进行主节点的选举和故障切换。你需要安装和配置ZooKeeper集群。 3. 修改Hadoop配置文件:在core-site.xml、hdfs-site.xml和yarn-site.xml等配置文件中,进行如下修改: - 在core-site.xml中,指定ZooKeeper的地址。 - 在hdfs-site.xml中,设置HA相关的属性,如nameservice、namenode、journalnode等。 - 在yarn-site.xml中,设置ResourceManager的高可用属性。 4. 启动JournalNodes:JournalNodes用于存储HDFS的元数据日志,并确保数据的一致性。启动JournalNodes之前,需要在hdfs-site.xml中指定JournalNode的地址。 5. 格式化NameNode:使用`hdfs namenode -format`命令格式化NameNode。这将创建一个新的命名空间并为HA做准备。 6. 启动NameNode和DataNode:启动NameNode时,指定HA相关的配置参数,并确保DataNode也能够正常启动。 7. 启动ResourceManager和NodeManager:启动ResourceManager时,同样要指定HA相关的配置参数,并确保NodeManager也能够正常启动。 8. 进行故障切换测试:通过停止当前的Active节点,触发故障切换,验证HA环境是否正常工作。 以上是搭建Hadoop的高可用环境的基本步骤,具体的配置细节和命令可能会根据你的环境和需求有所不同。请确保在进行任何配置更改之前备份重要数据,并参考官方文档或相关资源获取更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值