当前位置:   article > 正文

1.5万字搞定 Hadoop集群(从单机模式到分布式)的安装与部署(超详细)_hadoop 单机升集群

hadoop 单机升集群

Hadoop集群的安装与部署(从单机模式到分布式)

JunLeon——go big or go home


目录

Hadoop集群的安装与部署(从单机模式到分布式)

Hadoop运行的三种模式

说明:

一、Hadoop单机模式的搭建

1、创建用户

2、网络配置、修改主机名、配置网络映射

3、安装ssh服务

4、防火墙的管理

5、安装jdk

6、安装hadoop

二、Hadoop伪分布模式的搭建

1、配置免密登录

2、HDFS的配置、启动与停止

3、YARN的配置、启动与停止

4、同时启动或停止HDFS和YARN

5、Web端访问

三、Hadoop完全分布式模式的搭建

1、分布式集群的网络和节点规划

2、分布式集群的环境准备

3、设置SSH无密码登录节点

4、安装配置Hadoop集群

5、时间同步


前言:

Hadoop这门知识的学习,需要具备Linux基础、Java基础。

Hadoop是一个开发和运行处理大规模数据的平台,是Appach的一个用Java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算,具有可靠、高效、可伸缩的特点。

Hadoop的核心组件是HDFS和MapReduce,hadoop2.0还包括YARN。

HDFS(Hadoop Distributed File System)分布式文件系统,它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

MapReduce(分布式计算框架)是一种计算模型,用以进行大数据量的计算。

YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统

Zookeeper(分布性协调服务)是一个针对大型分布式系统的可靠协调系统,在Hadoop、HBase、Strom等都有用到,它的目的就是封装好复杂易出错的关键服务,提供给用户一个简单、可靠、高效、稳定的系统。提供配置维护、分布式同步、名字服务等功能,Zookeeper主要是通过lead选举来维护HA或同步操作等

Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之间传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。其中主要利用的是MP中的Map任务来实现并行导入,导出。

HBase是Hadoop的数据库。HBase底层还是利用的Hadoop的HDFS作为文件存储系统,可以利用Hadoop的MR来处理HBase的数据,它也通常用Zookeeper来做协同服务。

Hive是Hadoop的数据仓库(DW),它可以用类似SQL的语言HSQL来操作数据,很是方便,主要用来联机分析处理OLAP(On-Line Analytical Processing),进行数据汇总、查询、分析。

Flume(日志收集工具)是一个可扩展、适合复杂环境的海量日志收集系统。

Mahout(数据挖掘算法库),现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

Pig(基于Hadoop的数据流系统)由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具,定义了一种数据流语言—Pig Latin,将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

Hadoop运行的三种模式

单机模式:只有一个JVM进程数,只运行在一台机器上(作测试用);

伪分布模式:有多个JVM进程数,运行在同一台机器上;

分布式(完全分布式)模式:多个JVM进程数,运行在三台或三台以上的机器上。

说明:

以下进入Hadoop集群的搭建,从单机模式到完全分布式,都是在root用户下进行,hadoop的主目录(安装路径)为/opt/hadoop-2.7.3,在配置hadoop文件时需注意文件的路径。如果在普通用户下,要注意权限、环境变量等,记得使用sudo命令。

一、Hadoop单机模式的搭建

1、创建用户

useradd hadoop

passwd hadoop (直接输入两次密码即可)

注意:我都是用root用户操作,故这一步可以不用切换到hadoop用户。

2、网络配置、修改主机名、配置网络映射

具体配置请查看:Linux学习——linux网络配置、修改主机名、网络映射、远程连接工具XShell的使用(超详细)_JunLeon的博客-CSDN博客

网络配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0

需要配置IP地址、子网掩码、网关、DNS域名解析服务器

vi  /etc/sysconfig/network-scripts/ifcfg-eth0

注意:CentOS7和8里面,网络配置文件为:/etc/sysconfig/network-scripts/ifcfg-ens33

