hadoop3.x版本集群部署

1.环境准备

1.1.机器准备

1.2.集群基础环境配置

修改主机名

hostnamectl set-hostname hadoop1

hostnamectl set-hostname hadoop2

hostnamectl set-hostname hadoop3

关闭防火墙,避免后面因防火墙问题导致端口范围不通。

systemctl stop firewalld 
systemctl disable firewalld

创建用户,赋予sudo权限,后期使用该账号进行安装 

useradd newbie

passwd newbie

vim /etc/sudoers

 创建安装目录,并修改目前的所述祖,后面jdk和hadoop都安装在此目录下

mkdir /opt/module

chown newbie:newbie /opt/module

1.3.安装JDK 

新建/etc/profile.d/my_env.sh文件(/etc/profile和/etc/profile.d/两个文件都是设置环境变量文件的,/etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的shell脚本即可,不用像/etc/profile改动文件。

sudo vim /etc/profile.d/my_env.sh

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_211

export PATH=$PATH:$JAVA_HOME/bin

source /etc/prifile 

1.4.安装hadoop 

环境准备在Hadoop1上安装Hadoop
Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
可以下载对应的版本
然后上传到Linux上(/tmp)

解压到/opt/module,并查看是否解压成功,更改hadoop-3.1.3为hadoop(改不改都行),这里因为习惯和便于直观,就更改了

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

mv hadoop-3.1.3/ hadoop/

配置hadoop环境变量
将hadoop的路径加入到环境变量,并使其生效

sudo vim /etc/profile.d/my_env.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

source /etc/profile

测试hadoop是否安装成功,并查看hadoop目录

hadoop version

hadoop重要目录简述
(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

1.5.环境准备

将三台主机更改好主机名称hostname,便于后期配置及部署
更改克隆两台主机的hostname和hosts为hadoop101、hadoop102

vim /etc/hostname
sudo vim /etc/hosts
192.168.216.100 hadoop1
192.168.216.101 hadoop2
192.168.216.102 hadoop3

然后reboot重启系统
将JDK拷贝到hadoop2、hadoop3,第一次拷贝可以使用scp命令进行不同服务器之间的远程数据拷贝。

scp -r /opt/module/jdk1.8.0_212/ newbie@hadoop2:/opt/module

scp -r /opt/module/jdk1.8.0_212/ newbie@hadoop3:/opt/module

在hadoop2,hadoop3上都要添加jdk的环境变量

5)同步三台主机的环境变量配置(root所有者),并分别在三台主机上刷新环境变量,使配置生效。

scp -r /etc/profile.d/my_env.shnewbie@hadoop2:/opt/module

scp -r /etc/profile.d/my_env.shnewbie@hadoop3:/opt/module

// 同步过去后不要忘记在另外两台上刷新环境变量,不然不生效

source /etc/profile

无密钥配置
生成公钥和私钥,对三台主机进行无密钥配置

ssh-keygen -t rsa

将hadoop1的公钥拷贝到要免密登录的目标机器上(hadoop2、hadoop3)

ssh-copy-id hadoop100
ssh-copy-id hadoop101
ssh-copy-id hadoop102

3)验证从hadoop1 ssh无密远程到本机、hadoop2、hadoop3

ssh hadoop1
ssh hadoop2
ssh hadoop3

hadoop2、hadoop3
参考hadoop100无密钥的操作步骤,对hadoop101、hadoop102进行同样的操作,最终的效果是三台主机之间能直接ssh远程访问,不需要输入密码,效果参考如下。

1.6.集群规划

1.6.1.集群配置规划
本次集群规划,Namenode部署在hadoop1、SecondaryNameNode部署在hadoop3、ResourceManager部署在hadoop2上,同时三台主机均部署有DataNode和NodeManager组件。
注意:
// NameNode和SecondaryNameNode不要安装在同一台服务器
// ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

1.6.2.配置集群文件
配置core-site.xml

pwd
/opt/module/hadoop/etc/hadoop
sudo vim core-site.xml

<configuration>
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop100:8020</value>
    </property>

    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data</value>
    </property>

    <!-- 配置HDFS网页登录使用的静态用户为newbie -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>newbie</value>
    </property>
</configuration>

(2)HDFS配置文件
配置hdfs-site.xml

sudo vim hdfs-site.xml

<configuration>
        <!-- nn web端访问地址-->
        <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop100:9870</value>
    </property>
        <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop102:9868</value>
    </property>
</configuration>
1

(3)YARN配置文件
配置yarn-site.xml

sudo vim 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>hadoop101</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>
</configuration>

(4)MapReduce配置文件
配置mapred-site.xml

sudo vim mapred-site.xml
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

在集群上分发配置好的Hadoop配置文件


1.6.2.群起集群
1、配置workers,用于运行集群三台主机
// 注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

cd /opt/module/hadoop/etc/hadoop/
sudo vim workers
cat workers
hadoop1
hadoop2
hadoop3

scp -r /opt/module/hadoop/etc/

2、启动集群
(1)集群是第一次启动,需要在hadoop100节点格式化NameNode

hdfs namenode -format

(2)启动HDFS

cd /opt/module/hadoop/sbin/
start-dfs.sh

(3)Web端查看HDFS的NameNode
1)浏览器中输入:http://192.168.216.100:9870
2)查看HDFS上存储的数据信息

(4)在配置了ResourceManager的节点(hadoop101)启动YARN

cd /opt/module/hadoop/sbin/
start-yarn.sh

(5)Web端查看YARN的ResourceManager
1)浏览器中输入:http://192.168.216.101:8088
2)查看YARN上运行的Job信息
1.6.3.配置历史服务器
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
(1)配置mapred-site.xml

cd /opt/module/hadoop/etc/hadoop
vim mapred-site.xml

    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop100:10020</value>
    </property>

    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop100:19888</value>
    </property>

分发配置

scp

在hadoop3启动历史服务器

mapred --daemon start historyserver

查看历史服务器是否启动

jps

(5)查看JobHistory
http://192.168.216.100:19888/jobhistory


1.6.4.配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
// 注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。(以下均在hadoop100上操作,包括服务开启,访问)
1、开启日志聚集功能具体步骤如下:
(1)配置yarn-site.xml

cd /opt/module/hadoop/etc/hadoop
sudo vim yarn-site.xml

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

(2)分发配置

(3)关闭NodeManager 、ResourceManager和HistoryServer

stop-yarn.sh
mapred --daemon stop historyserver
1
2
(4)启动NodeManager 、ResourceManage和HistoryServer

start-yarn.sh
mapred --daemon start historyserver
1
2
(5)执行WordCount程序,
集群默认有WordCount程序在/opt/module/hadoop/share/hadoop/mapreduce/路径下;先在本地创建个文件,然后上传到hdfs上,再执行WordCount程序。

touch /test
hadoop fs -put /test /input/
hadoop jar /opt/module/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input/ /output

2、历史任务列表(http://192.168.216.100:19888/jobhistory)

3、查看任务运行日志

4、运行日志详情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值