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、防火墙的管理
service iptables start # 临时关闭防火墙
chkconfig iptables off # 永久关闭防火墙
start:开启、restart:重启、stop:关闭、status:状态
如果找不到iptables,可以执行:
yum install -y iptables # 在线安装、需要联网
注意:?如果上述命令不可用的情况,可使用以下命令执行关闭防火墙:
systemctl stop firewalld # 停止防火墙
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
在这个文件最后添加如下两行:
export JAVA_HOME=/opt/jdk1.8.0_161
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
在文件最后添加如下两行
export HADOOP_HOME=/opt/hadoop-2.7.3
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
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoopTmp/tmp</value>
</property>
</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
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</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
单独启动命令:
hadoop-daemon.sh start namenode #启动NameNode
hadoop-daemon.sh start datanode #启动DataNode
hadoop-daemon.sh start secondarynamenode #启动SecondaryNameNode
注意:在前面已经配置hadoop的环境变量,故只需要输入start-dfs.sh 就可以启动,如果没有配置环境变量,则需要进入Hadoop主目录下的sbin执行./start-dfs.sh 即可,如果出现以下图中的ssh提示,则输入yes,点击回车即可。?
?停止命令:
stop-dfs.sh
单个停止命令:
hadoop-daemon.sh stop namenode #停止NameNode
hadoop-daemon.sh stop datanode #停止DataNode
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
<configuration>
<property>
<name>yarn.resourcemanager.hostsname</name>
<value>BigData01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</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
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
参数说明:
mapreduce.framework.name:该参数是指定MapReduce框架使用YARN方式,即指定MapReduce运行在YARN上。
(3)启动和停止YARN
启动YARN将启动ResourceManager和NodeManager两个守护进程。
启动命令:
start-yarn.sh
单独启动命令:
yarn-daemon.sh start resourcemanager #启动ResourceManager
yarn-daemon.sh start nodemanager #启动NodeManager
停止命令:
stop-yarn.sh
单独停止命令:
yarn-daemon.sh stop resourcemanager #停止ResourceManager
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地址 | 节点类型 |
---|
BigData01 | 192.168.182.10 | master | BigData02 | 192.168.182.20 | slave1 | BigData03 | 192.168.182.30 | slave2 |
(2)节点规划
服务 | BigData01 | BigDate02 | BigData03 |
---|
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.10 | BigData01 | 192.168.182.20 | BigData02 | 192.168.182.30 | BigData03 |
注意:在配置是需要将主机名和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 # 一直回车即可
将登录信息复制到验证文件
ssh-copy-id BigData01 # BigData01为主机名
ssh-copy-id BigData02 # BigData01为主机名
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.sh 、mapred-env.sh 两个文件可以不用配置,如果要配置,可以在首次出现“export JAVA_HOME=……” 处配置为“export JAVA_HOME=/opt/jdk1.8.0_161”
2 vi? etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://BigData01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoopTmp/</value>
</property>
</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
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>BigData01:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>BigData02:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoopTmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoopTmp/dfs/data</value>
</property>
</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
<configuration>
<property>
<name>yarn.resourcemanager.hostsname</name>
<value>BigData01</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>BigData01:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/user/container/logs</value>
</property>
</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
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Bigdata03:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>BigData03:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${hadoop.tmp.dir}/mr-history/tmp</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${hadoop.tmp.dir}/mr-history/done</value>
</property>
</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
BigData01
BigData02
BigData03
(3)分发Hadoop集群安装目录及文件
在Master节点上安装及配置好hadoop系统,其他slave节点完成ssh、jdk等的安装、免密登录等,既可以将在BigData01上配置好的Hadoop分发给其他节点:
分发命令:
[root@BigData01 opt]# scp -r /opt/hadoop-2.7.3 root@BigData02:/opt/
[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:
start-dfs.sh #启动HDFS
stop-dfs.sh #停止HDFS
启动和停止YARN:
start-yarn.sh #启动YARN
stop-yarn.sh #停止YARN
全部启动和停止:
start-all.sh #启动HDFS和YARN
stop-all.sh #停止HDFS和YARN
启动和停止历史(日志)服务器:
mr-jobhistory-daemon.sh start historyserver #启动historyserver
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.x 和ntpdate-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服务
service ntpd start # 启动NTP服务
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'
以“年-月-日 时:分:秒”的格式显示,如果三台时间一致,完成时间同步。然后重启虚拟机再次查看时间是否同步。
如果喜欢、对你有帮助,点赞+收藏,跟着军哥学知识……?
|