主机名配置文件 /etc/sysconfig/network,修改HOSTNAME=主机名

vi   /etc/sysconfig/network

将HOSTNAME=localhost.localdomain修改为HOSTNAME=BigData01

注意:CentOS7或8,主机名配置文件为:/etc/hostname,直接删除以前的,添加主机名

配置网络映射 /etc/hosts

vi  /etc/hosts

在最后一行添加 ip地址 主机名        如:182.168.182.66  BigData01

重启网络服务:

service  network  restart

3、安装ssh服务

查看是否安装ssh

rpm  -qa  |  grep  ssh

如果有openssh-clients、openssh-server,则不需要安装

如果没有,则需要安装,安装命令如下:

yum  install  -y  openssh-clients  openssh-server

启动ssh服务

service  sshd  start

start:开启、restart:重启、stop:关闭、status:状态

4、防火墙的管理

  1. service iptables start # 临时关闭防火墙
  2. chkconfig iptables off # 永久关闭防火墙

start:开启、restart:重启、stop:关闭、status:状态

如果找不到iptables,可以执行:

yum  install  -y  iptables   # 在线安装、需要联网

注意: 如果上述命令不可用的情况,可使用以下命令执行关闭防火墙:

  1. systemctl stop firewalld # 停止防火墙
  2. systemctl mask firewalld # 重新启动防火墙

5、安装jdk

1 使用XShell 6或者secureCRT远程登录

2 上传JDK到/opt目录下,Windows-->Linux

3 查看Linux是否安装java jdk

rpm  -qa  |  grep  java

如果查询有其他java版本,则需要卸载

rpm  -e  --nodeps  包名

4 解压上传的jdk,解压到/opt目录下

tar -zxvf /opt/jdk-8u161-linux-x64.tar.gz -C /opt/

5 配置环境变量

vi  /etc/profile

在这个文件最后添加如下两行:

  1. export JAVA_HOME=/opt/jdk1.8.0_161
  2. export PATH=$JAVA_HOME/bin:$PATH

6 使这个配置文件生效

source /etc/profile

7 验证

java -version

6、安装hadoop

1 上传hadoop安装包到Linux下的/opt目录

2 解压安装包到/opt目录

tar -zxvf /opt/hadoop-2.7.3.tar.gz -C /opt/

3 配置环境变量

vi /etc/profile

在文件最后添加如下两行

  1. export HADOOP_HOME=/opt/hadoop-2.7.3
  2. export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

这个是在Java的基础上配置的,故配置文件内有三行,如图:

 使配置文件生效

source /etc/profile

4 验证

hadoop version

二、Hadoop伪分布模式的搭建

(在单机模式的基础上搭建)

1、配置免密登录

本机生成公钥、私钥和验证文件

ssh-keygen -t rsa	# 一直回车即可

将登录信息复制到验证文件

ssh-copy-id BigData01	# BigData01为主机名

注意:进行免密登录需要安装ssh,前面已经安装ssh服务,此处跳过。

2、HDFS的配置、启动与停止

(配置文件均在hadoop的主目录下操作)

进入Hadoop主目录:cd /opt/hadoop-2.7.3

(1)配置hadoop-env.sh

hadoop-env.sh文件是配置hadoop环境的文件,需要文件25行修改java的路径。如下所示:

vi etc/hadoop/hadoop-env.sh

(2)配置core-site.xml

vi  etc/hadoop/core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://localhost:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/opt/hadoopTmp/tmp</value>
  9. </property>
  10. </configuration>

参数说明:

fs.defaultFS:该参数是配置指定HDFS的通信地址。其值为hdfs://localhost:9000,9000为端口号,可根据情况修改,伪分布模式下主机名一般不需要修改。

hadoop.tmp.dir:该参数配置的是Hadoop临时目录,即指定Hadoop运行时产生文件的存储路径,其值可以自行设置,不能设置为/tmp(/tmp是Linux的临时目录)。

