Hadoop 学习 第一章 大数据入门

20.1.6 第一章 大数据入门

  • 第一章 大数据入门
    • 1.1 大数据概念
    • 1.2 大数据的特点(4V)
    • 1.3 大数据应用场景
    • 1.4 大数据发展前景
    • 1.5 大数据部分业务流程分析(重点)
    • 1.6 大数据部分组织结构 (重点)
  • 第二章 从Hadoop框架讨论大数据生态
    • 2.1 Hadoop是什么
    • 2.3 Hadoop 发行版本
    • 2.4 Hadoop的优势(四高)
    • 2.5 Hadoop 组成(面试重点)
      • Hadoop1.x 和2.x的区别
      • 2.5.1 HDFS 架构概述
      • 2.5.2 YARN 架构概述
      • 2.5. 3MapReduce 架构
      • 2.6 大数据技术生态体系
      • 2.7 推荐系统项目框架
  • 第三章 Hadoop 运行环境搭建(开发重点)
    • 3.1 虚拟机环境准备
      • 3.1.1 克隆虚拟机
      • 3.1.2 修改静态IP地址
      • 3.1.3 修改主机名
      • 3.1.4 建立主机名和IP地址之间的映射
      • 3.1.5 创建BW用户
      • 3.1.6 配置BW用户具有root权限
    • 3.2 JDK安装
    • 3.3 Hadoop 安装
    • 3.4 Hadoop 目录结构
  • 第四章 Hadoop 的运行模式
    • 4.1 本机模式
      • 4.1.2 官网WorldCount 案例(面试手写!!)
    • 4.2 伪分布式
      • 4.2.1 启动HDFS并运行MapReduce程序
        • 1. 配置集群
        • 2. 启动集群
        • 3. 查看集群
        • 5. 操作集群
        • 4. Logs 日志查看
      • 4.2.2 启动YARN并运行MapReduce程序
        • (1)配置集群
        • (2)启动集群
        • (3)集群操作
      • 4.2.3 配置历史服务器
        • 1. 配置
        • 2.启动历史服务器
        • 3.查看历史服务器是否启动
        • 4. 查看JobHistory
      • 4.2.4 配置日志的聚集
      • 4.2.5 配置文件说明
    • 4.3 完全分布式运行模式(开发重点)
      • 4.3.1 虚拟机准备
      • 4.3.2 编写集群分发脚本xsync
      • 4.3.3 集群配置
        • 1.核心配置文件
        • 2.HDFS配置文件
        • 3.YARN配置文件
        • 4.MapReduce配置文件
        • 5 在集群上分发配置好的Hadoop配置文件
        • 4.查看文件分发情况
      • 4.3.4 集群单点启动
        • (1)如果集群是第一次启动,需要格式化NameNode
        • (2)在hadoop102上启动NameNode
        • (3)在hadoop102、hadoop103以及hadoop104上分别启动DataNode
      • 4.3.5 SSH无密登录配置
      • 4.3.6 集群群起
      • 4.3.7 集群启动/停止方式总结
      • 4.3.8 集群时间同步
        • crontab定时任务设置

第一章 大数据入门

1.1 大数据概念

在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第1张图片
主流:阿里巴巴 腾讯 今日头条 美团 滴滴

对大数据的理解:
在这里插入图片描述

1.2 大数据的特点(4V)

Hadoop 学习 第一章 大数据入门_第2张图片
Hadoop 学习 第一章 大数据入门_第3张图片
Hadoop 学习 第一章 大数据入门_第4张图片
Hadoop 学习 第一章 大数据入门_第5张图片

1.3 大数据应用场景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第6张图片

1.4 大数据发展前景

在这里插入图片描述
在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第7张图片
Hadoop 学习 第一章 大数据入门_第8张图片

1.5 大数据部分业务流程分析(重点)

在这里插入图片描述

1.6 大数据部分组织结构 (重点)

Hadoop 学习 第一章 大数据入门_第9张图片

第二章 从Hadoop框架讨论大数据生态

2.1 Hadoop是什么

在这里插入图片描述
后面的Hive 等框架都是依托Hadoop.
Hadoop 学习 第一章 大数据入门_第10张图片
Hadoop 学习 第一章 大数据入门_第11张图片
入门第一个月拼命学习,扛下来就能成功。

2.3 Hadoop 发行版本

Hadoop 学习 第一章 大数据入门_第12张图片

