Big Data>第三部分《Hadoop集群搭建》

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>http://maven.aliyun.com/nexus/content/groups/public/</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下载百度网盘地址:https://pan.baidu.com/s/1pJlZubT
下载之后上传到 /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下载地址:http://code.google.com/p/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源码准备编译

源码下载地址为:
http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.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            (通过节点远程登录)
# 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 87 21:25 apache-tomcat-6.0.53.tar.gz
-rw-r--r--. 1 root root 185515842 1010 2017 jdk-8u144-linux-x64.tar.gz
[root@node01 soft]#  cd ../install/
[root@node01 install]# ll
总用量 12
drwxr-xr-x  11 root root 4096 1027 07:49 hadoop-2.6.0-cdh5.14.0
drwxr-xr-x.  8 uucp  143 4096 722 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 1027 07:36 bin
drwxr-xr-x 3 root root  4096 1027 07:36 etc
drwxr-xr-x 6 root root  4096 1027 07:36 hadoopDatas
drwxr-xr-x 2 root root  4096 1027 07:36 include
drwxr-xr-x 3 root root  4096 1027 07:36 lib
drwxr-xr-x 3 root root  4096 1027 07:36 libexec
-rw-r--r-- 1 root root 85063 1027 07:37 LICENSE.txt
drwxr-xr-x 3 root root  4096 1027 07:49 logs
-rw-r--r-- 1 root root 14978 1027 07:36 NOTICE.txt
-rw-r--r-- 1 root root  1366 1027 07:36 README.txt
drwxr-xr-x 2 root root  4096 1027 07:37 sbin
drwxr-xr-x 4 root root  4096 1027 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/hadoop

vim 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/hadoop

scp mapred-site.xml  yarn-site.xml node02:$PWD

scp 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.sh

sbin/start-yarn.sh

启动jobhistoryserver

sbin/mr-jobhistory-daemon.sh start historyserver

第五步:页面访问jobhistoryserver
访问地址
192.168.100.201:19888
在这里插入图片描述

发布了166 篇原创文章 · 获赞 29 · 访问量 3500

猜你喜欢

转载自blog.csdn.net/qq_44509920/article/details/102883720