(3)配置hdfs-site.xml

vi  etc/hadoop/hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. </configuration>

参数说明:

dfs.replication:该参数是配置HDFS系统的副本数,因为这里是伪分布模式,只有一个节点,所以设置为1。

(4)格式化HDFS

配置好HDFS文件系统后首次启动需要进行格式化,即执行名称节点NameNode的格式化。格式化是对分布式文件系统HDFS中的数据节点DataNode进行分块,统计所有分块后的初始元数据,并存储在NameNode中。

格式化命令:

hdfs namenode -format

注意:格式化命令还可以使用 hadoop namenode -format

 出现上图即格式化成功!

格式化成功后,会在hadoop.tmp.dir配置的/opt/hadoopTmp/tmp目录生成目录dfs/name/current/,里面包含几个文件如下:

 文件说明:

fsimage_0000000000000000000:此文件是NameNode元数据在内存存储满后,持久化保存的文件。

fsimage_0000000000000000000.md5:此文件是校验文件,用于校验fsimage的完整性。

VERSION:此文件是保存该集群的信息,文件内容如下图所示:

namespaceID:NameNode唯一的ID

clusterID:集群ID,同一集群中NameNode和DataNode的集群是一致的。

blockpoolID:用于标识一个block pool,并且是跨集群的全局唯一。当一个新的Namespace被创建的时候(format过程的一部分)会创建并持久化一个唯一ID。在创建过程构建全局唯一的BlockPoolID比人为的配置更可靠一些。NN将BlockPoolID持久化到磁盘中,在后续的启动过程中,会再次load并使用。

注意:格式化时在Hadoop的临时目录tmp下只生成dfs/name目录,在首次启动HDFS时,会在tpm/dfds目录下生成data和namesecondary目录。

(5)HDFS的启动和停止

启动HDFS将启动NameNode、DataNode、SecondaryNameNode三个进程。

启动命令:

start-dfs.sh

单独启动命令:

  1. hadoop-daemon.sh start namenode #启动NameNode
  2. hadoop-daemon.sh start datanode #启动DataNode
  3. hadoop-daemon.sh start secondarynamenode #启动SecondaryNameNode

注意:在前面已经配置hadoop的环境变量,故只需要输入start-dfs.sh就可以启动,如果没有配置环境变量,则需要进入Hadoop主目录下的sbin执行./start-dfs.sh即可,如果出现以下图中的ssh提示,则输入yes,点击回车即可。 

 停止命令:

stop-dfs.sh

单个停止命令:

  1. hadoop-daemon.sh stop namenode #停止NameNode
  2. hadoop-daemon.sh stop datanode #停止DataNode
  3. hadoop-daemon.sh stop secondarynamenode #停止SecondaryNameNode

注意:同样的如果没有配置环境变量,则需要进入Hadoop主目录下的sbin执行./stop-dfs.sh才可以启动。

(6)验证(查看是否启动成功)

命令:

jps

使用Oracle官方Java JDK中提供的jps命令,可以查看到有三个进程已经开启,分别是NameNode、DataNode、SecondaryNameNode。则表示启动HDFS成功!

 注意:进程名称前面的数字是进程号,每个人查看到的进程号是不一样的。

3、YARN的配置、启动与停止

(配置文件均在hadoop的主目录下操作)

进入Hadoop主目录:cd /opt/hadoop-2.7.3

(1)配置yarn-site.xml

vi  etc/hadoop/yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostsname</name>
  4. <value>BigData01</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. </configuration>

参数说明:

yarn.resourcemanager.hostsname:该参数是指定ResourceManager运行的节点,这里配置主机名。

yarn.nodemanager.aux-service:该参数是指定NodeManager启动时加载server的方式,即配置YARN的默认混选方式,选择MapReduce的默认混选算法mapreduce_shuffle。

(2)配置mapred-site.xml

