hadoop简介
用java实现的、开源的。允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算。
hadoop核心组件
Hadoop HDFS(分布式文件存储系统):解决海量数据存储。
Hadoop YARN (集群资源管理和任务调度框架) :解决资源任务调用。
Hadoop MapReduce (分布式计算框架):解决海量数据 计算。
hadoop特性优点
》扩容能力。hadoop集群可以扩展到数以千计的节点。
》成本低。hadoop集群允许通过部署普通廉价的机器组成集群来处理大数据。
》效率高。通过并发数据,hadoop可以在节点之间动态并行的移动数据。
》可靠性。能自动维护数据的 多份复制,并且在任务失败后能自动地重新部署计算任务。
Apache Hadoop集群搭建
hadoop集群整体概述
hadoop集群主要包括两个集群:
HDFS集群(分布式存储)
主角色:NameNode
从角色:DataNode
主角色辅助角色:SecondaryNameNode
YARN集群(资源管理、调度)
主角色:ResourceManager
从角色:NodeManager
两个集群逻辑上分离,通常物理上在一起
两个集群都是标准的主从构架集群
逻辑上分离?------> 两个集群相互之间没有依赖、互不影响
物理上在一起? ----> 某些角色进程往往部署在同一台物理服务器上
MapReduce集群? -----> MapReduce是计算框架,没有集群之说。
集群搭建的步骤
前期准备:
》采用的虚拟机是CenOS 7 ,虚拟机软件VMare 16 。虚拟机需要配置联网。
》虚拟机远程连接工具XShell、文件传输工具Xftp。
》下载 hadoop3.0-tar.gz 的压缩包。官网下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3
》下载JDK的压缩包 ,采用的版本 jdk-8u212-linux-x64.tar.gz
》 下载maven压缩包,采用版本为 apache-maven-3.6.3-bin.tar.gz
》 protobuf-2.5.0.tar.gz(序列化的框架)
》 cmake-3.13.1.tar.gz
第一步:集群角色规划
角色划分准则:根据软件工作特性和服务器硬件资源情况合理分配。
角色规划注意事项:
》资源上有争夺冲突,不要部署在一起。
》工作上需要相互配合,尽量部署在一起。
服务器名称 | 运行角色 |
hadoop102 | namenode、datanode、resourcemanager、nodemanager |
hadoop102 | secondarynamenode、datanode、nodemanager |
hadoop104 | datanode、nodemanager |
第二步:服务器基础环境准备
* 主机名(3台机器)
# 编辑命名主机名命令
vim /etc/hostname
#
hadoop102
hadoop103
hadoop104
# 编辑hoost映射命令
vim /etc/hosts
# 配置每台机器的ip地址
192.168.75.102 hadoop102
192.168.75.103 hadoop103
192.168.75.104 hadoop104
服务器基础环境准备
* 防火墙关闭(3台机器)
systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service # 禁止防火墙开启自启
* ssh免密登录(hadoop102执行 ----> hadoop102 | hadoop103 | hadoop104)
ssh-keygen # 4个回车,生成公钥、私钥
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
* 集群时间同步(3台机器)
yum -y install ntpdate
ntpdate ntpp4.aliyun.com
* 创建统一工作目录(3台机器)
mkdir -p /opt/module/Hadoop_source # 软件安装路径
mkdir -p /opt/software/hadoop_source # 安装包存放路径
第三步:上传安装包、解压安装包
(1)虚拟机打开,使用XShell远程连接虚拟机。通过Xftp将windows本地下载准备的压缩包,上传到指定目录/opt/software/hadoop_source
(2)解压压缩包到指定路径,/opt/module/Hadoop_source
注意: 安装jdk之前,需要先卸载现有jdk(需要在root用户的权限下)
# 查看自带open jdk的版本
rpm -qa|grep jdk
# 卸载
rpm -e --nodeps [jdk的文件名]
# 查看是否还有jdk
java -version
# 解压maven
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 解压cmake
tar -zxvf cmake-3.13.1.tar.gz -C
/opt/module/hadoop_source/
# 解压hadoop
tar -zxvf hadoop-3.1.3-src.tar.gz -C /opt/module/hadoop_source/
# 解压jdk
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/hadoop_source/
# 解压protobuf
tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/hadoop_source/
查看解压的文件夹
[root@hadoop101 hadoop_source]# ll
总用量 20
drwxrwxr-x. 6 itwwy itwwy 4096 3月 28 13:25 apache-maven-3.6.3
drwxr-xr-x. 15 root root 4096 3月 28 13:43 cmake-3.13.1
drwxr-xr-x. 18 itwwy itwwy 4096 9月 12 2019 hadoop-3.1.3-src
drwxr-xr-x. 10 itwwy itwwy 4096 3月 28 13:44 protobuf-2.5.0
* 配置Java、maven环境变量
[root@hadoop101 hadoop_source]# sudo vim /etc/profile.d/my_env.sh
#JAVA_HOME
JAVA_HOME=/opt/module/hadoop_source/jdk1.8.0_212
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/bin
#MAVEN_HOME
MAVEN_HOME=/opt/module/hadoop_source/apache-maven-3.6.3
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
# 使得配置文件生效
[root@hadoop101 hadoop_source]# source /etc/profile
修改maven的镜像
#修改maven的镜像
[root@hadoop101 apache-maven-3.6.3]# vi conf/settings.xml
# 在 mirrors节点中添加阿里云镜像
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
验证java是否安装成功
[root@hadoop101 hadoop_source]# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
验证maven安装成功
[root@hadoop101 hadoop_source]# mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/module/hadoop_source/apache-maven-3.6.3
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /opt/module/jdk1.8.0_212/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
#注意:安装相关依赖 (注意安装顺序不可乱,可能会出现依赖找不到问题)!!!
# 安装gcc make
[root@hadoop101 hadoop_source]# yum install -y gcc* make
#安装压缩工具
[root@hadoop101 hadoop_source]# yum -y install snappy* bzip2* lzo* zlib* lz4* gzip*
#安装一些基本工具
[root@hadoop101 hadoop_source]# yum -y install openssl* svn ncurses* autoconf automake libtool
#安装扩展源,才可安装zstd
[root@hadoop101 hadoop_source]# yum -y install epel-release
#安装zstd
[root@hadoop101 hadoop_source]# yum -y install zstd
#手动安装cmake
1. 在解压好的cmake目录下,执行 ./bootstrap 进行编译,此过程需一小会时间耐心等待.
[itwwy@hadoop101 cmake-3.13.1]$ pwd
/opt/module/hadoop_source/cmake-3.13.1
[itwwy@hadoop101 cmake-3.13.1]$ ./bootstrap
2. 执行安装
[itwwy@hadoop101 cmake-3.13.1]$ make && make install
3. 验证安装是否成功
[itwwy@hadoop101 cmake-3.13.1]$ cmake -version
cmake version 3.13.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
#安装protobuf ,进入到解压后的protobuf目录
[itwwy@hadoop101 protobuf-2.5.0]$ pwd
/opt/module/hadoop_source/protobuf-2.5.0
#依次执行下列命令 --prefix 指定安装到当前目录
[itwwy@hadoop101 protobuf-2.5.0]$ ./configure --prefix=/opt/module/hadoop_source/protobuf-2.5.0
[itwwy@hadoop101 protobuf-2.5.0]$ make && make install
#配置环境变量
[itwwy@hadoop101 protobuf-2.5.0]$ vim /etc/profile
PROTOC_HOME=/opt/module/hadoop_source/protobuf-2.5.0
PATH=PATH:JAVA_HOME/bin:MAVEN_HOME/bin:PROTOC_HOME/bin
#验证
[itwwy@hadoop101 protobuf-2.5.0]$ source /etc/profile
[itwwy@hadoop101 protobuf-2.5.0]$ protoc --version
libprotoc 2.5.0
到此,软件包安装配置工作完成。
在Hadoop102安装Haddop
下载hadoop地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
使用Xftp将hadoop-3.1.3.tar.gz压缩包上传到hadoop102的opt目录下的software文件夹中
进入到Hadoop安装包下
[itwwy@hadoop102 ~]$ cd /opt/software/
解压安装文文件到/opt/module下面
[itwwy@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
查看是都解压成功
[itwwy@hadoop102 software]$ ls /opt/module/
hadoop-3.1.3
配置hadoop的环境变量
(1)获取hadoop安装路径
[itwwy@hadoop102 hadoop-3.1.3]$ pwd
/opt/module/hadoop-3.1.3
(2)打开/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
(3)在文件末尾追加如下内容:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(4)保存并退出
:wq
(5) 让修改后的文件生效
[itwwy@hadoop102 hadoop-3.1.3]$ source /etc/profile
(6)测试是否安装成功
[itwwy@hadoop102 hadoop-3.1.3]$ hadoop version
Hadoop 3.1.3
(7) 重启(如果Hadoop命令不能用再重启)
[itwwy@hadoop102 hadoop-3.1.3]$ sync
[itwwy@hadoop102 hadoop-3.1.3]$ sudo reboot
Hadoop运行模式
Hadoop运行模式包括:本地模式、伪分布式模式、以及完全分布式模式。
Hadoop官网:http://hadoop.apache.org/
本地运行模式
1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹
[itwwy@hadoop102 hadoop-3.1.3]$ mkdir wcinput
2)在wcinput文件下创建一个word.txt文件
[itwwy@hadoop102 hadoop-3.1.3]$ cd wcinput
3)编辑word.txt文件
[itwwy@hadoop102 wcinput]$ vim word.txt
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
itwwy
itwwy
保存退出::wq
4)回到Hadoop目录/opt/module/hadoop-3.1.3
5)执行程序
[itwwy@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
6)查看结果
[itwwy@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000
看到如下结果:
itwwy 2
hadoop 2
mapreduce 1
yarn 1
完全分布式运行模式
(1)编写集群分发脚本xsync
》scp 安全拷贝(实现服务器与服务器之间的数据拷贝)
基本语法
scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
[命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称]
(2)hadoop102、hadoop103、hadoop104之间传递文件
* 在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。
[itwwy@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212 itwwy@hadoop103:/opt/module
* 在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。
[itwwy@hadoop103 ~]$ scp -r itwwy@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/
* 在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。
[itwwy@hadoop103 opt]$ scp -r itwwy@hadoop102:/opt/module/* itwwy@hadoop104:/opt/module
rsync远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容 和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
基本语法
rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
-a : 归档拷贝
-v : 显示复制过程
xsync集群分发脚本
说明:在/home/itwwy/bin这个目录下存放的脚本。
脚本实现
(a)在/home/itwwy/bin目录下创建xsync文件
[itwwy@hadoop102 opt]$ cd /home/itwwy
[itwwy@hadoop102 ~]$ mkdir bin
[itwwy@hadoop102 ~]$ cd bin
[itwwy@hadoop102 bin]$ vim xsync
在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
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
(b)修改脚本 xsync 具有执行权限
[itwwy@hadoop102 bin]$ chmod +x xsync
(c)将脚本复制到/bin中,以便全局调用
[itwwy@hadoop102 bin]$ sudo cp xsync /bin/
(d)测试脚本
[itwwy@hadoop102 ~]$ xsync /home/itwwy/bin
[itwwy@hadoop102 bin]$ sudo xsync /bin/xsync
SSH无密登录配置
配置ssh
(1)基本语法
ssh 另一台电脑的ip地址
(2)ssh连接时出现Host key verification failed的解决方法
[itwwy@hadoop102 ~]$ ssh hadoop103
出现:
The authenticity of host '192.168.1.103 (192.168.1.103)' can't be established.
RSA key fingerprint is cf:1e:de:d7:d0:4c:2d:98:60:b4:fd:ae:b1:2d:ad:06.
Are you sure you want to continue connecting (yes/no)?
(3)解决方案如下:直接输入yes
配置hadoop102向hadoop103、hadoop104之间的无密登录。
免密登录配置
(4)生成公钥和私钥:
[itwwy@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
然后将公钥拷贝到要免密登录的目标机器上
[itwwy@hadoop102 .ssh]$ ssh-copy-id hadoop102
[itwwy@hadoop102 .ssh]$ ssh-copy-id hadoop103
[itwwy@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:
》还需要在hadoop103上采用itwwy账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
》还需要在hadoop104上采用itwwy账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
》还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
配置文件
需要配置的文件如下所示
修改hadoop配置文件(hadoop-3.1.3/etc/hadoop/hadoop-env.sh)
(1)核心配置文件core-site.xml
# 文件的末尾添加
export JAVA_HOME=jdk安装的位置路径
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
# 找到core-site.xml文件的路径
[itwwy@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop
[itwwy@hadoop102 hadoop]$ vim core-site.xml
# 配置内容
(2)hdfs-site.xml
# 找到hdfs-site.xml的路径
[itwwy@hadoop102 hadoop]$ vim hdfs-site.xml
# 配置文件内容
<configuration>
<!-- nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
(3)YARN配置文件yarn-site.xml
[itwwy@hadoop102 hadoop]$ vim yarn-site.xml
# 配置文件
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</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>
<!-- yarn容器允许分配的最大最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
(4)MapReduce配置文件
# 找到mapred-site.xml路径
[itwwy@hadoop102 hadoop]$ vim mapred-site.xml
# 配置文件内容
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在集群上分发配置好的Hadoop配置文件
[itwwy@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/
在hadoop103、hadoop104查看文件分发情况,其配置文件的内容应该与hadoop102的配置文件内容一致。
[itwwy@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
[itwwy@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
群启集群
配置workers
[itwwy@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
# 在此文件中添加如下内容(添加的文件结尾不能有空格、文件中不能有空行)
hadoop102
hadoop103
hadoop104
# 同步所有节点配置文件
[itwwy@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc
2、启动集群
(1)若集群是第一次启动,需要在hadoop102节点格式化NameNode(注意格式化NameNode,会产生新的集群,导致NameNode和DataNode的集群id不一致,集群找不到数据。)
若集群在运行过程中报错,需要重新格式化NameNode,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。
# 格式化namenode
[itwwy@hadoop102 ~]$ hdfs namenode -format
(2)启动HDFS
[itwwy@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
(3)在配置ResourceManager的节点(Hadoop103)启动YARN
[itwwy@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
(4)web端中查看HDFS的NameNode
* 浏览器中输入:http://hadoop102:9870
* 查看HDFS上存储的数据信息
(5)web端查看YARN的ResourceManager
* 浏览器中输入:http://hadoop103:8088
* 查看YARN上运行的Job信息
3、集群基本测试
(1)上传文件到集群 上传小文件
[itwwy@hadoop102 ~]$ hadoop fs -mkdir /input
[itwwy@hadoop102 ~]$ hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input
上传大文件
[itwwy@hadoop102 ~]$ hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /
(2)上传文件后查看文件存放在什么位置
* 查看HDFS文件存储路径
[itwwy@hadoop102 subdir0]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0
* 查看HDFS在磁盘存储文件内容
[itwwy@hadoop102 subdir0]$ cat blk_1073741825
hadoop yarn
hadoop mapreduce
itwwy
itwwy
(3)拼接
-rw-rw-r--. 1 itwwy itwwy 134217728 5月 23 16:01 blk_1073741836
-rw-rw-r--. 1 itwwy itwwy 1048583 5月 23 16:01 blk_1073741836_1012.meta
-rw-rw-r--. 1 itwwy itwwy 63439959 5月 23 16:01 blk_1073741837
-rw-rw-r--. 1 itwwy itwwy 495635 5月 23 16:01 blk_1073741837_1013.meta
[itwwy@hadoop102 subdir0]$ cat blk_1073741836>>tmp.tar.gz
[itwwy@hadoop102 subdir0]$ cat blk_1073741837>>tmp.tar.gz
[itwwy@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz
(4)下载
[itwwy@hadoop104 software]$ hadoop fs -get /jdk-8u212-linux-x64.tar.gz ./
(5)执行wordcount程序
[itwwy@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
集群启动停止方式总结
1、各个服务组件逐一启动停止
(1)分别启动/停止HDFS组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(2)启动/停止YARN
yarn --daemon start/stop resourcemanager/nodemanager
2、各个模块分开启动停止(配置ssh是前提)常用
(1)整体启动/停止HDFS
start-dfs.sh/stop-dfs.sh
(2)整体启动/停止YARN
start-yarn.sh/stop-yarn.sh
配置历史服务器
配置历史服务器
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
1)配置mapred-site.xml
[itwwy@hadoop102 hadoop]$ vim mapred-site.xml
在该文件里面增加如下配置。
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
2)分发配置
[itwwy@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
3)在hadoop102启动历史服务器
[itwwy@hadoop102 hadoop]$ mapred --daemon start historyserver
4)查看历史服务器是否启动
[itwwy@hadoop102 hadoop]$ jps
5)查看JobHistory
http://hadoop102:19888/jobhistory
配置日志的集群
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
** 注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。
开启日志聚集功能具体步骤如下:
配置yarn-site.xml
[itwwy@hadoop102 hadoop]$ vim yarn-site.xml
在该文件里面增加如下配置。
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
2)分发配置
[itwwy@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
3)关闭NodeManager 、ResourceManager和HistoryServer
[itwwy@hadoop103 ~]$ stop-yarn.sh
[itwwy@hadoop102 ~]$ mapred --daemon stop historyserver
4)启动NodeManager 、ResourceManage和HistoryServer
[itwwy@hadoop103 ~]$ start-yarn.sh
[itwwy@hadoop102 ~]$ mapred --daemon start historyserver
5)删除HDFS上已经存在的输出文件
[itwwy@hadoop102 ~]$ hadoop fs -rm -r /output
6)执行WordCount程序
[itwwy@hadoop102 ~]$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
7)查看日志,
http://hadoop102:19888/jobhistory
7)查看日志