Bootstrap

hadoop集群搭建

一、环境准备⼯作:

确保已经按照以下文档安装完毕:
虚拟机和远程工具的安装(hadoop集群安装01)-CSDN博客

Linux设置以及软件的安装(hadoop集群安装02)-CSDN博客

虚拟机的克隆和免密(hadoop集群03)-CSDN博客

1、安装了jdk
2、关闭了防⽕墙 
3、免密登录
     ⾃⼰对⾃⼰免密
     ssh-copy-id bigdata01   选择yes 输⼊密码
     测试免密是否成功:    ssh bigdata01
4、修改linux的⼀个安全机制
    vi /etc/selinux/config
   修改⾥⾯的 SELINUX=disabled
5、设置host映射

二、本地解压安装

1、上传

2、解压

tar -zxvf hadoop-3.3.1.tar.gz -C /opt/installs/

3、重命名

cd /opt/installs/

mv hadoop-3.3.1 hadoop

4、开始配置环境变量

vi /etc/profile

export JAVA_HOME=/opt/installs/jdk

export HADOOP_HOME=/opt/installs/hadoop

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

5、刷新配置文件

source /etc/profile

6、验证hadoop命令是否可以识别

hadoop version

三、全分布搭建

全分布模式:必须至少有三台以上的Linux。

前期准备工作:

1、准备三台服务器

目前有两台,克隆第一台(因为第一台上安装了hadoop), 克隆结束后,进行修复操作

1) 修改IP 2) 修改主机名 3)修改映射文件hosts

检查是否满足条件:

环境准备⼯作:

1、安装了jdk

2、设置host映射

192.168.233.128 bigdata01

192.168.233.129 bigdata02

192.168.233.130 bigdata03

远程拷贝:

scp -r /etc/hosts root@bigdata02:/etc/

scp -r /etc/hosts root@bigdata03:/etc/

3、免密登录

bigdata01 免密登录到bigdata01 bigdata02 bigdata03

ssh-copy-id bigdata03

4、第一台安装了hadoop

5、关闭了防⽕墙

systemctl status firewalld

6、修改linux的⼀个安全机制

vi /etc/selinux/config

修改⾥⾯的 SELINUX=disabled

一定要确保三台电脑上的hosts文件都是:

192.168.32.128 bigdata01
192.168.32.129 bigdata02
192.168.32.130 bigdata03

修改一台,长拷贝到其他两台:

scp -r /etc/hosts root@bigdata01:/etc
scp -r /etc/hosts root@bigdata02:/etc

2、检查各项内容是否到位

1) 防火墙是否都是关闭的
       systemctl status firewalld
       systemctl stop firewalld
       systemctl disable firewalld
2) jdk是否都安装了
3) 三台电脑是否都安装了hadoop
      首先如果你的hadoop已经格式化过namenode ,请删除 /opt/installs/hadoop/tmp文件夹
    具体操作就是:确保bigdata01 和 bigdata03 下的 hadoop下的tmp文件夹是删除的状态
    cd /opt/installs/hadoop/tmp/
    rm -rf ./*
4)  Linux的一个安全机制,是否都关闭了
     vi /etc/selinux/config
     修改此项内容:SELINUX=disabled
5) 三台的免密要做一下
    bigdata01  -->  bigdata01,bigdata02,bigdata03
    ssh-copy-id bigdata02
    ssh-copy-id bigdata03
    验证一下:
     ssh bigdata01   ssh bigdata02   ssh bigdata03

3、hdfs配置服务的安装

路径:/opt/installs/hadoop/etc/hadoop

<configuration>
    <!-- 设置namenode节点 -->
    <!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时 代默认端⼝ 9820 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata01:9820</value>
    </property>
    
    <!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/installs/hadoop/tmp</value>
    </property>
</configuration>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata02:9868</value>
    </property>
    <!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>bigdata01:9870</value>
    </property>
  <!--默认是要报错的,因为这是一种安全机制,可以修改一下:
在hdfs-site.xml 中添加如下配置-->

<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>
</configuration>

export JAVA_HOME=/opt/installs/jdk
# Hadoop3中,需要添加如下配置,设置启动集群⻆⾊的⽤户是谁
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

修改workers

bigdata01
bigdata02
bigdata03

修改完了第一台的配置文件,开始分发到其他两台上去。

 scp -r /opt/installs/hadoop root@bigdata02:/opt/installs/
 scp -r /opt/installs/hadoop root@bigdata03:/opt/installs/
因为第二台什么都没有,所以将整个文件夹都拷贝过去
scp -r /opt/installs/hadoop/ bigdata02:/opt/installs/

第三台: 只需要复制配置文件即可
scp -r /opt/installs/hadoop/etc/hadoop/ bigdata03:/opt/installs/hadoop/etc/

拷贝环境变量:
scp -r /etc/profile root@bigdata02:/etc/
scp -r /etc/profile root@bigdata03:/etc/

在02 和 03 上刷新环境变量  source /etc/profile

4、格式化namenode

hdfs namenode -format

5、启动hdfs

在第一台电脑上启动
start-dfs.sh

启动后jps,看到

bigdata01

bigdata02

bigdata03

namenode

secondaryNameNode

x

datanode

datanode

datanode

web访问:namenode 在哪一台,就访问哪一台。http://192.168.32.128:9870

4、Yarn的配置和搭建

/opt/installs/hadoop/etc/hadoop 文件夹下:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

指定mapreduce运行平台为yarn
<!--指定resourceManager启动的主机为第一台服务器-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bigdata01</value>
    </property>


    <!--配置yarn的shuffle服务-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value> 
    </property>

检查hadoop-env.sh 中是否配置了权限:

export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

继续配置:为了防止报AppMaster的错误,需要如下配置

<property>
        <name>yarn.application.classpath</name>
        <value>/opt/installs/hadoop/etc/hadoop:/opt/installs/hadoop/share/hadoop/common/lib/*:/opt/installs/hadoop/share/hadoop/common/*:/opt/installs/hadoop/share/hadoop/hdfs:/opt/installs/hadoop/share/hadoop/hdfs/lib/*:/opt/installs/hadoop/share/hadoop/hdfs/*:/opt/installs/hadoop/share/hadoop/mapreduce/*:/opt/installs/hadoop/share/hadoop/yarn:/opt/installs/hadoop/share/hadoop/yarn/lib/*:/opt/installs/hadoop/share/hadoop/yarn/*</value> 
    </property>

获取classpath的值:

分发mapred-site.xml & yarn-site.xml 到另外两台电脑上。

cd /opt/installs/hadoop/etc/hadoop/

xsync.sh mapred-site.xml yarn-site.xml

启动和停止yarn平台:

启动: start-yarn.sh
停止: stop-yarn.sh

也可以使用web访问一下:

http://192.168.233.128:8088

;