该配置文件所在目录下只有mapred-site.xml.template这个文件,需要将这个文件重命名或者复制一份为mapred-site.xml

cp  etc/hadoop/mapred-site.xml.template  etc/hadoop/mapred-site.xml

vi  etc/hadoop/mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

参数说明:

mapreduce.framework.name:该参数是指定MapReduce框架使用YARN方式,即指定MapReduce运行在YARN上。

(3)启动和停止YARN

启动YARN将启动ResourceManager和NodeManager两个守护进程。

启动命令:

start-yarn.sh

单独启动命令:

  1. yarn-daemon.sh start resourcemanager #启动ResourceManager
  2. yarn-daemon.sh start nodemanager #启动NodeManager

停止命令:

stop-yarn.sh

单独停止命令:

  1. yarn-daemon.sh stop resourcemanager #停止ResourceManager
  2. yarn-daemon.sh stop nodemanager #停止NodeManager

(4)验证(查看是否启动成功)

命令:

jps

显示ResourceManager和NodeManager两个守护进程便启动成功。

4、同时启动或停止HDFS和YARN

上面讲了可以启动HDFS和YARN,是分别启动或停止,还可以同时开启HDFS和YARN。

启动命令:

start-all.sh

停止命令:

stop-all.sh

查看结果:

jps

如果执行start-all.sh启动后,HDFS和YARN的所有进程都会启动,同理使用stop-all.sh会将HDFS和YARN全部关闭。

5、Web端访问

关闭防火墙:

service iptables stop

访问HDFS:50070

192.168.182.66:50070	#访问HDFS,50070是端口

访问YARN:8088

192.168.182.66:8088		#访问YARN,8088是端口

注意:根据自己配置的IP地址查看,必须关闭虚拟机里的防火墙,不然访问不了。

三、Hadoop完全分布式模式的搭建

1、分布式集群的网络和节点规划

(1)网络规划

主机名IP地址节点类型
BigData01192.168.182.10master
BigData02192.168.182.20slave1
BigData03192.168.182.30slave2

(2)节点规划

服务BigData01BigDate02BigData03
NameNode
Secondary NameNode
DataNode
ResourceManager
NodeManager
JobHistoryServer

2、分布式集群的环境准备

(1)克隆虚拟机

在伪分布模式的基础上,前面已经将创建好用户、安装ssh服务、安装配置Java环境等,所以把Bigdata01作为Master节点,克隆两台虚拟机作为slave节点(分别是BigData02、BigData03)。

1 进入BigData01主机,将/etc/udev/rules.d/70-persistent-net.rules文件进行删除

rm -rf /etc/udev/rules.d/70-persistent-net.rules

注:该文件是Linux系统开机启动配置网卡的配置文件,重启开机后会自动生成。

2 拍摄快照

关闭虚拟机 --> 右键单击虚拟机 --> 选择快照 --> 拍摄快照 --> 设置快照名称和描述

 注:拍摄快照是保留虚拟机此刻的状态,方便返回到相同的状态,也可以根据快照克隆相同状态的虚拟机。

3 克隆虚拟机

右键单击虚拟机-->选择管理-->克隆-->选择克隆源(现有快照)-->选择克隆类型-->修改虚拟机名称及位置

 注意:本集群用作学习使用,故我选的是链接克隆,完整克隆和链接克隆的区别在于,链接克隆,如果母机宕机,克隆后的虚拟机也不可用。

(2)网络配置、修改主机名、配置网络映射

根据集群网络IP规划,分别将IP,主机名,网络映射配置好。

IP地址主机名
192.168.182.10BigData01
192.168.182.20BigData02
192.168.182.30BigData03

注意:在配置是需要将主机名和IP地址要一致。

网络配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0

配置IP地址、子网掩码、网关、DNS域名解析服务器

vi  /etc/sysconfig/network-scripts/ifcfg-eth0

注意:CentOS7和8里面,网络配置文件为:/etc/sysconfig/network-scripts/ifcfg-ens33

