补充
Hadoop目录结构
drwxr-xr-x 2 root root 194 May 22 2017 bin
drwxr-xr-x 4 root root 41 Jul 17 18:57 etc
drwxr-xr-x 2 root root 106 May 22 2017 include
drwxr-xr-x 3 root root 20 May 22 2017 lib
drwxr-xr-x 2 root root 239 May 22 2017 libexec
-rw-r--r-- 1 root root 15429 May 22 2017 LICENSE.txt
-rw-r--r-- 1 root root 101 May 22 2017 NOTICE.txt
-rw-r--r-- 1 root root 1366 May 22 2017 README.txt
drwxr-xr-x 2 root root 4096 May 22 2017 sbin
drwxr-xr-x 4 root root 31 May 22 2017 share
重要的几个目录
(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
Hadoop运行模式
主要包括三种:
本地模式、伪分布式模式以及完全分布式模式
(1)本地模式(默认模式):
不需要启用单独进程,直接可以运行,测试和开发时使用。
(2)伪分布式模式:
等同于完全分布式,只有一个节点。
(3)完全分布式模式:
多个节点一起运行。
一、本地模式
1、官方Grep案例
这个案例主要是运行第一个hadoop的程序,表示bin目录下用hadoop命名运行一个jar包 这个包位于 share/hadoop/mapreduce/下面的这个官方的案例hadoop-mapreduce-examples-2.7.2.jar ,后面是由于这个包里面有多个案例,所以用grep管道流过滤,然后input代表输入,output代表输出(hadoop的程序运行必须要有一个输入和一个输出),然后后面加的是一个正则表格式,代表从input文件夹里面找出相应的符合要求的内容,最后查出来
1 dfsadmin这样的结果
1. 创建在hadoop-2.7.2文件下面创建一个input文件夹
[root@hadoop101 hadoop-2.7.2]$ mkdir input
2. 将Hadoop的xml配置文件复制到input
[root@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input
3. 执行share目录下的MapReduce程序
[root@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
4. 查看输出结果
[root@hadoop101 hadoop-2.7.2]$ cat output/*
我的input文件夹里面拷贝了数据之后里面的内容
[root@hadoop100 hadoop-2.7.2]# cd input
[root@hadoop100 input]# ll
total 48
-rw-r--r-- 1 root root 4436 Jul 17 17:46 capacity-scheduler.xml
-rw-r--r-- 1 root root 774 Jul 20 17:52 core-site.xml
-rw-r--r-- 1 root root 9683 Jul 17 17:46 hadoop-policy.xml
-rw-r--r-- 1 root root 775 Jul 20 17:52 hdfs-site.xml
-rw-r--r-- 1 root root 620 Jul 17 17:46 httpfs-site.xml
-rw-r--r-- 1 root root 3518 Jul 17 17:46 kms-acls.xml
-rw-r--r-- 1 root root 5511 Jul 17 17:46 kms-site.xml
-rw-r--r-- 1 root root 981 Jul 20 20:26 yarn-site.xml
运行结果:
[root@hadoop100 hadoop-2.7.2]# cat output/*
1 dfsadmin
==说明:==我这里用的都是root账户运行的,之前建了hadoop账户,但是开始操作的时候忘记换用户了,也没有太大影响都能运行,建议还是用hadoop账户来弄,这样好一些。
2、官方wordCount案例
1. 创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
[atguigu@hadoop101 hadoop-2.7.2]$ mkdir wcinput
2. 在wcinput文件下创建一个wc.input文件
[atguigu@hadoop101 hadoop-2.7.2]$ cd wcinput
[atguigu@hadoop101 wcinput]$ touch wc.input
3. 编辑wc.input文件
[atguigu@hadoop101 wcinput]$ vi wc.input
4.在文件中输入如下内容
hadoop
yarn
hadoop
mapreduce
university
university
5. 执行程序
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
6. 查看结果
[root@hadoop100 hadoop-2.7.2]# cat wcoutput/part-r-00000
hadoop 2
mapreduce 1
university 2
yarn 1
==说明:==这个程序是hadoop中一个经典的程序,以后在各种计算中都会用到的,主要用来是统计单词数量的一个程序
二、伪分布运行模式
1、启动HDFS并运行MapReduce程序
1)获取jdk的安装路径
[root@hadoop100 hadoop-2.7.2]# echo $JAVA_HOME
/opt/local/java/jdk1.8
2)修改hadoop-env.sh中的JAVA_HOME路径(后面会改很多的这种的*-env.sh的配置文件都是修改里面的java_home路径)
[root@hadoop100 hadoop-2.7.2]# vim etc/hadoop/hadoop-env.sh
改为自己的JAVA_HOME的路径即可
export JAVA_HOME=/opt/module/jdk1.8.0_144
3)修改core-site.xml配置文件和hdfs-site.xml配置文件
我这里是用的xshell直接连接的xftp将文件拷贝到外面进行修改的,这样方便,同时在修改的时候建议一定要先备份一下自己要修改的文件
修改core-site.xml
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/local/hadoop/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
修改hdfs-site.xml
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4) 启动集群
格式化namenode(第一次启动时格式化,以后就不要总格式化)
[root@hadoop100 hadoop-2.7.2]# bin/hdfs namenode -format
启动namenode
[root@hadoop100 hadoop-2.7.2]# sbin/hadoop-daemon.sh start namenode
启动datanode
[root@hadoop100 hadoop-2.7.2]# sbin/hadoop-daemon.sh start datanode
查看启动结果
[root@hadoop100 hadoop-2.7.2]# jps
2631 DataNode
2541 NameNode
2702 Jps
注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
两个节点都启动之后可以在 web端查看HDFS文件系统
浏览器地址: http://192.168.17.128:50070/dfshealth.html#tab-overview
(前面是虚拟机的ip地址后面是端口号,端口号是固定的后面会说,如果web端无法展示一般都是防火墙之类的问题)如果不能查看,可以看看这个
hadoop 50070 无法访问问题解决汇总
我这里web端显示的页面
几点说明
1、格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
2、如果namenode启动不起来,那么可以检查一下自己的配置文件,然后重新格式化namenode在进行启动
3、如果启动有什么问题的话 还可以去查看启动日志根据日志解决问题
[root@hadoop100 hadoop-2.7.2]# cd logs/
[root@hadoop100 logs]# ll
total 72
-rw-r--r-- 1 root root 25067 Jul 23 17:07 hadoop-hadoop-datanode-hadoop100.log
-rw-r--r-- 1 root root 716 Jul 23 17:07 hadoop-hadoop-datanode-hadoop100.out
-rw-r--r-- 1 root root 29448 Jul 23 17:16 hadoop-hadoop-namenode-hadoop100.log
-rw-r--r-- 1 root root 4960 Jul 23 17:11 hadoop-hadoop-namenode-hadoop100.out
-rw-r--r-- 1 root root 0 Jul 23 17:07 SecurityAuth-root.audit
5)操作集群
在HDFS文件系统上创建一个input文件夹
[root@hadoop100 hadoop-2.7.2]# bin/hdfs dfs -mkdir -p /user/hdfs/input
将测试文件内容上传到文件系统上
[root@hadoop100 hadoop-2.7.2]# bin/hdfs dfs -put wcinput/wc.input /user/hdfs/input
查看上传的文件是否正确
[root@hadoop100 hadoop-2.7.2]# bin/hdfs dfs -ls /user/hdfs/input
Found 1 items
-rw-r--r-- 1 root supergroup 52 2020-07-23 17:36 /user/hdfs/input/wc.input
运行MapReduce程序
[root@hadoop100 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce//hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hdfs/input /user/hdfs/output
查看输出结果
命令行查看:
[root@hadoop100 hadoop-2.7.2]# bin/hdfs dfs -cat /user/hdfs/output/*
hadoop 2
mapreduce 1
university 2
yarn 1
浏览器查看
将测试文件内容下载到本地
[root@hadoop100 hadoop-2.7.2]# hdfs dfs -get /user/hdfs/output/part-r-00000 ./wcoutput/
删除输出结果
[root@hadoop100 hadoop-2.7.2]# hdfs dfs -rm -r /user/hdfs/output
2、 启动YARN并运行MapReduce程序
1) 配置yarn-env.sh 修改里面的JAVA_HOME
2)修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value>
</property>
</configuration>
3)配置:mapred-env.sh 的JAVA_HOME
步骤类上
4) 将mapred-site.xml.template重新命名为 mapred-site.xml,然后修改里面的内容
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop100:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop100:19888</value>
</property>
</configuration>
(这里我把后面用的历史服务器也配上了,免得后面再改)
4)启动集群
启动前必须保证NameNode和DataNode已经启动
[root@hadoop100 hadoop-2.7.2]# jps
5668 Jps
2631 DataNode
2541 NameNode
启动ResourceManager
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh start resourcemanager
启动NodeManager
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh start nodemanager
查看
[root@hadoop100 hadoop-2.7.2]# jps
5456 ResourceManager
2631 DataNode
5752 Jps
5707 NodeManager
2541 NameNode
浏览器查看启动结果
http://192.168.17.128:8088/cluster
5)操作集群
执行程序
[root@hadoop100 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hdfs/input /user/hdfs/output
注意:必须要先删除之前运行的output删除的内容,在执行程序才可以
在界面可以查看程序执行进度
结束之后可以进入相应的output文件夹下面查看结果
3、配置历史服务器
在mapred-site.xml这个文件新加一些配置(之前在上面配置这个文件的时候我就已添加了相应的内容)
启动历史服务器
[root@hadoop100 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver
#查看结果
[root@hadoop100 hadoop-2.7.2]# jps
5456 ResourceManager
2631 DataNode
5707 NodeManager
6188 JobHistoryServer
2541 NameNode
6222 Jps
浏览器打开地址: http://192.168.17.128:19888/jobhistory
点击ID即可
4、配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
1)配置yarn-site.xml文件
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value>
</property>
<!--新添加的日志的功能-->
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
2)关闭NodeManager 、ResourceManager和HistoryServer
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh stop nodemanager
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh stop resourcemanager
[root@hadoop100 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh stop historyserver
#查看
[root@hadoop100 hadoop-2.7.2]# jps
6450 Jps
2631 DataNode
2541 NameNode
3)删除HDFS上已经存在的输出文件
[root@hadoop100 hadoop-2.7.2]# bin/hdfs dfs -rm -R /user/hdfs/output
#查看
[root@hadoop100 hadoop-2.7.2]# bin/hdfs dfs -cat /user/hdfs/output/*
cat: `/user/hdfs/output/*': No such file or directory
4)启动NodeManager 、ResourceManager和HistoryServer
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /opt/local/hadoop/hadoop-2.7.2/logs/yarn-hadoop-resourcemanager-hadoop100.out
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh start nodemanager
starting nodemanager, logging to /opt/local/hadoop/hadoop-2.7.2/logs/yarn-hadoop-nodemanager-hadoop100.out
[root@hadoop100 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /opt/local/hadoop/hadoop-2.7.2/logs/mapred-hadoop-historyserver-hadoop100.out
#查看
[root@hadoop100 hadoop-2.7.2]# jps
6801 NodeManager
6950 JobHistoryServer
2631 DataNode
6986 Jps
2541 NameNode
6558 ResourceManager
5)执行WordCount程序
[root@hadoop100 hadoop-2.7.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hdfs/input /user/hdfs/output
6)结果
点击log显示日志内容
5、配置文件说明
Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:
(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,可以根据项目需求重新进行修改配置。
三、完全分布式运行模式
1、虚拟机准备
2、编写集群分发脚本
1) scp(secure copy)安全拷贝
(1)scp定义:
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法
scp -r $pdir/$fname $user@hadoop
h
o
s
t
:
host:
host:pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
(3)案例
将hadoop101上的/opt/local/software 下的zookeeper文件都拷贝到 hadoop102下面
[root@hadoop101 hadoop-2.7.2]# scp /opt/local/software/zookeeper-3.4.10.tar.gz root@hadoop102:/opt/local/software
将hadoop101 上面的profile文件拷贝到hadoop103相应的文件夹下面
[root@hadoop103 hadoop-2.7.2]# scp root@hadoop101:/etc/profile /etc/profil
通过这种拷贝完成hadoop101、hadoop102、hadoop103三台机器的java和hadoop文件的一致,同时将etc/profile文件拷贝,然后source etc/profile 一下完成刷新,这样三台机器就安装好了hadoop和java同时也配置好了环境变量
3、xsync集群分发脚本
1)准备
[root@hadoop101 hadoop-2.7.2]# cd
[root@hadoop101 ~]# cd bin
-bash: cd: bin: No such file or directory
[root@hadoop101 ~]# cd ..
[root@hadoop101 /]# cd bin
[root@hadoop101 bin]# touch xsync
[root@hadoop101 bin]# vim xsync
2)脚本
输入以下内容
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环 我这里集群是hadoop101、hadoop102、hadoop103
for((host=101; host<104; host++)); do
echo ------------------- hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
修改脚本具有可执行权限
[root@hadoop101 bin]# chmod 777 xsync
2)测试
将bin目录下的刚刚创建的xsync文件同步到hadoop102和hadoop103
[root@hadoop101 ~]# xsync /bin
[root@hadoop101 ~]# xsync /bin
fname=bin
pdir=/
------------------- hadoop101 --------------
sending incremental file list
sent 50 bytes received 12 bytes 124.00 bytes/sec
total size is 7 speedup is 0.11
------------------- hadoop102 --------------
sending incremental file list
sent 50 bytes received 12 bytes 124.00 bytes/sec
total size is 7 speedup is 0.11
------------------- hadoop103 --------------
sending incremental file list
sent 50 bytes received 12 bytes 124.00 bytes/sec
total size is 7 speedup is 0.11
[root@hadoop101 ~]#
注:我这里是因为配置了ssh免密(后面会说)所以不需要输入密码,之前没有配置的话应该需要输入yes和密码
4、集群规划
hadoop101 | hadoop102 | hadoop103 | |
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
5、集群配置
1)核心配置文件
配置core-site.xml
(配置namnode节点,只有hadoop101有namenode)
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
2)HDFS配置文件
配置hadoop-env.sh
修改JAVA_HOME的位置
export JAVA_HOME=/opt/local/java/jdk1.8
[root@hadoop101 ~]# echo $JAVA_HOME
/opt/local/java/jdk1.8
[root@hadoop101 ~]# cd /opt/local/hadoop/hadoop-2.7.2/
[root@hadoop101 hadoop-2.7.2]# cd etc/hadoop/
[root@hadoop101 hadoop]# vim hadoop-env.sh
#我这里配置如下
export JAVA_HOME=/opt/local/java/jdk1.8
配置hdfs-site.xml
这里将之前伪分布式中配置的副本数量从1改为了3,然后下面配置的是SecondaryNameNode 只有hadoop103中有
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop103:50090</value>
</property>
3)YARN配置文件
配置yarn-env.sh
修改JAVA_HOME的位置
配置yarn-site.xml
(配置yarn的resourcemanager为hadoop102这样只有hadoop102中有resourcemanager节点)
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
4)MapReduce配置文件
配置mapred-env.sh
修改JAVA_HOME的位置
配置mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6、分发配置文件
[root@hadoop101 hadoop]# xsync /opt/local/hadoop/hadoop-2.7.2
可以在其他的机器上面查看是否分发成功
7、单节点启动
格式化NameNode
hdfs namenode -format
hadoop101上启动namenode
sbin/hadoop-daemon.sh start namenode
在hadoop101、hadoop102以及hadoop103上分别启动DataNode
sbin/hadoop-daemon.sh start datanode
在hadoopo102上启动resourcemanager
sbin/yarn-daemon.sh start resourcemanager
在hadoop101、hadoop102、hadoop103上面启动nodemanager
sbin/yarn-daemon.sh start nodemanager
8、SSH无密登录配置
原理
生成公钥和私钥
[root@hadoop101 hadoop]# cd
[root@hadoop101 ~]# cd .ssh
[root@hadoop101 ~]# ssh-keygen -t dsa
[root@hadoop101 .ssh]# ll
-rw-------. 1 root root 668 Jul 8 16:32 id_dsa
-rw-r--r--. 1 root root 604 Jul 8 16:32 id_dsa.pub
将这个公钥拷贝到hadoop101、hadoop102、hadoop103
[root@hadoop101 ~]# ssh-copy-id hadoop101
[root@hadoop101 ~]# ssh-copy-id hadoop102
[root@hadoop101 ~]# ssh-copy-id hadoop103
同样的操作在hadoop102和hadoop103上面也执行一遍,然后ssh hadoop102测试这样就不需要密码进行登录连接;
known_hosts | 记录ssh访问过计算机的公钥(public key) |
---|---|
id_rsa | 生成的私钥 |
id_rsa.pub | 生成的公钥 |
authorized_keys | 存放授权过得无密登录服务器公钥 |
9、群起集群
配置slaves
[root@hadoop101 ~]# cd /opt/local/hadoop/hadoop-2.7.2/
[root@hadoop101 hadoop-2.7.2]# cd etc/
[root@hadoop101 etc]# cd hadoop/
[root@hadoop101 hadoop]# vim slaves
添加一下内容
hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步其他hadoop机器
[root@hadoop101 hadoop]# xsync slaves
启动集群
(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
[root@hadoop101 hadoop-2.7.2]# bin/hdfs namenode -format
(2)启动HDFS(在hadoop101上启动)
[root@hadoop101 hadoop-2.7.2]# sbin/start-dfs.sh
(3)启动YARN(zai hadoop102上面启动)
[root@hadoop101 hadoop-2.7.2]# sbin/start-yarn.sh
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
10、配置时间同步
1)安装ntp
如果失败了就说明安装过,就不用在执行了
[root@hadoop101 hadoop]# yum install ntp
2)修改ntp配置文件
[root@hadoop101 etc]# vim ntp.conf
修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
修改2(集群在局域网中,不使用其他互联网上的时间)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
3)修改/etc/sysconfig/ntpd 文件、重新启动ntpd服务
[root@hadoop101 etc]# vim /etc/sysconfig/ntpd
#添加一行
SYNC_HWCLOCK=yes
#重启服务
[root@hadoop101 etc]# service ntpd stop
[root@hadoop101 etc]# service ntpd start
4)在其他机器配置10分钟与时间服务器同步一次
[root@hadoop101 ~]# crontab -e
编写定时任务如下:
*/10 * * * * /usr/sbin/ntpdate hadoop102
到此,完全分布式运行模式结束,可以群起集群就算成功,启动的时候注意namenode和resourcemamager的启动机器,后面的配置是为了以后更好的进行操作
文章中如果有什么错误的地方,欢迎留言指出,感谢!!!
-----end-----