2.4 Hadoop的优势(四高)

Hadoop 学习 第一章 大数据入门_第13张图片

2.5 Hadoop 组成(面试重点)

Hadoop1.x 和2.x的区别

Hadoop 学习 第一章 大数据入门_第14张图片

2.5.1 HDFS 架构概述

2.5.2 YARN 架构概述

Hadoop 学习 第一章 大数据入门_第15张图片
RecourseManager 是整个资源集群的老大,
Nodemanager 单个节点资源老大 单个节点就是单个服务器 单个电脑。

2.5. 3MapReduce 架构

Hadoop 学习 第一章 大数据入门_第16张图片
Hadoop 学习 第一章 大数据入门_第17张图片

2.6 大数据技术生态体系

Hadoop 学习 第一章 大数据入门_第18张图片
数据传输层:
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 克隆虚拟机

Hadoop 学习 第一章 大数据入门_第19张图片
Hadoop 学习 第一章 大数据入门_第20张图片
Hadoop 学习 第一章 大数据入门_第21张图片
Hadoop 学习 第一章 大数据入门_第22张图片
克隆成功:
Hadoop 学习 第一章 大数据入门_第23张图片

3.1.2 修改静态IP地址

服务器的IP地址要设置成固定的,首先输入命令:

vim /etc/udev/rules.d/70-persistent-net.rules 

进去三件事,第一件删除划线部分内容Hadoop 学习 第一章 大数据入门_第24张图片
删完:

Hadoop 学习 第一章 大数据入门_第25张图片
第二件事:
将 eth1 改成 eth0
第三件事:将划线部分复制:

Hadoop 学习 第一章 大数据入门_第26张图片
然后保存退出
随后输入命令:

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

Hadoop 学习 第一章 大数据入门_第27张图片
进去4件事
第一件把刚才复制的粘贴到 HWADDR= 后面
第二件把 ONBOOT 改为yes
第三件 把 BOOTPROTO 改成static
第四件 把IP地址 网关 DNS1 添加

第一点注意 网关GATEWAY 要和下图网关IP一致 DNS1要和网关GATEWAY保持一致
Hadoop 学习 第一章 大数据入门_第28张图片
Hadoop 学习 第一章 大数据入门_第29张图片
第二点注意 IPADDP=192.168.157.132 的前三个字段一定要和下面两个地方一致:
第一个地方:如下图 子网IP 前三个字段一样:192.168.157
Hadoop 学习 第一章 大数据入门_第30张图片
第二个地方:IP的前三个字段一样。我的是自动获取 有点问题不知如何解决
此外IP的第四个字段132不能和网关IP的第四个字段相同。
Hadoop 学习 第一章 大数据入门_第31张图片
Hadoop 学习 第一章 大数据入门_第32张图片
Hadoop 学习 第一章 大数据入门_第33张图片

3.1.3 修改主机名

修改后然后开始修改主机名 继续输入命令:

 vim /etc/sysconfig/network

将hadoop01 改成hadoop02 然后保存退出
Hadoop 学习 第一章 大数据入门_第34张图片

3.1.4 建立主机名和IP地址之间的映射

然后输入命令,建立主机名和IP地址之间的映射

 vim /etc/hosts

是否建立好IP 和主机名对应 没有的话按照下图画圈建立,在集群中,假设有102 103 104 服务器,在每个节点都要保存102 103 104主机名和IP地址之间的映射。然后保存退出 Hadoop 学习 第一章 大数据入门_第35张图片
都好后 重启虚拟机 reboot

然后ifconfig 看IP地址是否修改好。

3.1.5 创建BW用户

网络配置好后,新建一个BW用户和用户组:注意这是在102创建BW用户和用户组,等102环境全部配置好以后,克隆出103 104 ,这两个节点上也拥有BW用户和用户组
Hadoop 学习 第一章 大数据入门_第36张图片
然后设置密码:
Hadoop 学习 第一章 大数据入门_第37张图片

随后登录Xshell

Hadoop 学习 第一章 大数据入门_第38张图片

3.1.6 配置BW用户具有root权限

然后输入:

vim /etc/sudoers

Hadoop 学习 第一章 大数据入门_第39张图片
然后在root下面添加:划线行
Hadoop 学习 第一章 大数据入门_第40张图片
然后 exit 退出root
Hadoop 学习 第一章 大数据入门_第41张图片
到此虚拟机准备全部完成。