主机名配置文件 /etc/sysconfig/network,修改HOSTNAME=主机名

vi   /etc/sysconfig/network

将HOSTNAME=localhost.localdomain修改为HOSTNAME=BigData01

注意:CentOS7或8,主机名配置文件为:/etc/hostname,直接删除以前的,添加主机名

配置网络映射 /etc/hosts

vi  /etc/hosts

在文件最后添加 ip地址 主机名(每一台虚拟机上都要配置,如下三行都要添加)

192.168.182.10 BigData01

192.168.182.20 BigData02

192.168.182.30 BigData02

重启网络服务:

service  network  restart

注意:如果重启网络服务失败,出现下图所示:

 请查看 Linux学习——那些我们网络配置遇到过的问题?ping不通百度?XShell连接不上?(超详细)_JunLeon的博客-CSDN博客 重启网络服务失败-->解决办法二

关机重启:

reboot 

3、设置SSH无密码登录节点

本机生成公钥、私钥和验证文件

ssh-keygen -t rsa		# 一直回车即可

将登录信息复制到验证文件

  1. ssh-copy-id BigData01 # BigData01为主机名
  2. ssh-copy-id BigData02 # BigData01为主机名
  3. ssh-copy-id BigData03 # BigData01为主机名

注:这里免密登录配置和上面一样,虚拟机相互之间都要执行ssh-copy-id这个命令。

4、安装配置Hadoop集群

(配置文件时均在hadoop的主目录下操作)

进入Hadoop主目录:cd /opt/hadoop-2.7.3

(1)配置Java、Hadoop的环境变量

由于是在伪分布模式的基础上搭建的,故跳过jdk、hadoop的安装,但是需要保证java、hadoop的环境变量在/etc/profile文件中已经配置好,如图所示

(2)配置分布式集群环境(6个配置文件)

环境变量配置文件:hadoop-env.sh、yarn-env.sh、mapred-env.sh

全局核心配置文件:core-site.xml

HDFS配置文件:hdfs-site.xml

YARN配置文件:yarn-site.xml

MapReduce配置文件:mapred-site.xml、slaves

1 vi etc/hadoop/hadoop-env.sh 定位25行,配置自己的jdk路径即可

 注意:yarn-env.shmapred-env.sh两个文件可以不用配置,如果要配置,可以在首次出现“export JAVA_HOME=……”处配置为“export JAVA_HOME=/opt/jdk1.8.0_161”

2 vi  etc/hadoop/core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://BigData01:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/opt/hadoopTmp/</value>
  9. </property>
  10. </configuration>

参数说明:

fs.defaultFS:该参数是配置指定HDFS的通信地址。其值为hdfs://BigData01:9000,9000为端口号。

hadoop.tmp.dir:该参数配置的是Hadoop临时目录,即指定Hadoop运行时产生文件的存储路径,其值可以自行设置,不能设置为/tmp(/tmp是Linux的临时目录)。

注意:如果在普通用户配置临时目录/opt/hadoopTmp/,需要手动创建及修改权限。

3 vi  etc/hadoop/hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.http-address</name>
  4. <value>BigData01:50070</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.secondary.http-address</name>
  8. <value>BigData02:50090</value>
  9. </property>
  10. <property>
  11. <name>dfs.replication</name>
  12. <value>3</value>
  13. </property>
  14. <property>
  15. <name>dfs.namenode.name.dir</name>
  16. <value>/opt/hadoopTmp/dfs/name</value>
  17. </property>
  18. <property>
  19. <name>dfs.datanode.data.dir</name>
  20. <value>/opt/hadoopTmp/dfs/data</value>
  21. </property>
  22. </configuration>

参数说明:

dfs.namenode.http-address:该参数是配置NameNode的http访问地址和端口号。因为在集群规划中指定BigData01设为NameNode的服务器,故设置为BigData01:50070。

