20.1.6 第一章 大数据入门
第一章 大数据入门
1.1 大数据概念
主流:阿里巴巴 腾讯 今日头条 美团 滴滴
对大数据的理解:
1.2 大数据的特点(4V)
1.3 大数据应用场景
1.4 大数据发展前景
1.5 大数据部分业务流程分析(重点)
1.6 大数据部分组织结构 (重点)
第二章 从Hadoop框架讨论大数据生态
2.1 Hadoop是什么
后面的Hive 等框架都是依托Hadoop.
入门第一个月拼命学习,扛下来就能成功。
2.3 Hadoop 发行版本
2.4 Hadoop的优势(四高)
2.5 Hadoop 组成(面试重点)
Hadoop1.x 和2.x的区别
2.5.1 HDFS 架构概述
2.5.2 YARN 架构概述
RecourseManager 是整个资源集群的老大,
Nodemanager 单个节点资源老大 单个节点就是单个服务器 单个电脑。
2.5. 3MapReduce 架构
2.6 大数据技术生态体系
数据传输层:
Sqoop 是专门导入数据库的数据
Flume 专门读写文件日志
数据存储层:
最主流:HDFS 文件存储
HBase 非关系数据库 利用 KV键值对进行存储。
Kaflka 消息队列 也能存储数据。
资源管理层:
有了数据,分析数据需要资源:内存、CPU、磁盘 那么由YARN来负责调度。
数据计算层:
分离线和在线计算,
离线计算:
有MapReduce离线计算 和 Spark Core 内存计算。现在新出了一个Flink???
在MapReduce基础上有两个开发工具Hive进行数据查询,利用SQL语句。
前两者是离线的 都是将日 月 年的数据收集好 然后开始进行计算。
Spark Core 还可以进行实时计算 (主流)
在线计算:
Storm 实时计算,在走下坡路
Spark Streaming 实时计算 实际通过批处理操作进行准实时计算。(主流)
任务调度层
2.7 推荐系统项目框架
第三章 Hadoop 运行环境搭建(开发重点)
3.1 虚拟机环境准备
3.1.1 克隆虚拟机
克隆成功:
3.1.2 修改静态IP地址
服务器的IP地址要设置成固定的,首先输入命令:
vim /etc/udev/rules.d/70-persistent-net.rules
进去三件事,第一件删除划线部分内容
删完:
第二件事:
将 eth1 改成 eth0
第三件事:将划线部分复制:
然后保存退出
随后输入命令:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
进去4件事
第一件把刚才复制的粘贴到 HWADDR= 后面
第二件把 ONBOOT 改为yes
第三件 把 BOOTPROTO 改成static
第四件 把IP地址 网关 DNS1 添加
第一点注意 网关GATEWAY 要和下图网关IP一致 DNS1要和网关GATEWAY保持一致
第二点注意 IPADDP=192.168.157.132 的前三个字段一定要和下面两个地方一致:
第一个地方:如下图 子网IP 前三个字段一样:192.168.157
第二个地方:IP的前三个字段一样。我的是自动获取 有点问题不知如何解决
此外IP的第四个字段132不能和网关IP的第四个字段相同。
3.1.3 修改主机名
修改后然后开始修改主机名 继续输入命令:
vim /etc/sysconfig/network
将hadoop01 改成hadoop02 然后保存退出
3.1.4 建立主机名和IP地址之间的映射
然后输入命令,建立主机名和IP地址之间的映射:
vim /etc/hosts
是否建立好IP 和主机名对应 没有的话按照下图画圈建立,在集群中,假设有102 103 104 服务器,在每个节点都要保存102 103 104主机名和IP地址之间的映射。然后保存退出
都好后 重启虚拟机 reboot
然后ifconfig 看IP地址是否修改好。
3.1.5 创建BW用户
网络配置好后,新建一个BW用户和用户组:注意这是在102创建BW用户和用户组,等102环境全部配置好以后,克隆出103 104 ,这两个节点上也拥有BW用户和用户组
然后设置密码:
随后登录Xshell
3.1.6 配置BW用户具有root权限
然后输入:
vim /etc/sudoers
然后在root下面添加:划线行
然后 exit 退出root
到此虚拟机准备全部完成。
3.2 JDK安装
(1)在/opt目录下创建module、software文件夹
software 文件夹存放所有的jar包
module 文件夹 存放jar包解析后存放的位置。
用BW用户 cd 到opt 然后创建文件夹 发现权限不够 发现opt 属于root 肯定不行。
重新进入opt 目录 使用 sudo 命令创建 输入密码后创建成功
然后创建module文件夹
(2)修改module、software文件夹的所有者cd
发现创建者还是root 下面更改权限
(3)将JDK导入到opt目录下面的software文件夹下面
将两个jar包拷贝到 software文件夹下
和
拷贝完成:
(4) 在Linux系统下的opt目录中查看软件包是否导入成功
下面安装jdk
安装两个jdk教程,不知道是否有用
(5)解压JDK到/opt/module目录下
解压:
(6)配置JDK环境变量
复制安装目录,配置环境变量
输入指令:
sudo vim /etc/profile
到最后一行 输入划线内容 保存退出。
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
然后Java并不能用
输入下面命令:
source /etc/profile
然后就可以了。
这样jdk 安装完成。
3.3 Hadoop 安装
- 进入到Hadoop安装包路径下
cd /opt/software/
- 解压安装文件到/opt/module下面
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
- 将Hadoop添加到环境变量
(1)获取Hadoop安装路径
[atguigu@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2
(2)打开/etc/profile文件
[atguigu@hadoop101 hadoop-2.7.2]$ sudo vi /etc/profile
(3) 在profile文件末尾添加JDK路径:(shitf+g)
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
安装完成
3.4 Hadoop 目录结构
(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
第四章 Hadoop 的运行模式
前两者学习用 第三者在实际的开发中使用。
4.1 本机模式
4.1.2 官网WorldCount 案例(面试手写!!)
统计单词的个数
- 创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
[atguigu@hadoop101 hadoop-2.7.2]$ mkdir wcinput
- 在wcinput文件下创建一个wc.input文件
[atguigu@hadoop101 hadoop-2.7.2]$ cd wcinput
[atguigu@hadoop101 wcinput]$ touch wc.input
- 编辑wc.input文件
[atguigu@hadoop101 wcinput]$ vi wc.input
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
atguigu
atguigu
保存退出::wq
- 回到Hadoop目录/opt/module/hadoop-2.7.2
- 执行程序
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
- 查看结果
[atguigu@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000
atguigu 2
hadoop 2
mapreduce 1
yarn 1
开始执行
结束后有两个文件夹
4.2 伪分布式
4.2.1 启动HDFS并运行MapReduce程序
所有的配置都是按照完全分布式来的 但是只有一台服务器。
首先进行配置集群:
1. 配置集群
(a)配置 /core-site.xml
首先进入 /opt/module/hadoop-2.7.2 这个目录
然后输入命令:进入配置文件
vim etc/hadoop/core-site.xml
打开后:
复制:
<!-- 指定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>
效果图:然后保存退出
默认的是file:/// file 相当于一个本地的文件系统,所以路径都是本地的 什么是本地的:就是在下图的目录下
如果是hdfs 那么路径就变了 用的是两套不同的协议。
配置的是NameNode的地址
运行时产生的临时数据用的
默认是啥: 是将文件存放在/tmp下 以后很多的数据默认都是存放在/tmp 路径下 但是这里我们修改到上图所示的路径
(b)配置 hadoop-env.sh
只要遇到env文件 都要修改JAVA路径
export JAVA_HOME=/opt/module/jdk1.8.0_144
(c)配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
保存退出到以下目录:
2. 启动集群
(a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
输入以下命令:
bin/hdfs namenode -format
格式化完成
第一次格式化一定不会出错,但是以后格式化很容易出错 按照下面三个步骤走:
第一步 关掉进程 第二步将data和logs文件夹还是里面的数据删除?,第三步再格式化
思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
(b)启动NameNode
所有的启动命令都在 sbin目录下,输入以下指令:
sbin/hadoop-daemon.sh start namenode
启动守护线程。
查看是否生效:使用查看进程命令
jps
它输入jdk的命令
(c)启动DataNode
输入命令:
sbin/hadoop-daemon.sh start datanode
然后查看:
3. 查看集群
web端查看HDFS文件系统
在浏览器输入:
192.168.186.132:50070
解释:
192.168.186.132 是IP地址
如果打不开,解决方案
注意:如果不能查看,看如下帖子处理
本机是关闭防火墙可以打开网页
类似于Linux的根目录系统。
可以在/ 目录下创建目录 使用命令:
其中 bin/hdfs dfs 是固定的 后面跟命令
5. 操作集群
(a)在HDFS文件系统上创建一个input文件夹
接下来将本地的文件上传到HDFS文件系统
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/atguigu/input
(b)将测试文件内容上传到文件系统上
[atguigu@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input /user/atguigu/input/
上传成功
(c)查看上传的文件是否正确
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls /user/atguigu/input/
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/ input/wc.input
或者在网页查看
Block Size 128M 最大的容量 目前使用了73B
(d)运行MapReduce程序
至此 所有的配置完成 下面运行程序
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input/ /user/atguigu/output
此时输入输出用的是HDFS的文件路径 注意output文件夹一定不能提前存在 不然会报错。
(e)查看输出结果
浏览器查看
命令行查看:
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
(f)将测试文件内容下载到本地
[atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/atguigu/output/part-r-00000 ./wcoutput/
(g)删除输出结果
[atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/atguigu/output
4. Logs 日志查看
日志要经常查看 有助于debug
说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。
4.2.2 启动YARN并运行MapReduce程序
(1)配置集群
(a)配置yarn-env.sh
首先到该目录下
如果之前退出了要重新启动 namenode 和 datanode
进入etc/hadoop 目录 打开配置文件:
将$JAVA_HOME 路径复制
export JAVA_HOME=/opt/module/jdk1.8.0_144
改这里:
改后:
(b)配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
修改配置文件:
进入:
改完:
(c)配置:mapred-env.sh
改完:
(d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
重命名:
[atguigu@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
默认本地运行
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
我们制定在yarn上运行
先进去修改
修改后:
至此所有配置文件全部完成。接下来要启动集群
(2)启动集群
(a)启动前必须保证NameNode和DataNode已经启动
(b)启动ResourceManager
启动命令都在 sbin/ 目录下
输入命令:
sbin/yarn-daemon.sh start resourcemanager
(c)启动NodeManager
输入命令:
sbin/yarn-daemon.sh start nodemanager
(3)集群操作
(a)YARN的浏览器页面查看
然后操作集群 在浏览器输入:
192.168.186.132:8088
总结:50070 查看HDFS
8088 查看 MapReduce
说明在里面没有跑数据
(b)删除文件系统上的output文件
下面运行一个程序 先把输出文件删除:
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/atguigu/output
本机:
bin/hdfs dfs -rm -r /user/BW2/output
(c)执行MapReduce程序
输入命令:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/BW2/input /user/BW2/output
4.2.3 配置历史服务器
1. 配置
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
- 配置mapred-site.xml
[atguigu@hadoop101 hadoop]$ vi mapred-site.xml
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop02:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop02:19888</value>
</property>
修改后保存
2.启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
3.查看历史服务器是否启动
[atguigu@hadoop101 hadoop-2.7.2]$ jps
4. 查看JobHistory
然后查看:
点这里没反应?????没有配置好
但是输入:可以打开
http://192.168.186.132:19888/jobhistory
4.2.4 配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下:
第一步: 关闭NodeManager 、ResourceManager和HistoryManager
第二步:配置yarn-site.xml
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
默认:关闭 所以要开启
604800 是604800秒 正好是7天
打开文件:
改完:
第三步: 刚才停掉的三个进程都重新启动:
然后再运行下Wordcount 程序
首先 删除输出文件夹output
然后运行
然后查看日志:
输入:
http://192.168.186.132:19888/jobhistory
完成。
4.2.5 配置文件说明
自定义的配置文件优先级比默认的高
4.3 完全分布式运行模式(开发重点)
分析:
4.3.1 虚拟机准备
1)准备3台客户机(关闭防火墙、静态ip、主机名称)
克隆CentOS01 不是克隆CentOS101 !!! 克隆之前一定要在01 上创建用户BW
三台机器都搞好
4.3.2 编写集群分发脚本xsync
利用这种方式安装jdk和Hadoop
(3)案例实操
(a)在hadoop101上,将hadoop101中/opt/module目录下的软件拷贝到hadoop102 103 104上。
一定不要忘了: 号!!!!,并且:和/ 之间不能有空格!!!!!
复制完
注意:拷贝过来的/opt/module目录,别忘了在hadoop102、hadoop103、hadoop104上修改所有文件的,所有者和所有者组。sudo chown BW:BW -R /opt/module
然后修改module的权限。
然后将101的配置文件传到102 103 104上。
将hadoop101中/etc/profile文件拷贝到hadoop102的/etc/profile上。
[atguigu@hadoop101 ~]$ sudo scp /etc/profile root@hadoop102:/etc/profile
将hadoop101中/etc/profile文件拷贝到hadoop103的/etc/profile上。
[atguigu@hadoop101 ~]$ sudo scp /etc/profile root@hadoop103:/etc/profile
将hadoop101中/etc/profile文件拷贝到hadoop104的/etc/profile上。
[atguigu@hadoop101 ~]$ sudo scp /etc/profile root@hadoop104:/etc/profile
注意:拷贝过来的配置文件别忘了source一下/etc/profile
(3)脚本实现
(a)在/home/BW目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:
[atguigu@hadoop102 ~]$ mkdir bin
[atguigu@hadoop102 ~]$ cd bin/
[atguigu@hadoop102 bin]$ touch xsync
[atguigu@hadoop102 bin]$ vi xsync
在该文件中编写如下代码
#!/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 循环
for((host=103; host<105; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
(b)修改脚本 xsync 具有执行权限
[atguigu@hadoop102 bin]$ chmod 777 xsync
(c)调用脚本形式:xsync 文件名称
[atguigu@hadoop102 bin]$ xsync /home/atguigu/bin
注意:如果将xsync放到/home/atguigu/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。
4.3.3 集群配置
NameNode 和 SecondaryNameNode 占用内存一比一 所以不能放到同一个节点上。
ResourceManager 是整个资源的老大 必须避开NameNode 和 SecondaryNameNode,所以只能配置到Hadoop04上。
1.核心配置文件
配置core-site.xml
在102上配置:
[atguigu@hadoop102 hadoop]$ vi core-site.xml
在该文件中编写如下配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102: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
之前拷贝的时候已经修改过。
配置hdfs-site.xml
[atguigu@hadoop102 hadoop]$ vi hdfs-site.xml
在该文件中编写如下配置
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop05:50090</value>
</property>
修改前:
修改后:
3.YARN配置文件
配置yarn-env.sh
之前修改过了 现在不用修改
配置yarn-site.xml
[atguigu@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[atguigu@hadoop102 hadoop]$ vi mapred-site.xml
在该文件中增加如下配置
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
4.MapReduce配置文件
之前全部配置好 现在不需要修改。
5 在集群上分发配置好的Hadoop配置文件
[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/
4.查看文件分发情况
[atguigu@hadoop103 hadoop]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
都配置好后 要开始单点启动了
4.3.4 集群单点启动
(1)如果集群是第一次启动,需要格式化NameNode
[atguigu@hadoop102 hadoop-2.7.2]$ hadoop namenode -format
回到该目录下:
将data 和logs文件夹删除。
现在将102的删除了 同时将103 104的按照上述步骤删除。
(2)在hadoop102上启动NameNode
然后回到102上 输入:
[atguigu@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start namenode
结束成功:
[atguigu@hadoop102 hadoop-2.7.2]$ jps
3461 NameNode
(3)在hadoop102、hadoop103以及hadoop104上分别启动DataNode
然后启动102上的namenode 和datanode
[atguigu@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
[atguigu@hadoop102 hadoop-2.7.2]$ jps
3461 NameNode
3608 Jps
3561 DataNode
[atguigu@hadoop103 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
[atguigu@hadoop103 hadoop-2.7.2]$ jps
3190 DataNode
3279 Jps
[atguigu@hadoop104 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
[atguigu@hadoop104 hadoop-2.7.2]$ jps
3237 Jps
3163 DataNode
然后启动103和104的DataNode (注意:103和104没有namenode)
至此102103 104 的namenode和DataNode都启动完成。
验证:成功
4.3.5 SSH无密登录配置
单点启动比较麻烦。下面设置ssh无密登录配置。
问题 用BW3普通用户无法登录Hadoop04 但是可以切换到root用户登录Hadoop04???
(1)免密登录原理,如图2-40所示
进入家目录 发现有一个.ssh 进入 有一个known_hosts 文件 看一下是之前访问过的主机。
(2)生成公钥和私钥:
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
然后将公钥拷贝到103 104
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
拷贝完后 就可以免密登录了。
在103 和104 里可以看到公钥
但是这时候访问自己还是需要输入密码 所以继续拷贝一份给自己:
为什么要设置102的免密登录 由于102上有namenode 它需要去04 和 05上去分发和通信。
同理:
103上也有resourcemanager 它也需要配置免密登录:
然后将其拷贝到102 103 104上:
然后在102 的root用户生成密钥拷贝给102 103 104
4.3.6 集群群起
1. 配置slaves
首先进入该目录下 修改slaves文件:
/opt/module/hadoop-2.7.2/etc/hadoop/slaves
[atguigu@hadoop102 hadoop]$ vi slaves
然后同步所有节点配置文件
[atguigu@hadoop102 hadoop]$ xsync slaves
发现:
都分发成功。
然后关闭03 04 05 的namenode 和 datanode
03:
04:
05:
2. 启动集群
(1)启动HDFS
然后直接启动hdfs 里面包含namenode 和datanode 输入:
[atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[atguigu@hadoop102 hadoop-2.7.2]$ jps
4166 NameNode
4482 Jps
4263 DataNode
[atguigu@hadoop103 hadoop-2.7.2]$ jps
3218 DataNode
3288 Jps
[atguigu@hadoop104 hadoop-2.7.2]$ jps
3221 DataNode
3283 SecondaryNameNode
3364 Jps
(2)启动YARN
[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
HDFS启动完成 现在开始启动YARN
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
坑:在102 104启动就挂了 只能必须在103上启动,因为resourcemanager在103上 输入:
集群群起至此全部完成!!!
集群基本测试
上传一个大文件:
之前遇到错误:上传后只有102 103有 104没有 查阅是由于104的防火墙没有关闭 :
实际的压缩包存在了data里面:还可以拼接
4.3.7 集群启动/停止方式总结
4.3.8 集群时间同步
crontab定时任务设置
先重启服务:
时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
配置时间同步具体实操:
- 时间服务器配置(必须root用户)
(1)检查ntp是否安装
(2)修改ntp配置文件
在末尾:
(3)修改/etc/sysconfig/ntpd 文件
SYNC_HWCLOCK=yes
(4)重新启动ntpd服务
102配置好了 下面配置103 104:
详细看笔记1 已经在本电脑成功编译好了Hadoop105