3.2 JDK安装

(1)在/opt目录下创建module、software文件夹
Hadoop 学习 第一章 大数据入门_第42张图片
software 文件夹存放所有的jar包
module 文件夹 存放jar包解析后存放的位置。
用BW用户 cd 到opt 然后创建文件夹 发现权限不够 发现opt 属于root 肯定不行。
Hadoop 学习 第一章 大数据入门_第43张图片
重新进入opt 目录 使用 sudo 命令创建 输入密码后创建成功
Hadoop 学习 第一章 大数据入门_第44张图片
然后创建module文件夹
在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第45张图片
(2)修改module、software文件夹的所有者cd

发现创建者还是root 下面更改权限
Hadoop 学习 第一章 大数据入门_第46张图片
(3)将JDK导入到opt目录下面的software文件夹下面

将两个jar包拷贝到 software文件夹下
Hadoop 学习 第一章 大数据入门_第47张图片
Hadoop 学习 第一章 大数据入门_第48张图片
在这里插入图片描述

在这里插入图片描述

拷贝完成:

(4) 在Linux系统下的opt目录中查看软件包是否导入成功
Hadoop 学习 第一章 大数据入门_第49张图片
下面安装jdk
安装两个jdk教程,不知道是否有用

(5)解压JDK到/opt/module目录下

解压:
Hadoop 学习 第一章 大数据入门_第50张图片
(6)配置JDK环境变量

复制安装目录,配置环境变量
Hadoop 学习 第一章 大数据入门_第51张图片
输入指令:

sudo vim /etc/profile

到最后一行 输入划线内容 保存退出。

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

Hadoop 学习 第一章 大数据入门_第52张图片
然后Java并不能用
输入下面命令:

source /etc/profile

然后就可以了。

Hadoop 学习 第一章 大数据入门_第53张图片
这样jdk 安装完成。

3.3 Hadoop 安装

  1. 进入到Hadoop安装包路径下
cd /opt/software/
  1. 解压安装文件到/opt/module下面
 tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/

Hadoop 学习 第一章 大数据入门_第54张图片

  1. 将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

Hadoop 学习 第一章 大数据入门_第55张图片
安装完成
Hadoop 学习 第一章 大数据入门_第56张图片

3.4 Hadoop 目录结构