dfs.namenode.secondary.http-address:该参数是配置SecondaryNameNode的http访问地址和端口号。在集群规划中指定BigData02设为SecondaryNameNode的服务器,故设置为BigData02:50090。

dfs.replication:该参数是配置HDFS副本数量。

dfs.namenode.name.dir:该参数是设置NameNode存放的路径。

dfs.datanode.data.dir:该参数是设置DataNode存放的路径。

4 vi  etc/hadoop/yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostsname</name>
  4. <value>BigData01</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.webapp.address</name>
  8. <value>BigData01:8088</value>
  9. </property>
  10. <property>
  11. <name>yarn.nodemanager.aux-services</name>
  12. <value>mapreduce_shuffle</value>
  13. </property>
  14. <property>
  15. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  16. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  17. </property>
  18. <property>
  19. <name>yarn.log-aggregation-enable</name>
  20. <value>true</value>
  21. </property>
  22. <property>
  23. <name>yarn.log-aggregation.retain-seconds</name>
  24. <value>106800</value>
  25. </property>
  26. <property>
  27. <name>yarn.nodemanager.remote-app-log-dir</name>
  28. <value>/user/container/logs</value>
  29. </property>
  30. </configuration>

参数说明:

yarn.resourcemanager.hostsname:该参数是指定ResourceManager运行在那个节点上。

yarn.resourcemanager.webapp.address:该参数是指定ResourceManager服务器的web地址和端口。

yarn.nodemanager.aux-services:该参数是指定NodeManager启动时加载server的方式。

yarn.nodemanager,aux-services.mapreduce.shuffle.class:该参数是指定使用mapreduce_shuffle中的类。

yarn.log-aggregation-enable:该参数是配置是否启用日志聚集功能。

yarn.log-aggregation.retain-seconds:该参数是配置聚集的日志在HDFS上保存的最长时间。

yarn.nodemanager.remote-app-log-dir:该参数是指定日志聚合目录。

5 vi  etc/hadoop/mapred-site.xml

mapred-site.xml文件默认不存在,可以使用模板文件mapred-site.xml.template复制一份为mapred-site.xml

复制命令:

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>Bigdata03:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>BigData03:19888</value>
  13. </property>
  14. <property>
  15. <name>mapreduce.jobhistory.intermediate-done-dir</name>
  16. <value>${hadoop.tmp.dir}/mr-history/tmp</value>
  17. </property>
  18. <property>
  19. <name>mapreduce.jobhistory.done-dir</name>
  20. <value>${hadoop.tmp.dir}/mr-history/done</value>
  21. </property>
  22. </configuration>

参数说明:

mapreduce.framework.name:该参数是指定MapReduce框架运行在YARN上。

mapreduce.jobhistory.address:该参数是设置MapReduce的历史服务器安装的位置及端口号。

mapreduce.jobhistory.webapp.address:该参数是设置历史服务器的web页面地址和端口。

mapreduce.jobhistory.intermediate-done-dir:该参数是设置存放日志文件的临时目录。

mapreduce.jobhistory.done-dir:该参数是设置存放运行日志文件的最终目录。

6 vi  etc/hadoop/slaves

  1. BigData01
  2. BigData02
  3. BigData03

(3)分发Hadoop集群安装目录及文件

在Master节点上安装及配置好hadoop系统,其他slave节点完成ssh、jdk等的安装、免密登录等,既可以将在BigData01上配置好的Hadoop分发给其他节点:

分发命令:

  1. [root@BigData01 opt]# scp -r /opt/hadoop-2.7.3 root@BigData02:/opt/
  2. [root@BigData01 opt]# scp -r /opt/hadoop-2.7.3 root@BigData03:/opt/

(4)启动和停止Hadoop集群

在启动hadoop集群前,需要先格式化NameNode,在Master主机下操作:

格式化命令:

hdfs namenode -format

也可以使用hadoop namenode -format进行格式化

