Hadoop环境搭建步骤


前言

Hadoop开发环境搭建


为了防止以后每次搭建的时候查看太多教程而导致时间无端消耗,本次重装环境自行进行过程记录。

一、虚拟机安装

基于VMware平台安装centos8,主要就是下载镜像安装打开就行,该过程较为简单不赘述。

二、安装JDK和Hadoop

1.基本信息配置

     首先通过完全克隆的方式得到五个主机名及对应ip地址

主机名IP地址
Master001192.168.62.133
Master002192.168.62.134
Slave001192.168.62.135
Slave002192.168.62.136
Slave001192.168.62.137

     然后用下面的方式修改主机名:

 hostnamectl  set-hostname   xxx

     同时将几台机子对应的主机名和IP地址配置映射的写入到/etc/hosts文件中 ,具体参考如下:

在这里插入图片描述

     然后创建hadoop用户(useradd hadoop 设置密码 passwd hadoop)
     在hadoop用户的家目录下(cd ~)创建免密ssh

ssh-keygen -t rsa -P ''    (生成密钥)
ssh-copy-id  xxx(5个,如Slave002——密钥非给所有节点,免去输入密码访问)
ssh Master001  (测试是否设置成功)

2.安装JDK和Hadoop

1.将jdk和hadoop的安装包:jdk-8u202-linux-x64.tar.gz、hadoop-2.6.5.tar.gz,通过xftp上传到以下文件路径中
/home/hadoop/software

https://pan.baidu.com/s/1P7QUpLb0orIG4KwtFcv9fQ 提取码:4nes

2.解压jdk文件后删除压缩文件,

tar -zxf 文件名 (解压)
pwd (得到当前文件路径)
rm -rf 文件名 (删除)

将以下内容写入到/etc/profile

export JAVA_HOME=/home/hadoop/software/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin

source etc/profile 使得环境变量生效

输入java/java -version 查看JDK是否安装成功

最后通过

scp -r /home/hadoop/software/jdk1.8.0_202/ Slave001:/home/hadoop/software/                                        (先要确保其他虚拟机存在software文件夹)
scp -r /etc/profile Slave001:/etc/

将其jdk 安装结果和配置文件拷贝到其他虚拟机上


3.同样解压hadoop安装包后删除文件,得到安装路径 /home/hadoop/software/hadoop-2.6.5

在环境变量配置文件/etc/profile中插入如下内容

export HADOOP_HOME=/home/hadoop/software/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

source etc/profile 使得环境变量生效

输入hadoop命令查看hadoop是否安装成功

最后同样将hadoop安装文件和配置文件拷贝到其他虚拟机中


三、安装Zookeeper集群

1.解压安装包、复制zoo_sample.cfg到zoo.cfgjps
在这里插入图片描述
2.创建data文件夹 创建myid文件

mkdir data
echo 1 >myid

3.修改zoo.cfg 的内容:

  添加两个路径(提前创建两个路径对应文件目录)
dataDir=/home/hadoop/software/zookeeper-3.3.6/data
dataLogDir=/home/hadoop/software/zookeeper-3.3.6/datalog/

  添加对应主机名信息
server.1=Slave001:2888:3888
server.2=Slave002:2888:3888
server.3=Slave003:2888:3888

  zoo.cfg文件如下图所示:
在这里插入图片描述
4.将zookeeper文件复制到其他两台Slave虚拟机中。并修改另外两个虚拟机的myid值为2、3

5.启动zookeeper集群
       进入到./bin文件目录下,启动 ./zkServer.sh start
查看是否成功启动 ./zkServer.sh status
(如果启动存在问题,可能是没有关闭防火墙,或者再次确认zoo.cfg文件是否正确、/etc/hosts文件内主机与ip地址是否一一对应)启动成功后会存在一个leader和两个follower虚拟机,如下图
本次操作中Slave003为leader、Slave001与Slave002为Follower
本次操作中Slave003为leader
在这里插入图片描述

四、Hadoop集群的高可用配置

1.将三个xml文件复制到所有虚拟机以下目录中/home/hadoop/software/hadoop-2.6.5/etc/hadoop
在这里插入图片描述
      配置文件链接如下所示:       https://pan.baidu.com/s/1U8D6vyXNRnO9XJ5tFUfHcQ 提取码:0ts1

2.同时修改另外三个配置文件,其中mapred-site.xml文件是通过mapred-site.xml.template模板文件复制而来。(cp拷贝)
在这里插入图片描述
以上配置需要全部更新到五台虚拟机中。

3.配置完成之后,在sbin目录下执行start-dfs.sh 它会分别在Master001和Master002中启动namenode进程,在另外三个中启动datanode进程。实现情况如下图:
在这里插入图片描述
4.启动MapReduce ./start-yarn.sh
在这里插入图片描述
5.验证集群是否成功启动

五、Hadoop集群的正常启动顺序

1. 启动Zookeeper
      在三台Slave节点(作为数据存储)中进入到Zookeeper安装包的./bin/目录下,执行./zkServer.sh start 并通过./zkServer.sh status 来查看是否顺利执行
*对于Master管理节点来说,需要进行hdfs zkfc -formatZK 格式化操作(可以在任意一台Master上进行,且执行前zookeeper集群需要为启动状态)

2. 启动HDFS
      在集群管理节点Master001中hadoop安装包的./sbin/目录下启动./start-dfs.sh,如果结果显示与4中的截图相同则说明启动成功

3. 启动MapReduce
      在集群管理节点Master001中hadoop安装包的./sbin/目录下启动./start-yarn.sh,如果结果显示与4中的截图相同则说明启动成功

4. 启动成功后出现的进程

[hadoop@Master001 ~]$ jps
        5218 DFSZKFailoverController
        4948 NameNode
        5285 Jps

[hadoop@Master002 ~]$ jps
        5331 NameNode
        5507 Jps
        5401 DFSZKFailoverController
[hadoop@Slave001 ~]$ jps
        2497 DataNode
        2645 Jps
        1590 QuorumPeerMain
        2584 JournalNode
                                                                                                  Slave002、Slave003与Slave001结果相似。

总结

      以上就是整个Hadoop的环境搭建,以及高可用集群的启动过程。整个过程中可能存在的问题:

1.nameNode或DataNode启动之后,过一会又找不到进程了,原因可能是由于非法关机或其他误操作导致版本不一致。
解决方法: 删除每个节点存放版本号的tmp文件,在Master001节点中执行“hdfs namenode -format”命令格式化Namenode,然后将新生成的tmp拷贝到其他各个节点上。
注: 在格式化namenode之前需要分别在Slave001、Slave002、Slave003中启动JournalNode进程。(以HASlave001为例)

[hadoop@Slave001 ~]$ hadoop-daemon.sh start journalnode

[hadoop@Slave001 ~]$ jps
       1590 QuorumPeerMain
       2363 Jps
       2317 JournalNode

2.Zookeeper异常,already running as process 1490,可能已有在运行的zookeeper或者临时文件中存在zookeeper_server.pid文件(该文件用于记录进程id,由于某些异常导致该文件残留)
解决方法: 删除zookeeper_server.pid文件

问题待补充。。。。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值