Hadoop 学习 第一章 大数据入门_第57张图片
(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

第四章 Hadoop 的运行模式

Hadoop 学习 第一章 大数据入门_第58张图片
在这里插入图片描述
前两者学习用 第三者在实际的开发中使用。

4.1 本机模式

4.1.2 官网WorldCount 案例(面试手写!!)

统计单词的个数

  1. 创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
[atguigu@hadoop101 hadoop-2.7.2]$ mkdir wcinput
  1. 在wcinput文件下创建一个wc.input文件
[atguigu@hadoop101 hadoop-2.7.2]$ cd wcinput
[atguigu@hadoop101 wcinput]$ touch wc.input
  1. 编辑wc.input文件
[atguigu@hadoop101 wcinput]$ vi wc.input

在文件中输入如下内容

hadoop yarn
hadoop mapreduce
atguigu
atguigu

保存退出::wq

  1. 回到Hadoop目录/opt/module/hadoop-2.7.2
  2. 执行程序
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar
 share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
  1. 查看结果
[atguigu@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000
atguigu 2
hadoop  2
mapreduce       1
yarn    1

在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第59张图片
开始执行
Hadoop 学习 第一章 大数据入门_第60张图片
结束后有两个文件夹
Hadoop 学习 第一章 大数据入门_第61张图片
Hadoop 学习 第一章 大数据入门_第62张图片

4.2 伪分布式

4.2.1 启动HDFS并运行MapReduce程序

所有的配置都是按照完全分布式来的 但是只有一台服务器。
首先进行配置集群:

1. 配置集群

(a)配置 /core-site.xml
首先进入 /opt/module/hadoop-2.7.2 这个目录
Hadoop 学习 第一章 大数据入门_第63张图片
然后输入命令:进入配置文件

vim etc/hadoop/core-site.xml

在这里插入图片描述
打开后:
Hadoop 学习 第一章 大数据入门_第64张图片
复制:

<!-- 指定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>

效果图:然后保存退出
Hadoop 学习 第一章 大数据入门_第65张图片

Hadoop 学习 第一章 大数据入门_第66张图片
在这里插入图片描述
默认的是file:/// file 相当于一个本地的文件系统,所以路径都是本地的 什么是本地的:就是在下图的目录下
在这里插入图片描述
如果是hdfs 那么路径就变了 用的是两套不同的协议。
配置的是NameNode的地址

Hadoop 学习 第一章 大数据入门_第67张图片
运行时产生的临时数据用的
默认是啥: 是将文件存放在/tmp下 以后很多的数据默认都是存放在/tmp 路径下 但是这里我们修改到上图所示的路径
在这里插入图片描述
(b)配置 hadoop-env.sh
只要遇到env文件 都要修改JAVA路径
Hadoop 学习 第一章 大数据入门_第68张图片
Hadoop 学习 第一章 大数据入门_第69张图片

export JAVA_HOME=/opt/module/jdk1.8.0_144

Hadoop 学习 第一章 大数据入门_第70张图片
(c)配置:hdfs-site.xml
在这里插入图片描述

<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

Hadoop 学习 第一章 大数据入门_第71张图片
保存退出到以下目录:
Hadoop 学习 第一章 大数据入门_第72张图片

2. 启动集群

(a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
输入以下命令:

bin/hdfs namenode -format

Hadoop 学习 第一章 大数据入门_第73张图片
格式化完成
第一次格式化一定不会出错,但是以后格式化很容易出错 按照下面三个步骤走:
Hadoop 学习 第一章 大数据入门_第74张图片
第一步 关掉进程 第二步将data和logs文件夹还是里面的数据删除?,第三步再格式化
思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
Hadoop 学习 第一章 大数据入门_第75张图片
Hadoop 学习 第一章 大数据入门_第76张图片

(b)启动NameNode
所有的启动命令都在 sbin目录下,输入以下指令:

sbin/hadoop-daemon.sh start namenode

启动守护线程。
Hadoop 学习 第一章 大数据入门_第77张图片
查看是否生效:使用查看进程命令

jps 

它输入jdk的命令
Hadoop 学习 第一章 大数据入门_第78张图片
(c)启动DataNode
输入命令:

sbin/hadoop-daemon.sh start datanode

然后查看:
Hadoop 学习 第一章 大数据入门_第79张图片

3. 查看集群

web端查看HDFS文件系统
在浏览器输入:
192.168.186.132:50070
解释:
192.168.186.132 是IP地址
如果打不开,解决方案
注意:如果不能查看,看如下帖子处理
本机是关闭防火墙可以打开网页
Hadoop 学习 第一章 大数据入门_第80张图片
Hadoop 学习 第一章 大数据入门_第81张图片
类似于Linux的根目录系统。
可以在/ 目录下创建目录 使用命令:
其中 bin/hdfs dfs 是固定的 后面跟命令
Hadoop 学习 第一章 大数据入门_第82张图片
Hadoop 学习 第一章 大数据入门_第83张图片

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/

在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第84张图片
上传成功
(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

或者在网页查看
Hadoop 学习 第一章 大数据入门_第85张图片
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)查看输出结果

浏览器查看Hadoop 学习 第一章 大数据入门_第86张图片

命令行查看:

[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*

Hadoop 学习 第一章 大数据入门_第87张图片
(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
Hadoop 学习 第一章 大数据入门_第88张图片
说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。

4.2.2 启动YARN并运行MapReduce程序

Hadoop 学习 第一章 大数据入门_第89张图片

(1)配置集群

(a)配置yarn-env.sh
首先到该目录下
在这里插入图片描述
如果之前退出了要重新启动 namenode 和 datanode
Hadoop 学习 第一章 大数据入门_第90张图片
进入etc/hadoop 目录 打开配置文件:
Hadoop 学习 第一章 大数据入门_第91张图片
将$JAVA_HOME 路径复制

export JAVA_HOME=/opt/module/jdk1.8.0_144

Hadoop 学习 第一章 大数据入门_第92张图片
改这里:
Hadoop 学习 第一章 大数据入门_第93张图片
改后:
Hadoop 学习 第一章 大数据入门_第94张图片
(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>

修改配置文件:
在这里插入图片描述
进入:
Hadoop 学习 第一章 大数据入门_第95张图片
改完:
Hadoop 学习 第一章 大数据入门_第96张图片
(c)配置:mapred-env.sh
Hadoop 学习 第一章 大数据入门_第97张图片
改完:
Hadoop 学习 第一章 大数据入门_第98张图片
(d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
Hadoop 学习 第一章 大数据入门_第99张图片
重命名:

[atguigu@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml

在这里插入图片描述

在这里插入图片描述
默认本地运行

<!-- 指定MR运行在YARN上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

我们制定在yarn上运行
先进去修改
在这里插入图片描述
修改后:
Hadoop 学习 第一章 大数据入门_第100张图片
至此所有配置文件全部完成。接下来要启动集群

(2)启动集群

(a)启动前必须保证NameNode和DataNode已经启动
Hadoop 学习 第一章 大数据入门_第101张图片
(b)启动ResourceManager
启动命令都在 sbin/ 目录下

Hadoop 学习 第一章 大数据入门_第102张图片
输入命令:

sbin/yarn-daemon.sh start resourcemanager

在这里插入图片描述
(c)启动NodeManager
输入命令:

sbin/yarn-daemon.sh start nodemanager

Hadoop 学习 第一章 大数据入门_第103张图片

(3)集群操作

(a)YARN的浏览器页面查看

然后操作集群 在浏览器输入:

192.168.186.132:8088

总结:50070 查看HDFS
8088 查看 MapReduce

Hadoop 学习 第一章 大数据入门_第104张图片
说明在里面没有跑数据

(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

Hadoop 学习 第一章 大数据入门_第105张图片
在这里插入图片描述

4.2.3 配置历史服务器

1. 配置

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

  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>

在这里插入图片描述
修改后保存
Hadoop 学习 第一章 大数据入门_第106张图片

2.启动历史服务器

sbin/mr-jobhistory-daemon.sh  start historyserver

3.查看历史服务器是否启动

[atguigu@hadoop101 hadoop-2.7.2]$ jps

Hadoop 学习 第一章 大数据入门_第107张图片

4. 查看JobHistory

然后查看:
Hadoop 学习 第一章 大数据入门_第108张图片
点这里没反应?????没有配置好
但是输入:可以打开
http://192.168.186.132:19888/jobhistory
Hadoop 学习 第一章 大数据入门_第109张图片

4.2.4 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下:
第一步: 关闭NodeManager 、ResourceManager和HistoryManager
Hadoop 学习 第一章 大数据入门_第110张图片
第二步:配置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天

打开文件:
Hadoop 学习 第一章 大数据入门_第111张图片

改完:

Hadoop 学习 第一章 大数据入门_第112张图片

第三步: 刚才停掉的三个进程都重新启动:
Hadoop 学习 第一章 大数据入门_第113张图片
然后再运行下Wordcount 程序
首先 删除输出文件夹output
Hadoop 学习 第一章 大数据入门_第114张图片
然后运行
在这里插入图片描述
然后查看日志:
输入:
http://192.168.186.132:19888/jobhistory
Hadoop 学习 第一章 大数据入门_第115张图片
Hadoop 学习 第一章 大数据入门_第116张图片
Hadoop 学习 第一章 大数据入门_第117张图片
完成。

4.2.5 配置文件说明

Hadoop 学习 第一章 大数据入门_第118张图片
自定义的配置文件优先级比默认的高

4.3 完全分布式运行模式(开发重点)

分析:

4.3.1 虚拟机准备

1)准备3台客户机(关闭防火墙、静态ip、主机名称)

克隆CentOS01 不是克隆CentOS101 !!! 克隆之前一定要在01 上创建用户BW
Hadoop 学习 第一章 大数据入门_第119张图片
Hadoop 学习 第一章 大数据入门_第120张图片
Hadoop 学习 第一章 大数据入门_第121张图片
Hadoop 学习 第一章 大数据入门_第122张图片
Hadoop 学习 第一章 大数据入门_第123张图片
三台机器都搞好

4.3.2 编写集群分发脚本xsync

Hadoop 学习 第一章 大数据入门_第124张图片
利用这种方式安装jdk和Hadoop

(3)案例实操

(a)在hadoop101上,将hadoop101中/opt/module目录下的软件拷贝到hadoop102 103 104上。
Hadoop 学习 第一章 大数据入门_第125张图片
一定不要忘了: 号!!!!,并且:和/ 之间不能有空格!!!!!
复制完
Hadoop 学习 第一章 大数据入门_第126张图片
注意:拷贝过来的/opt/module目录,别忘了在hadoop102、hadoop103、hadoop104上修改所有文件的,所有者和所有者组。sudo chown BW:BW -R /opt/module

然后修改module的权限。
Hadoop 学习 第一章 大数据入门_第127张图片
然后将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

Hadoop 学习 第一章 大数据入门_第128张图片
Hadoop 学习 第一章 大数据入门_第129张图片
Hadoop 学习 第一章 大数据入门_第130张图片
Hadoop 学习 第一章 大数据入门_第131张图片
Hadoop 学习 第一章 大数据入门_第132张图片
(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 集群配置

Hadoop 学习 第一章 大数据入门_第133张图片
NameNode 和 SecondaryNameNode 占用内存一比一 所以不能放到同一个节点上。
ResourceManager 是整个资源的老大 必须避开NameNode 和 SecondaryNameNode,所以只能配置到Hadoop04上。

1.核心配置文件

配置core-site.xml
在102上配置:

[atguigu@hadoop102 hadoop]$ vi core-site.xml

Hadoop 学习 第一章 大数据入门_第134张图片
在该文件中编写如下配置

<!-- 指定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>

Hadoop 学习 第一章 大数据入门_第135张图片

2.HDFS配置文件

配置hadoop-env.sh
Hadoop 学习 第一章 大数据入门_第136张图片
之前拷贝的时候已经修改过。

配置hdfs-site.xml

[atguigu@hadoop102 hadoop]$ vi hdfs-site.xml

在该文件中编写如下配置

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop05:50090</value>
</property>

修改前:
Hadoop 学习 第一章 大数据入门_第137张图片
修改后:
Hadoop 学习 第一章 大数据入门_第138张图片

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>

Hadoop 学习 第一章 大数据入门_第139张图片

4.MapReduce配置文件

Hadoop 学习 第一章 大数据入门_第140张图片
之前全部配置好 现在不需要修改。

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

Hadoop 学习 第一章 大数据入门_第141张图片
回到该目录下:
Hadoop 学习 第一章 大数据入门_第142张图片
将data 和logs文件夹删除。
Hadoop 学习 第一章 大数据入门_第143张图片
现在将102的删除了 同时将103 104的按照上述步骤删除。

(2)在hadoop102上启动NameNode

然后回到102上 输入:

[atguigu@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start namenode

Hadoop 学习 第一章 大数据入门_第144张图片
结束成功:

Hadoop 学习 第一章 大数据入门_第145张图片

[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

Hadoop 学习 第一章 大数据入门_第146张图片
然后启动103和104的DataNode (注意:103和104没有namenode)

至此102103 104 的namenode和DataNode都启动完成。

验证:成功
Hadoop 学习 第一章 大数据入门_第147张图片

4.3.5 SSH无密登录配置

单点启动比较麻烦。下面设置ssh无密登录配置。
Hadoop 学习 第一章 大数据入门_第148张图片
问题 用BW3普通用户无法登录Hadoop04 但是可以切换到root用户登录Hadoop04???

(1)免密登录原理,如图2-40所示
Hadoop 学习 第一章 大数据入门_第149张图片Hadoop 学习 第一章 大数据入门_第150张图片

进入家目录 发现有一个.ssh 进入 有一个known_hosts 文件 看一下是之前访问过的主机。

(2)生成公钥和私钥:

[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
Hadoop 学习 第一章 大数据入门_第151张图片
Hadoop 学习 第一章 大数据入门_第152张图片
(3)将公钥拷贝到要免密登录的目标机器上

然后将公钥拷贝到103 104

[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104

Hadoop 学习 第一章 大数据入门_第153张图片
Hadoop 学习 第一章 大数据入门_第154张图片

拷贝完后 就可以免密登录了。
Hadoop 学习 第一章 大数据入门_第155张图片

在103 和104 里可以看到公钥
Hadoop 学习 第一章 大数据入门_第156张图片
但是这时候访问自己还是需要输入密码 所以继续拷贝一份给自己:
Hadoop 学习 第一章 大数据入门_第157张图片
为什么要设置102的免密登录 由于102上有namenode 它需要去04 和 05上去分发和通信。
同理:
103上也有resourcemanager 它也需要配置免密登录:
Hadoop 学习 第一章 大数据入门_第158张图片
然后将其拷贝到102 103 104上:
Hadoop 学习 第一章 大数据入门_第159张图片

然后在102 的root用户生成密钥拷贝给102 103 104
Hadoop 学习 第一章 大数据入门_第160张图片
Hadoop 学习 第一章 大数据入门_第161张图片

Hadoop 学习 第一章 大数据入门_第162张图片
Hadoop 学习 第一章 大数据入门_第163张图片

4.3.6 集群群起

1. 配置slaves
首先进入该目录下 修改slaves文件:

/opt/module/hadoop-2.7.2/etc/hadoop/slaves
[atguigu@hadoop102 hadoop]$ vi slaves

Hadoop 学习 第一章 大数据入门_第164张图片
然后同步所有节点配置文件

[atguigu@hadoop102 hadoop]$ xsync slaves

Hadoop 学习 第一章 大数据入门_第165张图片
Hadoop 学习 第一章 大数据入门_第166张图片
发现:
Hadoop 学习 第一章 大数据入门_第167张图片
Hadoop 学习 第一章 大数据入门_第168张图片
都分发成功。
然后关闭03 04 05 的namenode 和 datanode
03:
Hadoop 学习 第一章 大数据入门_第169张图片
04:
Hadoop 学习 第一章 大数据入门_第170张图片
05:
Hadoop 学习 第一章 大数据入门_第171张图片
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

Hadoop 学习 第一章 大数据入门_第172张图片
Hadoop 学习 第一章 大数据入门_第173张图片
Hadoop 学习 第一章 大数据入门_第174张图片
Hadoop 学习 第一章 大数据入门_第175张图片
(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上 输入:
Hadoop 学习 第一章 大数据入门_第176张图片
Hadoop 学习 第一章 大数据入门_第177张图片
Hadoop 学习 第一章 大数据入门_第178张图片
集群群起至此全部完成!!!

集群基本测试

上传一个大文件:
Hadoop 学习 第一章 大数据入门_第179张图片
之前遇到错误:上传后只有102 103有 104没有 查阅是由于104的防火墙没有关闭 :
Hadoop 学习 第一章 大数据入门_第180张图片
Hadoop 学习 第一章 大数据入门_第181张图片
实际的压缩包存在了data里面:还可以拼接
Hadoop 学习 第一章 大数据入门_第182张图片
Hadoop 学习 第一章 大数据入门_第183张图片
在这里插入图片描述
Hadoop 学习 第一章 大数据入门_第184张图片

4.3.7 集群启动/停止方式总结

Hadoop 学习 第一章 大数据入门_第185张图片
Hadoop 学习 第一章 大数据入门_第186张图片
Hadoop 学习 第一章 大数据入门_第187张图片
在这里插入图片描述

4.3.8 集群时间同步

crontab定时任务设置

Hadoop 学习 第一章 大数据入门_第188张图片
Hadoop 学习 第一章 大数据入门_第189张图片
Hadoop 学习 第一章 大数据入门_第190张图片
先重启服务:
在这里插入图片描述
时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
Hadoop 学习 第一章 大数据入门_第191张图片
配置时间同步具体实操:

  1. 时间服务器配置(必须root用户)
    (1)检查ntp是否安装

Hadoop 学习 第一章 大数据入门_第192张图片
(2)修改ntp配置文件
Hadoop 学习 第一章 大数据入门_第193张图片
Hadoop 学习 第一章 大数据入门_第194张图片
Hadoop 学习 第一章 大数据入门_第195张图片
Hadoop 学习 第一章 大数据入门_第196张图片
在末尾:
Hadoop 学习 第一章 大数据入门_第197张图片
(3)修改/etc/sysconfig/ntpd 文件
Hadoop 学习 第一章 大数据入门_第198张图片
SYNC_HWCLOCK=yes
Hadoop 学习 第一章 大数据入门_第199张图片
(4)重新启动ntpd服务
Hadoop 学习 第一章 大数据入门_第200张图片
102配置好了 下面配置103 104:
Hadoop 学习 第一章 大数据入门_第201张图片
Hadoop 学习 第一章 大数据入门_第202张图片

详细看笔记1 已经在本电脑成功编译好了Hadoop105

Hadoop 学习 第一章 大数据入门_第203张图片
Hadoop 学习 第一章 大数据入门_第204张图片
Hadoop 学习 第一章 大数据入门_第205张图片

你可能感兴趣的:(Hadoop 学习 第一章 大数据入门)