格式化后即可启动集群的节点,可以分别启动HDFS和YARN,也可以一起启动:

全部启动命令:start-all.sh

启动和停止HDFS:

  1. start-dfs.sh #启动HDFS
  2. stop-dfs.sh #停止HDFS

启动和停止YARN:

  1. start-yarn.sh #启动YARN
  2. stop-yarn.sh #停止YARN

全部启动和停止:

  1. start-all.sh #启动HDFS和YARN
  2. stop-all.sh #停止HDFS和YARN

启动和停止历史(日志)服务器:

  1. mr-jobhistory-daemon.sh start historyserver #启动historyserver
  2. mr-jobhistory-daemon.sh stop historyserver #停止historyserver

(5)验证(查看是否启动成功)

命令:jps

成功开启后,会看到下图所示的节点显示:

Master: NameNode、DataNode、ResourceManager、NodeManager

slave1: SecondaryNameNode、DataNode、NodeManager

slave2: DataNode、NodeManager

(6)Web端访问

关闭防火墙:

service iptables stop

访问HDFS:50070

192.168.182.10:50070	#访问HDFS,50070是端口

访问YARN:8088

192.168.182.10:8088	#访问YARN,8088是端口

访问历史(日志)服务器:19888

192.168.182.10:8088         #访问JobHistoryServer

注意:根据自己配置的IP地址查看,必须关闭虚拟机里的防火墙,不然访问不了。

5、时间同步

Hadoop集群对时间要求非常高,主节点与各从节点的时间都必须同步。NTP使用来使计算机时间同步的一种协议。配置时间同步服务器(NTP服务器)主要就是为了进行集群的时间同步。

这里主要以BigData01作为NTP服务器,从节点BigData02和BigData03每10分钟跟BigData01同步一次。 

(1)安装NTP服务器

1 安装配置NTP服务器

查看是否安装NTP服务,如果出现ntp-x.x.xntpdate-x.x.x则不需要再安装

rpm -qa | grep ntp

安装命令:

yum install -y ntp		# 使用yum在线安装

2 修改配置文件ntp.conf

vi /etc/ntp.conf

① 启用restrice,修改网段

打开restrice的注释(删除前面的#号),修改为自己的网段

 ② 注释掉四行server域名,再添加两行,如图所示:

 ③ 修改配置文件ntpd

命令:

vi /etc/sysconfig/ntpd

在此文件内,第二行添加一行SYNC_HWCLOCK=yes,将同步后的时间写入CMOS里。

 ④ 启动NTP服务

  1. service ntpd start # 启动NTP服务
  2. chkconfig ntpd on # 开机自启动,永久启动

两个命令可以连用:

(2)配置其他机器的时间同步

首先要保证从节点(其他机器)安装有NTP,然后开始配置从节点跟主节点同步时间。以下操作是在BigData02和BigData03机器上配置(剩下的这两台都要配置):

① 注释掉四行server域名配置,其后添加一行:server BigData01

 ② 修改配置文件ntpd,此操作和前面的NTP服务器中配置一样

 ③ 启动时间同步

启动NTP服务:

service ntpd start & chkconfig ntpd on

也可以执行命令:ntpdate BigData01 完成同步

注意:在客户机里也可以不用配置NTP,而是使用Linux定时任务来执行与NTP服务器同步时间,具体操作如下:

输入命令:crontab -e

打开vi编辑器后,添加一行:

*/10 * * * * /usr/sbin/ntpdate BigData01; /sbin/hwclock -w

表示每10分钟与NTP服务器(BigData01)进行一次时间同步,并写入本机BIOS。

(3)测试集群间的时间同步

通过命令查看集群简的时间是否同步

date '+%Y-%m-%d %H:%M:%S'

以“年-月-日 时:分:秒”的格式显示,如果三台时间一致,完成时间同步。然后重启虚拟机再次查看时间是否同步。

如果喜欢、对你有帮助,点赞+收藏,跟着军哥学知识…… 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号