Big Data第三部分《Hadoop集群搭建》
-
文章目录
- CDH版本Hadoop重新编译
- 安装jdk1.7
- 安装maven
- 安装findbugs
- 安装protobuf
- 安装snappy
- 下载cdh源码准备编译
- 一:大数据集群安装部署
- 二:CDH 分布式环境搭建
- Hadoop集群初体验
- MapReduce的jobHistory介绍
CDH版本Hadoop重新编译
准备编译环境linux环境
- 准备一台linux环境,内存4G或以上,硬盘40G或以上,我们这里使用的是Centos6.9 64位的操作系统(注意:一定要使用64位的操作系统)
- 虚拟机联网,关闭防火墙,关闭selinux
关闭防火墙命令
[root@node01 ~]# service iptables stop[root@node01 ~]# chkconfig iptables off
关闭selinux
[root@node01 ~]# vim /etc/selinux/config
安装jdk1.7
注意:亲测证明hadoop-2.6.0-cdh5.14.0 这个版本的编译,只能使用jdk1.7,如果使用jdk1.8那么就会报错
查看centos6.9自带的openjdk
rpm -qa | grep java
将所有这些openjdk全部卸载掉
[root@node01 ~]# rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
注意:这里一定不要使用jdk1.8,亲测jdk1.8会出现错误
将我们jdk的安装包上传到/export/softwares(我这里使用的是jdk1.7.0_71这个版本)解压我们的jdk压缩包
统一两个路径
[root@node01 ~]# mkdir -p /export/servers
[root@node01 ~]# mkdir -p /export/softwares
[root@node01 ~]# cd /export/softwares
[root@node01 ~]# tar zxvf jdk-7u75-linux-x64.tar.gz -C ../servers/
配置环境变量
[root@node01 ~]# vim /etc/profile.d/java.sh#在java.sh内添加一下内容,保存退出:wq
export JAVA_HOME=/export/servers/jdk1.7.0_75
export PATH=:$JAVA_HOME/bin:$PATH
让修改立即生效
[root@node01 ~]# source /etc/profile
注意:
- 有种办法是将配置信息追加到系统配置文件/etc/profile内的最后,此方法也行,但profile是系统核心配置文件,若修改时不小心损坏了配置文件,会导致系统很多基本功能失效,此方法风险较高,不建议使用。
安装maven
这里使用maven3.x以上的版本应该都可以,不建议使用太高的版本,强烈建议使用3.0.5的版本即可
- 将maven的安装包上传到/export/softwares
- 然后解压maven的安装包到/export/servers
[root@node01 ~]# cd /export/softwares/[root@node01 ~]# tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../servers/
配置maven的环境变量
vim /etc/profile.d/maven.sh#在maven.sh内添加一下内容,保存退出:wq
export MAVEN_HOME=/export/servers/apache-maven-3.0.5
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:$MAVEN_HOME/bin:$PATH
让修改立即生效
[root@node01 ~]# source /etc/profile
解压maven的仓库
[root@node01 ~]# tar -zxvf mvnrepository.tar.gz -C /export/servers/
修改maven的配置文件
[root@node01 ~]# cd /export/servers/apache-maven-3.0.5/conf[root@node01 ~]# vim settings.xml
指定我们本地仓库存放的路径
<localRepository>/export/servers/mvnrepository</localRepository>
添加一个阿里云的镜像地址,会让我们下载jar包更快
<mirror><id>alimaven</id><name>aliyun maven</name><url>/</url><mirrorOf>central</mirrorOf></mirror>
安装findbugs
下载findbugs
[root@node01 ~]# cd /export/softwares
解压findbugs
[root@node01 ~]# tar -zxvf findbugs-1.3.9.tar.gz -C ../servers/
配置findbugs的环境变量
[root@node01 ~]# vim /etc/profile.d/findbugs.sh#在findbugs.sh内添加一下内容,保存退出:wq
export FINDBUGS_HOME=/export/servers/findbugs-1.3.9
export PATH=:$FINDBUGS_HOME/bin:$PATH
让修改立即生效
[root@node01 ~]# source /etc/profile
在线安装一些依赖包
[root@node01 ~]# yum install -y autoconf automake libtool cmake[root@node01 ~]# yum install -y ncurses-devel[root@node01 ~]# yum install -y openssl-devel[root@node01 ~]# yum install -y lzo-devel zlib-devel gcc gcc-c++
bzip2压缩需要的依赖包
[root@node01 ~]# yum install -y bzip2-devel
安装protobuf
protobuf下载百度网盘地址:
下载之后上传到 /export/softwares,解压protobuf并进行编译
[root@node01 ~]# cd /export/softwares[root@node01 ~]# tar -zxvf protobuf-2.5.0.tar.gz -C ../servers/[root@node01 ~]# cd /export/servers/protobuf-2.5.0[root@node01 ~]# ./configure[root@node01 ~]# make && make install
安装snappy
snappy下载地址:/
[root@node01 ~]# cd /export/softwares/[root@node01 ~]# tar -zxvf snappy-1.1.1.tar.gz -C ../servers/[root@node01 ~]# cd ../servers/snappy-1.1.1/[root@node01 ~]# ./configure[root@node01 ~]# make && make install
下载cdh源码准备编译
源码下载地址为:
.6.0-cdh5.14.0-src.tar.gz
下载源码进行编译
[root@node01 ~]# cd /export/soft[root@node01 ~]# tar -zxvf hadoop-2.6.0-cdh5.14.0-src.tar.gz -C ../servers/[root@node01 ~]# cd /export/servers/hadoop-2.6.0-cdh5.14.0
编译不支持snappy压缩:
[root@node01 ~]# mvn package -Pdist,native -DskipTests –Dtar
编译支持snappy压缩:
[root@node01 ~]# mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X
编译完成之后我们需要的压缩包就在下面这个路径里面
[root@node01 ~]# pwd
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-dist/target
常见编译错误
- 如果编译时候出现这个错误
An Ant BuildException has occured: exec returned: 2
- 这是因为tomcat的压缩包没有下载完成,需要自己下载一个对应版本的apache-tomcat-6.0.53.tar.gz的压缩包放到指定路径下面去即可
这两个路径下面需要放上这个tomcat的 压缩包
[root@node01 ~]# pwd
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-common-project/hadoop-kms/downloads
一:大数据集群安装部署
准备工作
- 1、 关闭防火墙
[root@node01 ~]# /etc/init.d/iptables stop[root@node01 ~]# chkconfig iptables off
- 2、 关闭selinux
[root@node01 ~]#vim /etc/selinux/config
- 3、修改主机名(记得重启:reboot)
[root@node01 ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node01
- 4、设置主机名和IP的对应
[root@node01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#(IP 对应 主机名)
192.168.100.201 node01
192.168.100.202 node02
192.168.100.203 node03 远程拷贝到其他节点
[root@node01 ~]# scp /etc/hosts node02:/etc/(yes/no?)输入yes
[root@node01 ~]# scp /etc/hosts node03:/etc/
- 5、ssh无密码拷贝数据
特别说明(在主节点无密码访问到从节点)
[root@node01 ~]# ssh-keygen -t rsa (按回车三次)[root@node01 ~]# ssh-copy-id 192.168.100.201 (拷贝ip或node01节点)
[root@node01 ~]# ssh-copy-id 192.168.100.202 (拷贝ip或node01节点)
[root@node01 ~]# ssh-copy-id node03 (拷贝ip或node01节点)(yes/no?)输入yes和密码
[root@node01 ~]# ssh 192.168.100.202 (通过IP远程登录)
[root@node02 ~]# ssh node03 (通过节点远程登录)
- 6、jdk1.8 安装详情
# 1 创建安装软件包目录
[root@node01 /]# mkdir -p /export/soft
[root@node01 /]# mkdir -p /export/install[root@node01 /]# cd /export/soft/ (进入到该目录下)
[root@node01 soft]# yum install -y lrzsz (是否安装)
[root@node01 soft]# rz (rz 选择上传配置文件)方法一:绝对路径解压
[root@node01 soft]# tar -zxvf jdk-8u141-linux-x64.tar.gz -C /export/install解压完毕
[root@node01 soft]# cd ../install/ (软件在该目录下)#2. 创建java的配置文件
在/etc/profile.d目录内创建java.sh文件,编辑一下内容
[root@node01 install]# vi /etc/profile.d/java.sh
进入编辑输入该信息
export JAVA_HOME=/export/install/jdk1.8.0_144 (java 解压后的路径)
export PATH=$PATH:$JAVA_HOME/bin ($PATH:加上 JAVA_HOME/bin)#3.修改软连接
[root@node01 install]# whereis java
java: /usr/bin/java
让修改立即生效
[root@node01 install]# source /etc/profile (重新加载配置文件)
[root@node01 install]# jps (安装成功)
29601 Jps
--------------------------------->(node01节点 jdk1.8安装完毕)#拷贝jdk1.8到node02节点上 (r:表示所有)
[root@node01 install]# scp -r export node02:/ #拷贝java.sh的配置文件到node02节点上
[root@node01 install]# scp -r /etc/profile.d/java.sh node02:/etc/profile.d/
------------------>(每个节点拷贝完都得重新加载配置文件)
[root@node01 install]# source /etc/profile (重新加载配置文件)
[root@node01 install]# jps (安装成功)
29601 Jps
-------------------->(每个节点修改软连接)
删除软链接
[root@node01 install]# rm -rf /etc/alternatives/java
创建软链接
[root@node01 install]# ln -s /export/install/jdk1.8.0_144/bin/java /etc/alternatives/java # 再次确认版本号
[root@node01 install]# java -version
java version "1.8.0_144"
[root@node01 install]# jps (安装成功)
29601 Jps
大数据集群准备完毕
二:CDH 分布式环境搭建
安装环境服务部署规划
第一步:上传压缩包并解压
- 将我们重新编译之后支持snappy压缩的Hadoop包上传到第一台服务器并解压
第一台机器执行以下命令
[root@node01 ~]# cd /export/soft/
[root@node01 ~]# rz (rz 选择上传配置文件)解压安装包
[root@node01 ~]# tar -zxvf hadoop-2.6.0-cdh5.14.0.tar.gz -C ../install/
进入目录查看解压是否成功
[root@node01 ~]# cd /export/soft
[root@node01 soft]# ll
总用量 188112
-rw-r--r--. 1 root root 7110610 8月 7 21:25 apache-tomcat-6.0.53.tar.gz
-rw-r--r--. 1 root root 185515842 10月 10 2017 jdk-8u144-linux-x64.tar.gz
[root@node01 soft]# cd ../install/
[root@node01 install]# ll
总用量 12
drwxr-xr-x 11 root root 4096 10月 27 07:49 hadoop-2.6.0-cdh5.14.0
drwxr-xr-x. 8 uucp 143 4096 7月 22 2017 jdk1.8.0_144[root@node01 install]# cd hadoop-2.6.0-cdh5.14.0
[root@node01 hadoop-2.6.0-cdh5.14.0]# ll
总用量 140
drwxr-xr-x 2 root root 4096 10月 27 07:36 bin
drwxr-xr-x 3 root root 4096 10月 27 07:36 etc
drwxr-xr-x 6 root root 4096 10月 27 07:36 hadoopDatas
drwxr-xr-x 2 root root 4096 10月 27 07:36 include
drwxr-xr-x 3 root root 4096 10月 27 07:36 lib
drwxr-xr-x 3 root root 4096 10月 27 07:36 libexec
-rw-r--r-- 1 root root 85063 10月 27 07:37 LICENSE.txt
drwxr-xr-x 3 root root 4096 10月 27 07:49 logs
-rw-r--r-- 1 root root 14978 10月 27 07:36 NOTICE.txt
-rw-r--r-- 1 root root 1366 10月 27 07:36 README.txt
drwxr-xr-x 2 root root 4096 10月 27 07:37 sbin
drwxr-xr-x 4 root root 4096 10月 27 07:36 share
[root@node01 hadoop-2.6.0-cdh5.14.0]# pwd
/export/install/hadoop-2.6.0-cdh5.14.0
- 配置hadoop环境变量
通过拷贝java.sh的方法
[root@node01 hadoop-2.6.0-cdh5.14.0]# cp /etc/profile.d/java.sh /etc/profile.d/hadoop.sh
编辑Hadoop.sh
[root@node01 hadoop-2.6.0-cdh5.14.0]# vi /etc/profile.d/hadoop.sh
添加如下信息
export HADOOP_HOME=/export/install/hadoop-2.6.0-cdh5.14.0
export PATH=$PATH:$HADOOP_HOME/bin
第二步:查看Hadoop支持的压缩方式以及本地库
- 第一台机器执行以下命令
[root@node01 /]# cd /export/install/hadoop-2.6.0-cdh5.14.0
验证hadoop支持哪些算法
[root@node01 hadoop-2.6.0-cdh5.14.0]# bin/hadoop checknative
验证hadoop支持哪些算法 bin/hadoop checknative
- 如果出现openssl为false,那么所有机器在线安装openssl即可,执行以下命令,虚拟机联网之后就可以在线进行安装了
[root@node01 hadoop-2.6.0-cdh5.14.0]# yum -y install openssl-devel
第三步:修改配置文件
- core-site.xml Hadoop的核心配置文件
- hdfs-site.xml 存储组件的核心配置文件
- mapred-site.xml 计算组件的核心配置文件
- yarn-site.xml 资源调度的核心配置文件
- 修改core-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim core-site.xml
把以下代码复制粘贴到 vim core-site.xml
注意节点node01和路径是否相同
<configuration><property><name>fs.defaultFS</name><value>hdfs://node01:8020</value></property><property><name>hadoop.tmp.dir</name><value>/export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/tempDatas</value></property><!-- 缓冲区大小,实际工作中根据服务器性能动态调整 --><property><name>io.file.buffer.size</name><value>4096</value></property><!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --><property><name>fs.trash.interval</name><value>10080</value></property>
</configuration>
- 修改hdfs-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim hdfs-site.xml
把以下代码复制粘贴到 vim hdfs-site.xml
注意节点node01和路径是否相同
<configuration><!-- NameNode存储元数据信息的路径,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <!-- 集群动态上下线 <property><name>dfs.hosts</name><value>/export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoop/accept_host</value></property><property><name>dfs.hosts.exclude</name><value>/export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoop/deny_host</value></property>--><property><name>dfs.namenode.secondary.http-address</name><value>node01:50090</value></property><property><name>dfs.namenode.http-address</name><value>node01:50070</value></property><property><name>dfs.namenode.name.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value></property><!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --><property><name>dfs.datanode.data.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas</value></property><property><name>dfs.namenode.edits.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name</value></property><property><name>dfs.namenode.checkpoint.edits.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.permissions</name><value>false</value></property>
<property><name>dfs.blocksize</name><value>134217728</value></property>
</configuration>
- 修改Hadoop-env.sh
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim hadoop-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
- 修改mapred-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim mapred-site.xml
把以下代码复制粘贴到 vim mapred-site.xml
注意节点node01和路径是否相同
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property>
</configuration>
- 修改yarn-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim yarn-site.xml
把以下代码复制粘贴到 vim yarn-site.xml
注意节点node01和路径是否相同
<configuration><property><name>yarn.resourcemanager.hostname</name><value>node01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
- 修改slaves文件
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim slaves (slaves:表示工作者)
node01 (添加node01为工作者)
node02 (添加node02为工作者)
node03 (添加node03为工作者)
第四步:创建文件存放目录
第一台机器执行以下命令
node01机器上面创建以下目录
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/tempDatas
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits
第五步:安装包的分发
第一台机器执行以下命令
[root@node01 /]# cd /export/install/
把安装包拷贝到其他节点上
[root@node01 /]# scp -r hadoop-2.6.0-cdh5.14.0/ node02:/export/install/ (方式一)
[root@node01 /]# scp -r hadoop-2.6.0-cdh5.14.0/ node03:$PWD (方式二)
第六步:配置Hadoop的环境变量
三台机器都要进行配置Hadoop的环境变量
三台机器执行以下命令
方式一:通过拷贝的方式 hadoop.sh
[root@node01 /]# scp -r /etc/profile.d/hadoop.sh node02:/etc/profile.d/
方式二:hadoop.sh
[root@node02 /]# vim /etc/profile.d/hadoop.sh
编辑hadoop.sh 添加如下信息
export HADOOP_HOME=/export/install/hadoop-2.6.0-cdh5.14.0
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
[root@node01 /]# source /etc/profile
第七步:集群启动
集群格式化(在主节点,hadoop的安装路径下 bin里 )
- 要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群
- 注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的 HDFS 在物理上还是不存在的
- bin/hdfs namenode -format
[root@node01 /]# bin/hdfs namenode -format
- 单个节点逐一启动
在主节点上使用以下命令启动 HDFS NameNode: Hadoop-daemon.sh start namenode
在每个从节点上使用以下命令启动 HDFS DataNode: Hadoop-daemon.sh start datanode
在主节点上使用以下命令启动 YARN ResourceManager: yarn-daemon.sh start resourcemanager
在每个从节点上使用以下命令启动 YARN nodemanager: yarn-daemon.sh start nodemanager
以上脚本位于$HADOOP_PREFIX/sbin/目录下。如果想要停止某个节点上某个角色,只需要把命令中的start 改为stop 即可。
脚本一键启动HDFS、Yarn
- 如果配置了 etc/Hadoop/slaves 和 ssh 免密登录,则可以使用程序脚本启动所有Hadoop 两个集群的相关进程,在主节点所设定的机器上执行。
- 启动集群
node01节点上执行以下命令
第一台机器执行以下命令
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-dfs.sh
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-yarn.sh
- 停止集群:没事儿不要去停止集群
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/stop-dfs.sh
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/stop-yarn.sh
- 脚本一键启动所有
一键启动集群
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-all.sh一键关闭集群
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/stop-all.sh
- 集群启动验证
从节点jps
- 哪个节点的服务出现异常,就到哪个节点的log下面找对应的日志
所有的启动信息(有异常或无异常),都包含在日志中
集群不要轻易的去格式化(格式化后集群的所有数据都被删除且无法恢复)
第八步:浏览器查看启动页面
hdfs集群访问地址
http://192.168.100.201:50070
yarn集群访问地址
http://192.168.100.201:8088
Hadoop集群初体验
- HDFS 使用初体验
从Linux 本地上传一个文本文件到 hdfs 的/test/input 目录下
hadoop fs -mkdir -p /test/input
hadoop fs -put /root/install.log /test/input
- 在HDFS系统中创建一个文件夹或文件,若能创建表示集群可以
- HDFS不支持目录或文件夹切换,所有路径必须写成绝对路径
- HDFS权限与linux 的权限等完全相同
- HDFS 体验
创建文件夹
hadoop fs -mkdir /abc
上传文件
hadoop fs -put /opt/a.txt /abc
查看文件夹内的内容
hadoop fs -ls /abc
- mapreduce程序初体验
在 Hadoop 安装包的 hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce 下有官方自带的mapreduce 程序。我们可以使用如下的命令进行运行测试。
示例程序jar: hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar
计算圆周率
hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.6.0-cdh5.14.0.jar pi 10 100
关于圆周率的估算,感兴趣的可以查询资料 Monte Carlo 方法来计算 Pi 值。
- 第1个10指的是要运行10次map任务
第2个数字指的是每个map任务,要投掷100次
MapReduce的jobHistory介绍
- 我们可以通过Hadoop jar的命令来实现我们的程序jar包的运行,关于运行的日志,我们一般都需要通过启动一个服务来进行查看,就是我们的JobHistoryServer,我们可以启动一个进程,专门用于查看我们的任务提交的日志
- 查看历史执行了哪些任务(所有任务)以及详细日志
登录到resourceManager所在的节点IP +8088
访问地址:http://192.168.100.201:8088
- 需要查看任务的详细信息需要独立开启一个服务JobHistoryServer
开启服务 ./mr-jobhistory-daemon.sh start historyserver
访问地址:http://192.168.100.201:19888
第一步:node01修改mapred-site.xml
node01服务器修改mapred-site.xml,添加以下配置
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim mapred-site.xml
把以下代码复制粘贴到 vim mapred-site.xml
注意节点node01是否相同
<property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property>
第二步:node01修改yarn-site.xml
node01服务器修改yarn-site.xml,添加以下配置
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoopvim yarn-site.xml
把以下代码复制粘贴到 vim yarn-site.xml
注意节点node01和路径是否相同
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
<!--指定文件压缩类型用于压缩汇总日志-->
<property><name>yarn.nodemanager.log-aggregation.compression-type</name><value>gz</value>
</property>
<!-- nodemanager本地文件存储目录-->
<property><name>yarn.nodemanager.local-dirs</name><value>/export/install/hadoop-2.6.0/yarn/local</value>
</property>
<!-- resourceManager 保存最大的任务完成个数 -->
<property><name>yarn.resourcemanager.max-completed-applications</name><value>1000</value>
</property>
第三步:修改后的文件分发(拷贝)到其他机器上面去
- 将node01修改后的mapred-site.xml和yarn-site.xml分发到其他机器上面去
node01执行以下命令
[root@node01 /]# cd /export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoopscp mapred-site.xml yarn-site.xml node02:$PWDscp mapred-site.xml yarn-site.xml node03:$PWD
第四步:重启yarn集群以及启动jobHistoryServer进程
node01执行以下命令重启yarn集群
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/sbin/stop-yarn.shsbin/start-yarn.sh
启动jobhistoryserver
sbin/mr-jobhistory-daemon.sh start historyserver
第五步:页面访问jobhistoryserver
访问地址
192.168.100.201:19888
Big Data第三部分《Hadoop集群搭建》
-
文章目录
- CDH版本Hadoop重新编译
- 安装jdk1.7
- 安装maven
- 安装findbugs
- 安装protobuf
- 安装snappy
- 下载cdh源码准备编译
- 一:大数据集群安装部署
- 二:CDH 分布式环境搭建
- Hadoop集群初体验
- MapReduce的jobHistory介绍
CDH版本Hadoop重新编译
准备编译环境linux环境
- 准备一台linux环境,内存4G或以上,硬盘40G或以上,我们这里使用的是Centos6.9 64位的操作系统(注意:一定要使用64位的操作系统)
- 虚拟机联网,关闭防火墙,关闭selinux
关闭防火墙命令
[root@node01 ~]# service iptables stop[root@node01 ~]# chkconfig iptables off
关闭selinux
[root@node01 ~]# vim /etc/selinux/config
安装jdk1.7
注意:亲测证明hadoop-2.6.0-cdh5.14.0 这个版本的编译,只能使用jdk1.7,如果使用jdk1.8那么就会报错
查看centos6.9自带的openjdk
rpm -qa | grep java
将所有这些openjdk全部卸载掉
[root@node01 ~]# rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
注意:这里一定不要使用jdk1.8,亲测jdk1.8会出现错误
将我们jdk的安装包上传到/export/softwares(我这里使用的是jdk1.7.0_71这个版本)解压我们的jdk压缩包
统一两个路径
[root@node01 ~]# mkdir -p /export/servers
[root@node01 ~]# mkdir -p /export/softwares
[root@node01 ~]# cd /export/softwares
[root@node01 ~]# tar zxvf jdk-7u75-linux-x64.tar.gz -C ../servers/
配置环境变量
[root@node01 ~]# vim /etc/profile.d/java.sh#在java.sh内添加一下内容,保存退出:wq
export JAVA_HOME=/export/servers/jdk1.7.0_75
export PATH=:$JAVA_HOME/bin:$PATH
让修改立即生效
[root@node01 ~]# source /etc/profile
注意:
- 有种办法是将配置信息追加到系统配置文件/etc/profile内的最后,此方法也行,但profile是系统核心配置文件,若修改时不小心损坏了配置文件,会导致系统很多基本功能失效,此方法风险较高,不建议使用。
安装maven
这里使用maven3.x以上的版本应该都可以,不建议使用太高的版本,强烈建议使用3.0.5的版本即可
- 将maven的安装包上传到/export/softwares
- 然后解压maven的安装包到/export/servers
[root@node01 ~]# cd /export/softwares/[root@node01 ~]# tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../servers/
配置maven的环境变量
vim /etc/profile.d/maven.sh#在maven.sh内添加一下内容,保存退出:wq
export MAVEN_HOME=/export/servers/apache-maven-3.0.5
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:$MAVEN_HOME/bin:$PATH
让修改立即生效
[root@node01 ~]# source /etc/profile
解压maven的仓库
[root@node01 ~]# tar -zxvf mvnrepository.tar.gz -C /export/servers/
修改maven的配置文件
[root@node01 ~]# cd /export/servers/apache-maven-3.0.5/conf[root@node01 ~]# vim settings.xml
指定我们本地仓库存放的路径
<localRepository>/export/servers/mvnrepository</localRepository>
添加一个阿里云的镜像地址,会让我们下载jar包更快
<mirror><id>alimaven</id><name>aliyun maven</name><url>/</url><mirrorOf>central</mirrorOf></mirror>
安装findbugs
下载findbugs
[root@node01 ~]# cd /export/softwares
解压findbugs
[root@node01 ~]# tar -zxvf findbugs-1.3.9.tar.gz -C ../servers/
配置findbugs的环境变量
[root@node01 ~]# vim /etc/profile.d/findbugs.sh#在findbugs.sh内添加一下内容,保存退出:wq
export FINDBUGS_HOME=/export/servers/findbugs-1.3.9
export PATH=:$FINDBUGS_HOME/bin:$PATH
让修改立即生效
[root@node01 ~]# source /etc/profile
在线安装一些依赖包
[root@node01 ~]# yum install -y autoconf automake libtool cmake[root@node01 ~]# yum install -y ncurses-devel[root@node01 ~]# yum install -y openssl-devel[root@node01 ~]# yum install -y lzo-devel zlib-devel gcc gcc-c++
bzip2压缩需要的依赖包
[root@node01 ~]# yum install -y bzip2-devel
安装protobuf
protobuf下载百度网盘地址:
下载之后上传到 /export/softwares,解压protobuf并进行编译
[root@node01 ~]# cd /export/softwares[root@node01 ~]# tar -zxvf protobuf-2.5.0.tar.gz -C ../servers/[root@node01 ~]# cd /export/servers/protobuf-2.5.0[root@node01 ~]# ./configure[root@node01 ~]# make && make install
安装snappy
snappy下载地址:/
[root@node01 ~]# cd /export/softwares/[root@node01 ~]# tar -zxvf snappy-1.1.1.tar.gz -C ../servers/[root@node01 ~]# cd ../servers/snappy-1.1.1/[root@node01 ~]# ./configure[root@node01 ~]# make && make install
下载cdh源码准备编译
源码下载地址为:
.6.0-cdh5.14.0-src.tar.gz
下载源码进行编译
[root@node01 ~]# cd /export/soft[root@node01 ~]# tar -zxvf hadoop-2.6.0-cdh5.14.0-src.tar.gz -C ../servers/[root@node01 ~]# cd /export/servers/hadoop-2.6.0-cdh5.14.0
编译不支持snappy压缩:
[root@node01 ~]# mvn package -Pdist,native -DskipTests –Dtar
编译支持snappy压缩:
[root@node01 ~]# mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X
编译完成之后我们需要的压缩包就在下面这个路径里面
[root@node01 ~]# pwd
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-dist/target
常见编译错误
- 如果编译时候出现这个错误
An Ant BuildException has occured: exec returned: 2
- 这是因为tomcat的压缩包没有下载完成,需要自己下载一个对应版本的apache-tomcat-6.0.53.tar.gz的压缩包放到指定路径下面去即可
这两个路径下面需要放上这个tomcat的 压缩包
[root@node01 ~]# pwd
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-common-project/hadoop-kms/downloads
一:大数据集群安装部署
准备工作
- 1、 关闭防火墙
[root@node01 ~]# /etc/init.d/iptables stop[root@node01 ~]# chkconfig iptables off
- 2、 关闭selinux
[root@node01 ~]#vim /etc/selinux/config
- 3、修改主机名(记得重启:reboot)
[root@node01 ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node01
- 4、设置主机名和IP的对应
[root@node01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#(IP 对应 主机名)
192.168.100.201 node01
192.168.100.202 node02
192.168.100.203 node03 远程拷贝到其他节点
[root@node01 ~]# scp /etc/hosts node02:/etc/(yes/no?)输入yes
[root@node01 ~]# scp /etc/hosts node03:/etc/
- 5、ssh无密码拷贝数据
特别说明(在主节点无密码访问到从节点)
[root@node01 ~]# ssh-keygen -t rsa (按回车三次)[root@node01 ~]# ssh-copy-id 192.168.100.201 (拷贝ip或node01节点)
[root@node01 ~]# ssh-copy-id 192.168.100.202 (拷贝ip或node01节点)
[root@node01 ~]# ssh-copy-id node03 (拷贝ip或node01节点)(yes/no?)输入yes和密码
[root@node01 ~]# ssh 192.168.100.202 (通过IP远程登录)
[root@node02 ~]# ssh node03 (通过节点远程登录)
- 6、jdk1.8 安装详情
# 1 创建安装软件包目录
[root@node01 /]# mkdir -p /export/soft
[root@node01 /]# mkdir -p /export/install[root@node01 /]# cd /export/soft/ (进入到该目录下)
[root@node01 soft]# yum install -y lrzsz (是否安装)
[root@node01 soft]# rz (rz 选择上传配置文件)方法一:绝对路径解压
[root@node01 soft]# tar -zxvf jdk-8u141-linux-x64.tar.gz -C /export/install解压完毕
[root@node01 soft]# cd ../install/ (软件在该目录下)#2. 创建java的配置文件
在/etc/profile.d目录内创建java.sh文件,编辑一下内容
[root@node01 install]# vi /etc/profile.d/java.sh
进入编辑输入该信息
export JAVA_HOME=/export/install/jdk1.8.0_144 (java 解压后的路径)
export PATH=$PATH:$JAVA_HOME/bin ($PATH:加上 JAVA_HOME/bin)#3.修改软连接
[root@node01 install]# whereis java
java: /usr/bin/java
让修改立即生效
[root@node01 install]# source /etc/profile (重新加载配置文件)
[root@node01 install]# jps (安装成功)
29601 Jps
--------------------------------->(node01节点 jdk1.8安装完毕)#拷贝jdk1.8到node02节点上 (r:表示所有)
[root@node01 install]# scp -r export node02:/ #拷贝java.sh的配置文件到node02节点上
[root@node01 install]# scp -r /etc/profile.d/java.sh node02:/etc/profile.d/
------------------>(每个节点拷贝完都得重新加载配置文件)
[root@node01 install]# source /etc/profile (重新加载配置文件)
[root@node01 install]# jps (安装成功)
29601 Jps
-------------------->(每个节点修改软连接)
删除软链接
[root@node01 install]# rm -rf /etc/alternatives/java
创建软链接
[root@node01 install]# ln -s /export/install/jdk1.8.0_144/bin/java /etc/alternatives/java # 再次确认版本号
[root@node01 install]# java -version
java version "1.8.0_144"
[root@node01 install]# jps (安装成功)
29601 Jps
大数据集群准备完毕
二:CDH 分布式环境搭建
安装环境服务部署规划
第一步:上传压缩包并解压
- 将我们重新编译之后支持snappy压缩的Hadoop包上传到第一台服务器并解压
第一台机器执行以下命令
[root@node01 ~]# cd /export/soft/
[root@node01 ~]# rz (rz 选择上传配置文件)解压安装包
[root@node01 ~]# tar -zxvf hadoop-2.6.0-cdh5.14.0.tar.gz -C ../install/
进入目录查看解压是否成功
[root@node01 ~]# cd /export/soft
[root@node01 soft]# ll
总用量 188112
-rw-r--r--. 1 root root 7110610 8月 7 21:25 apache-tomcat-6.0.53.tar.gz
-rw-r--r--. 1 root root 185515842 10月 10 2017 jdk-8u144-linux-x64.tar.gz
[root@node01 soft]# cd ../install/
[root@node01 install]# ll
总用量 12
drwxr-xr-x 11 root root 4096 10月 27 07:49 hadoop-2.6.0-cdh5.14.0
drwxr-xr-x. 8 uucp 143 4096 7月 22 2017 jdk1.8.0_144[root@node01 install]# cd hadoop-2.6.0-cdh5.14.0
[root@node01 hadoop-2.6.0-cdh5.14.0]# ll
总用量 140
drwxr-xr-x 2 root root 4096 10月 27 07:36 bin
drwxr-xr-x 3 root root 4096 10月 27 07:36 etc
drwxr-xr-x 6 root root 4096 10月 27 07:36 hadoopDatas
drwxr-xr-x 2 root root 4096 10月 27 07:36 include
drwxr-xr-x 3 root root 4096 10月 27 07:36 lib
drwxr-xr-x 3 root root 4096 10月 27 07:36 libexec
-rw-r--r-- 1 root root 85063 10月 27 07:37 LICENSE.txt
drwxr-xr-x 3 root root 4096 10月 27 07:49 logs
-rw-r--r-- 1 root root 14978 10月 27 07:36 NOTICE.txt
-rw-r--r-- 1 root root 1366 10月 27 07:36 README.txt
drwxr-xr-x 2 root root 4096 10月 27 07:37 sbin
drwxr-xr-x 4 root root 4096 10月 27 07:36 share
[root@node01 hadoop-2.6.0-cdh5.14.0]# pwd
/export/install/hadoop-2.6.0-cdh5.14.0
- 配置hadoop环境变量
通过拷贝java.sh的方法
[root@node01 hadoop-2.6.0-cdh5.14.0]# cp /etc/profile.d/java.sh /etc/profile.d/hadoop.sh
编辑Hadoop.sh
[root@node01 hadoop-2.6.0-cdh5.14.0]# vi /etc/profile.d/hadoop.sh
添加如下信息
export HADOOP_HOME=/export/install/hadoop-2.6.0-cdh5.14.0
export PATH=$PATH:$HADOOP_HOME/bin
第二步:查看Hadoop支持的压缩方式以及本地库
- 第一台机器执行以下命令
[root@node01 /]# cd /export/install/hadoop-2.6.0-cdh5.14.0
验证hadoop支持哪些算法
[root@node01 hadoop-2.6.0-cdh5.14.0]# bin/hadoop checknative
验证hadoop支持哪些算法 bin/hadoop checknative
- 如果出现openssl为false,那么所有机器在线安装openssl即可,执行以下命令,虚拟机联网之后就可以在线进行安装了
[root@node01 hadoop-2.6.0-cdh5.14.0]# yum -y install openssl-devel
第三步:修改配置文件
- core-site.xml Hadoop的核心配置文件
- hdfs-site.xml 存储组件的核心配置文件
- mapred-site.xml 计算组件的核心配置文件
- yarn-site.xml 资源调度的核心配置文件
- 修改core-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim core-site.xml
把以下代码复制粘贴到 vim core-site.xml
注意节点node01和路径是否相同
<configuration><property><name>fs.defaultFS</name><value>hdfs://node01:8020</value></property><property><name>hadoop.tmp.dir</name><value>/export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/tempDatas</value></property><!-- 缓冲区大小,实际工作中根据服务器性能动态调整 --><property><name>io.file.buffer.size</name><value>4096</value></property><!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --><property><name>fs.trash.interval</name><value>10080</value></property>
</configuration>
- 修改hdfs-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim hdfs-site.xml
把以下代码复制粘贴到 vim hdfs-site.xml
注意节点node01和路径是否相同
<configuration><!-- NameNode存储元数据信息的路径,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <!-- 集群动态上下线 <property><name>dfs.hosts</name><value>/export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoop/accept_host</value></property><property><name>dfs.hosts.exclude</name><value>/export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoop/deny_host</value></property>--><property><name>dfs.namenode.secondary.http-address</name><value>node01:50090</value></property><property><name>dfs.namenode.http-address</name><value>node01:50070</value></property><property><name>dfs.namenode.name.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value></property><!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --><property><name>dfs.datanode.data.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas</value></property><property><name>dfs.namenode.edits.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name</value></property><property><name>dfs.namenode.checkpoint.edits.dir</name><value>file:///export/install/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.permissions</name><value>false</value></property>
<property><name>dfs.blocksize</name><value>134217728</value></property>
</configuration>
- 修改Hadoop-env.sh
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim hadoop-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
- 修改mapred-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim mapred-site.xml
把以下代码复制粘贴到 vim mapred-site.xml
注意节点node01和路径是否相同
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property>
</configuration>
- 修改yarn-site.xml
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim yarn-site.xml
把以下代码复制粘贴到 vim yarn-site.xml
注意节点node01和路径是否相同
<configuration><property><name>yarn.resourcemanager.hostname</name><value>node01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
- 修改slaves文件
第一台机器执行以下命令
[root@node01 ]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop[root@node01 hadoop]# vim slaves (slaves:表示工作者)
node01 (添加node01为工作者)
node02 (添加node02为工作者)
node03 (添加node03为工作者)
第四步:创建文件存放目录
第一台机器执行以下命令
node01机器上面创建以下目录
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/tempDatas
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name
[root@node01 /]# mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits
第五步:安装包的分发
第一台机器执行以下命令
[root@node01 /]# cd /export/install/
把安装包拷贝到其他节点上
[root@node01 /]# scp -r hadoop-2.6.0-cdh5.14.0/ node02:/export/install/ (方式一)
[root@node01 /]# scp -r hadoop-2.6.0-cdh5.14.0/ node03:$PWD (方式二)
第六步:配置Hadoop的环境变量
三台机器都要进行配置Hadoop的环境变量
三台机器执行以下命令
方式一:通过拷贝的方式 hadoop.sh
[root@node01 /]# scp -r /etc/profile.d/hadoop.sh node02:/etc/profile.d/
方式二:hadoop.sh
[root@node02 /]# vim /etc/profile.d/hadoop.sh
编辑hadoop.sh 添加如下信息
export HADOOP_HOME=/export/install/hadoop-2.6.0-cdh5.14.0
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
[root@node01 /]# source /etc/profile
第七步:集群启动
集群格式化(在主节点,hadoop的安装路径下 bin里 )
- 要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群
- 注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的 HDFS 在物理上还是不存在的
- bin/hdfs namenode -format
[root@node01 /]# bin/hdfs namenode -format
- 单个节点逐一启动
在主节点上使用以下命令启动 HDFS NameNode: Hadoop-daemon.sh start namenode
在每个从节点上使用以下命令启动 HDFS DataNode: Hadoop-daemon.sh start datanode
在主节点上使用以下命令启动 YARN ResourceManager: yarn-daemon.sh start resourcemanager
在每个从节点上使用以下命令启动 YARN nodemanager: yarn-daemon.sh start nodemanager
以上脚本位于$HADOOP_PREFIX/sbin/目录下。如果想要停止某个节点上某个角色,只需要把命令中的start 改为stop 即可。
脚本一键启动HDFS、Yarn
- 如果配置了 etc/Hadoop/slaves 和 ssh 免密登录,则可以使用程序脚本启动所有Hadoop 两个集群的相关进程,在主节点所设定的机器上执行。
- 启动集群
node01节点上执行以下命令
第一台机器执行以下命令
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-dfs.sh
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-yarn.sh
- 停止集群:没事儿不要去停止集群
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/stop-dfs.sh
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/stop-yarn.sh
- 脚本一键启动所有
一键启动集群
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-all.sh一键关闭集群
[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/stop-all.sh
- 集群启动验证
从节点jps
- 哪个节点的服务出现异常,就到哪个节点的log下面找对应的日志
所有的启动信息(有异常或无异常),都包含在日志中
集群不要轻易的去格式化(格式化后集群的所有数据都被删除且无法恢复)
第八步:浏览器查看启动页面
hdfs集群访问地址
http://192.168.100.201:50070
yarn集群访问地址
http://192.168.100.201:8088
Hadoop集群初体验
- HDFS 使用初体验
从Linux 本地上传一个文本文件到 hdfs 的/test/input 目录下
hadoop fs -mkdir -p /test/input
hadoop fs -put /root/install.log /test/input
- 在HDFS系统中创建一个文件夹或文件,若能创建表示集群可以
- HDFS不支持目录或文件夹切换,所有路径必须写成绝对路径
- HDFS权限与linux 的权限等完全相同
- HDFS 体验
创建文件夹
hadoop fs -mkdir /abc
上传文件
hadoop fs -put /opt/a.txt /abc
查看文件夹内的内容
hadoop fs -ls /abc
- mapreduce程序初体验
在 Hadoop 安装包的 hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce 下有官方自带的mapreduce 程序。我们可以使用如下的命令进行运行测试。
示例程序jar: hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar
计算圆周率
hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.6.0-cdh5.14.0.jar pi 10 100
关于圆周率的估算,感兴趣的可以查询资料 Monte Carlo 方法来计算 Pi 值。
- 第1个10指的是要运行10次map任务
第2个数字指的是每个map任务,要投掷100次
MapReduce的jobHistory介绍
- 我们可以通过Hadoop jar的命令来实现我们的程序jar包的运行,关于运行的日志,我们一般都需要通过启动一个服务来进行查看,就是我们的JobHistoryServer,我们可以启动一个进程,专门用于查看我们的任务提交的日志
- 查看历史执行了哪些任务(所有任务)以及详细日志
登录到resourceManager所在的节点IP +8088
访问地址:http://192.168.100.201:8088
- 需要查看任务的详细信息需要独立开启一个服务JobHistoryServer
开启服务 ./mr-jobhistory-daemon.sh start historyserver
访问地址:http://192.168.100.201:19888
第一步:node01修改mapred-site.xml
node01服务器修改mapred-site.xml,添加以下配置
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim mapred-site.xml
把以下代码复制粘贴到 vim mapred-site.xml
注意节点node01是否相同
<property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property>
第二步:node01修改yarn-site.xml
node01服务器修改yarn-site.xml,添加以下配置
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoopvim yarn-site.xml
把以下代码复制粘贴到 vim yarn-site.xml
注意节点node01和路径是否相同
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
<!--指定文件压缩类型用于压缩汇总日志-->
<property><name>yarn.nodemanager.log-aggregation.compression-type</name><value>gz</value>
</property>
<!-- nodemanager本地文件存储目录-->
<property><name>yarn.nodemanager.local-dirs</name><value>/export/install/hadoop-2.6.0/yarn/local</value>
</property>
<!-- resourceManager 保存最大的任务完成个数 -->
<property><name>yarn.resourcemanager.max-completed-applications</name><value>1000</value>
</property>
第三步:修改后的文件分发(拷贝)到其他机器上面去
- 将node01修改后的mapred-site.xml和yarn-site.xml分发到其他机器上面去
node01执行以下命令
[root@node01 /]# cd /export/install/hadoop-2.6.0-cdh5.14.0/etc/hadoopscp mapred-site.xml yarn-site.xml node02:$PWDscp mapred-site.xml yarn-site.xml node03:$PWD
第四步:重启yarn集群以及启动jobHistoryServer进程
node01执行以下命令重启yarn集群
[root@node01 /]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/sbin/stop-yarn.shsbin/start-yarn.sh
启动jobhistoryserver
sbin/mr-jobhistory-daemon.sh start historyserver
第五步:页面访问jobhistoryserver
访问地址
192.168.100.201:19888
发布评论