Hadoop生态圈 
汇报人:宋其新
Directory 
Brief Introduction 
Hadoop Architecture 
Hadoop Components 
Summary 
Q&A
IT 发展的三大趋势 
大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了–-- 马云 
• 将移动通信和互联网二者结合起来,成为一体。 
• 指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动 
的总称。移动互联网 
• 指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。云计算 
• 通常用来形容一个公司创造的大量非结构化和半结构化数据. 
• 是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海 
量、高增长率和多样化的信息资产。大数据
举个例子——大数据如何应用在我们身边 
• 背景1 几乎70%的澳洲人一到早起来的第一件事,除了冲杯咖啡外,就是在烤面包 
上抹上厚厚一层Vegemite,Vegemite是一种食品,膏状,咸味。 
• 背景2 Vegemite在澳大利亚和新西兰很流行,其品牌的所有者正是世界第二大的 
食品和饮料制造公司—卡夫食品公司。 
• 背景3 随着Web2.0的兴起,交互工具如博客、微博、社区、贴吧等火热,卡夫为 
了能更好地了解消费者的需求以进行潜在的产品升级,与IBM携手,旨在挖掘其全球的 
Vegemite品牌消费者的真实想法。 
• 解决方案IBM利用COBRA(Corporate Brand and Reputation Analysis),一种先进 
的基于文本分析的工具,在10.5亿条博客、论坛和讨论版的内容中抓取了47.9万条关于 
Vegemite新产品的讨论信息,并进行深层分析,最终高效地完成了产品升级
Directory 
Brief Introduction 
Hadoop Architecture 
Hadoop Components 
Summary 
Q&A
组件简介 
Ambari/Cloudera Manager 
Storm Spark Mesos 
YARN:分布式操作系统 
HDFS:分布式存储 
Map 
Reduc 
e 
Pig Hive Impala 
Maho 
ut 
RHado 
op 
Giraph Hama 
Flume Sqoop 
Search 
Avro 
Chukwa 
Zookeeper 
BigTop 
Whirr 
Hcatalog 
HttpFs 
WebHdfs 
HBase Cassandra Drill 
Tez 
Accumulo 
Phoenix 
Shark 
Hue
组件分类 
Hue 
Ambari/Cloudera Manager 
HBase Hive Flume 
MapReduce 
HDFS 
Yarn 
ZooKeeper 
Oozie 
Ganglia Nagios 
Mahout
Directory 
Brief Introduction 
Hadoop Architecture 
Hadoop Components 
Summary 
Q&A
Why What How 
1. Hdfs 
2. Yarn/MapReduce 
3. Zookeeper 
4. Hbase 
5. Hive 
6. Oozie 
7. Flume 
8. Mahout 
9. Ganglia/Nagios 
3.MapReduce模板 
10. Ambari/Cloudera 
为什么 
是什么 
从社会需求角度:为什么出现 
技术角度:概念、架构
相关约定 
cMaster cSlave0 
cSlave1 
cSlave2 
iClient cProxy 
Master:1台 
Slave: 3台 
cProxy: 1台
部署规划 
cMaster cSlave0 cSlave1 cSlave2 cProxy iClient 
Hadoop master slave slave slave proxy Hadoop client 
HBase master slave slave slave Hbase client 
Zookeeper zookeeper zookeeper zookeeper Zookeeper client 
Ganglia/Nagios master slave slave slave web 
Hive Hive 
Flume Flume汇Flume源 
Oozie Oozie Server Oozie client 
Mahout mahout 
Ambari/CM master slave slave slave web
Hdfs 
实例 
部 
署 
cMaster 
yum install hadoop-hdfs-namenode 
cSlave0 
cSlave1 
cSlave2 
yum install hadoop-hdfs-datanode 
iClient 
yum install hadoop-client
Hdfs 
实例 
例 
题 
①在hdfs集群里新建sqx用户并初始化hdfs里sqx用户家目录。 
②使用sqx用户,在iClient上将/ect/hadoop/conf/下所有文件导入sqx用户家目录下input目录。 
cMaster 
cSlave0 
cSlave1 
cSlave2 
cProxy 
iClient
Yarn 
实例 
部 
署 
cMaster 
yum install hadoop-yarn-resourcemanager 
cSlave0 
cSlave1 
cSlave2 
hadoop-yarn-nodemanager 
yum install hadoop-yarn-proxyserver 
cProxy
MapReduce 
实例 
部 
署 
cSlave0 
cSlave1 
cSlave2 
yum install hadoop-mapreduce 
cProxy 
yum install hadoop-mapreduce-historyserver 
①使用WordCount,统计input目录下文件里单词出现次数 
②使用Grep程序,查询input下所有文件里,以dfs开头且中间字母a到z的单词
MapReduce 
实例 
例 
题 
①使用WordCount,统计input目录下文件里单词出现次数 
②使用Grep程序,查询input下所有文件里,以dfs开头且中间字母a到z的单词 
cMaster 
cSlave0 
cSlave1 
cSlave2 
cProxy 
iClient
Zookeeper 
为什么 
现 
实 
需 
求 
部 
分 
失 
败 
当一条消息在网络中的两个节点之间传送时,由于可能会出现各种问题,发送者无 
法知道接收者是否已经接收到这条消息,比如在接收者还未接收到消息前,发生网 
络中断,再比如接收者接收到消息后发生网络中断,甚至是接收进程死掉。发送者 
能够获取真实情况的唯一途径是重新连接接收者,并向它发出询问。 
即在分布式 
环境下甚至 
不知道一个 
操作是否已 
经失败。 
分布式 
系统固 
有特征 
zookeeper 
iReceive宕机 
网络中断 
iSend iReceive
Zookeeper 
概念 
概 
念 
Zookeeper(又称分布式锁)是由开源组织Apache开发的一个的高效、可靠的分布式协调服务。 
zookeeper 
iSend iReceive 
zookeeper1 zookeeper2 zookeeper3 
iSend iReceive 
Zookeeper典型应用-工作过程
Zookeeper 
架构 
架 
构 
工作原理:Paxos算法一种基于消息传递模型的一致性算法 
z1 
z2 
z3 
iSend iReceive
Zookeeper 
实例 
部 
署 
cSlave0 yum install zookeeper-server 
cSlave1 
cSlave2 
例 
题 
①分别使用命令行接口和API接口向zookeeper存储树中新建一 
节点并存入信息 
②假设机器cSlave0上有进程Pa,机器cSlave2上有进程Pb,使 
用zookeeper实现进程Pa与Pb相互协作
HBase 
为什么 
现 
实 
需 
求 
在 
线 
访 
问 
分布式 
数据库 
在线 
实时 
服务 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
iClient 
客户欲实 
时读HDFS 
里数据 
太 
慢 
缓存机制 
索引机制 
2006年谷歌发表论文BigTable, 
年末、微软旗下自然语言搜索 
公司Powerset出于处理大数据 
的需求,按论文思想,开启了 
HBase项目 
Hbase 
iClient
HBase 
是什么 
概 
念 
是一个高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统 
适合于存储非结构化数据基于列的而不是基于行的模式 
HBase架构在hadoop之上怎么架构在hadoop之上HBase架构
HBase 
是什么 
架 
构 
DataNode DataNode DataNode DataNode DataNode 
Hadoop 
DataNode 
iClient 
HRegionServer 
HRegion 
HLog 
Store MemStore 
StoreFile 
Hfile 
DFSClient 
StoreFile 
Hfile 
MemStore 
StoreFile 
Hfile 
HRegionServer 
HRegion 
HLog 
Store MemStore 
StoreFile 
Hfile 
StoreFile 
Hfile 
MemStore 
StoreFile 
Hfile 
DFSClient 
Zookeeper HMaster
HBase 
数据模型 
逻 
辑 
模 
型 
行健时间戳列族contents 列族anchor 列族mime 
"com.cnn.www" 
t9 anchor:cnnsi.com= "CNN" 
t8 anchor:my.look.ca= "CNN.com" 
t6 contents:html="<html>…" mime:type="text/html" 
t5 contents:html="<html>…" 
t6 contents:html="<html>…" 
行健时间戳列族contents 
"com.cnn.www" 
t6 contents:html="<html>…" 
t5 contents:html="<html>…" 
t3 contents:html="<html>…" 
行健时间戳列族anchor 
"com.cnn.www" t9 anchor:cnnsi.com= "CNN" 
t8 anchor:my.look.ca= "CNN.com" 
行健时间戳列族mime 
"com.cnn.www" t6 mime:type="text/html" 
物 
理 
模 
型
HBase 
实例 
部 
署 
yum install hbase-regionserver 
cMaster 
cSlave0 
cSlave1 
cSlave2 
yum install hbase-master 
iClient 
yum install hbase
HBase 
实例 
①假定Mysql里有member表,要求使用HBase的shell接口,在HBase中新建并存储此表 
例 
题 
②简述HBase是否适合存储问题①中的结构化数据 
身份id 姓名性别年龄教育职业收入 
201401 aa 0 21 e0 p3 m 
201402 bb 1 22 e1 p2 l 
201403 cc 1 23 e2 p1 m 
Key行键 
Value列键 
列族personalAttr 列族socialAttr 
身份ID 姓名性别年龄教育职业收入 
201401 aa 0 21 e0 p3 m 
201402 bb 1 22 e1 p2 l 
201403 cc 1 23 e2 P1 m
Pig 
为什么-是什么 
现 
实 
需 
求 
- 
概 
念 
程序员使用Pig脚本指挥 
HDFS、MapReduce 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
iClient 
程序员 
使用MR 
处理 
HDFS里 
数据 
1.太慢 
2.要求高 
Pig是用来 
处理大规模 
数据集的脚 
本语言平台 
1.编写MR程序 
2.组织处理流 
提交任务 
1.编写MR程序 
2.组织处理流
Pig 
是什么 
工 
作 
过 
程 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
iClient 
向Pig提交任务 
程序员或分析师 
根据业务逻辑写 
好数据流脚本 
Pig 
Pig会将写好的数 
据流处理脚本翻 
译成多个Hdfs, 
Map和Reduce操作 
Pig向hadoop提交任务
Pig 
是什么 
架 
构 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
Pig 
Pig Latin 
解释器 
Pig Latin 
环境
数据类型 
Pig 
是什么 
语 
法 
(1)基本数据类型:int、long、float、double、chararray和bytearray 
(2)复杂数据类型:字符串或基本类型与字符串的组合 
运算符 
(1)算术运算符:+,-,*,/,% 
(2)三目运算符:?: 
(3)比较运算符:==,!= 
函数 
操作名称功能 
LOAD 载入待处理数据 
FOREACH 逐行处理Tuple 
FILTER 过滤不满足条件的Tuple 
DUMP 将结果打印到屏幕 
STORE 将结果保存到文件
Pig 
实例 
部 
署 
iClient 
yum install pig 
例 
题 
①使用Pig Latin实现WordCount
Hive 
为什么 
现 
实 
需 
求 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
iClient 
Hive起源于Facebook内部信息处理平台。由于需 
要处理大量新兴社会网络数据,考虑到扩展性, 
Facebook最终选择hadoop作为存储和处理平台 
Hive的设计目的即是让Facebook内精通SQL的分析 
师能够以类SQL的方式查询存放在HDFS的大规模 
数据集 
提交任务 
1.编写MR程序 
2.组织处理流
Hive 
是什么 
概 
念 
- 
工 
作 
过 
程 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
Hive是一个构建在hadoop上的数据仓库框架 
iClient 
Hive会将写好的数 
据流处理脚本翻 
译成多个Hdfs, 
Map和Reduce操作 
向Hive提交任务 
程序员或分析师 
根据业务逻辑写 
好数据流脚本 
Hive向hadoop提交任务 
Hive
Hive 
是什么 
架 
构 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
Hive
Hive 
是什么-语法 
语 
法 
HiveQL:SQL类似 
数据类型 
基本类型:数值型、布尔型、字符串 
复杂类型:ARRAY、MAP和STRUCT 
关系操作:如x='a' 
算术操作:加法x+1 
逻辑操作:如逻辑或x or y 
操作符 
函数Hive内置了上百个函数 
基本同SQL一样 
count 
like 
Rank 
------- 
map子句 
reduce子句
Hive 
实例 
部 
署 
方 
式
Hive 
实例 
部 
署 
iClient 
yum install hive 
例 
题 
①在hive里新建member表,并将表6-6中的数据载入hive里的member表中 
②查询member表中所有记录;查询member表中gender值为1的记录;查询member 
表中gender值为1且age为22的记录;统计member中男性和女性出现次数 
身份id 姓名性别年龄教育职业收入 
201401 aa 0 21 e0 p3 m 
201402 bb 1 22 e1 p2 l 
201403 cc 1 23 e2 p1 m
Hive 
实例 
理 
解 
功能好熟悉Hive和Pig有和区别 
(1)hive有metadata,pig无 
(2)hive面向sql、Pig面向MapReduce 
(1)pig是没有开发好的hive 
(2)facebook误解hadoop用途 
狭义的理解
Oozie 
为什么 
现 
实 
需 
求 
现实业务中处理数据时不可能只包含一个MR操作 
“M1”→“R1”→“Java1”→“Pig1”→“Hive1”→“M2”→“R2” →“Java2” →“Mahout” 
常见处理数据流程 
现实业务中经常有:定时任务、定数任务、数据促发任务 
流 
每天夜里凌晨执行的任务、每周定时执行一次任务、文件夹下10个文件时执行任务 
促发 
前一个任务和后一个相关、前错、后不执行 
错发生后、人不可能每时都监控、邮件、短信报错机制 
错误 
机制
Oozie 
是什么 
概 
念 
- 
工 
作 
过 
程 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
Oozie概念:组织各种工作流的引擎 
向Oozie提交任务 
iClient 
Oozie向hadoop提交任务 
Oozie托管这个计 
算流程 
O ozie 
“MR1”→“Java1”→“Pig1”→“Hive1”→“MR2” →“Java2” →“Mahout” 
写入workflow.xml
Oozie 
是什么 
功 
能 
- 
特 
性 
(1)组织各种工作流 
(2)托管工作流 
功 
能 
界 
面 
(3)通过workflow和job.properties来定义,最终生成DAG有向无环图
Oozie 
实例 
部 
署 
cMaster 
iClient 
yum install oozie 
yum install oozie-client 
例 
题 
①运行Oozie MR示例程序 
②运行Oozie Pig、Hive等示例 
③编写workflow.xml,完成一次WordCount 
④编写workflow.xml,完成两次WordCount,且第一个WC的输出为第二个WC输入
Flume 
为什么 
现 
实 
需 
求 
生产机器(线上机器)一般不作为数据处理机器 
宕机了怎么办,误操作怎么办---故---线上机器都有严格负载监控、如CPU50%就报警 
问:如何将线上机器产生的数据导入数据中心
Flume 
为什么 
现 
实 
需 
求 
WebServer 
生产机A 
WebServer 
生产机B 
WebServer 
生产机C 
WebServer 
生产机D 
cSlave0 
cMaster 
cSlave1 
cSlave2 
cSlave3 
cSlave4 
断网cProxy
Flume 
是什么 
概 
念 
- 
典 
型 
应 
用 
Flume是一个分布式高性能高可靠的数据传输工具 
它可以以简单的方式将不同数据源的数据导入到 
某个或多个数据中心 
典型应用是将众多生产机器日志数据实时导入HDFS
Flume 
是什么 
组 
成 
Source 
负责读取原始数据,目前Flume支持Avro Source,Thrift Source,Exec Source(即Shell),NetCat Source, 
Syslog Sources,HTTP Source等大量类型,甚至用户可以自定义Source,使用时仅需在配置文件里声明即可 
Channel 
负责将从Source端传来的数据存入到Channel,类型的:即Memory,JDBC和FileFlume的分用复用和过滤功 
能:定义并控制多个相互无关的Channel,实现数据发往不同地点而并不干涉 
Sink 
负责从Channel中取出并发送数据,Flume当前支持HDFS、Logger、Avro、Thrift,IRC,File,HBase等大量 
类型Sink,其实这些Sink内部都是使用netty来发送数据的,只是发送的协议不同而已
Flume 
实例 
部 
署 
iClient 
yum install flume-ng-agent 
cMaster 
yum install flume-ng-agent 
cMaster cSlave0 
cSlave2 
cSlave1 
cProxy 
iClient
Flume 
实例 
例 
题 
①要求发送端iClient使用telnet向cMaster发送数据,而接收端cMaster开启44444端口 
接收数据,并将收到的数据显示于命令行 
②要求发送端iClient将本地文件“/home/joe/source.txt”发往接收端cMaster,而接收 
端cMaster需将这些数据存入HDFS
Mahout 
为什么 
现 
实 
需 
求 
大数据为数据挖掘带来的困难 
目的:机器学习算法、数据挖掘算法并行化
Mahout 
是什么 
概 
念 
- 
工 
作 
过 
程 
cMaster 
cSlave0 
cSlave2 
cSlave1 
cProxy 
机器学习数据挖掘并行化算法库 
包括聚类,分类,推荐过滤,频繁子项挖掘等 
向Mahout提交任务 
iClient 
Mahout向hadoop提交任务 
Mahout提供Jar 
(算法支持) 
Mahout 
写好处理流:“准备数据”→“训练模型”→“测试模型性能”
Mahout 
是什么 
组 
成 
聚类 
分类 
协同推荐 
算法 
工具类完成数据欲处理:转成二进制与矩阵
Mahout 
实例 
部 
署 
iClient 
yum install mahout 
例 
题 
①要求以sqx用户运行mahout示例程序naivebayes,实现下载数据,建立学习器, 
训练学习器,最后使用测试数据针对此学习器进行性能测试
Ganglia/Nagios 
为什么 
现 
实 
需 
求 
大数据处理过程中集群各项参数是否正常,内存是否过载,是否有机器宕机 
Ganglia/Nagios分布式可视化集群监控工具
Ganglia/Nagios 
是什么 
组 
成 
Master: gmetad进程统计metrics 
Slave: gmond分布式收集参数metrics 
rrdTool:绘图工具,将metrics转化为图标 
Ganglia 
Nagios 
Master:维持一个队列,check_nrpe向队列中写入服务器状态数据 
Slave: check_nrpe调用本地NRPE daremon进程,执行check_disk等py插件 
Master:web端显示图标以及提供报警功能
Ambari/Cloudera Manager 
为什么 
现 
实 
需 
求 
集群机器上千台的时候,无法手动安装集群环境,或者弹性增加机器节点 
可视化集群部署管理工具
Ambari/Cloudera Manager 
是什么 
组 
成 
Apache开源项目,集成Ganglia和Nagios组件, 
提供集群节点增加等其他功能 
Ambari 
Cloudera 
Manger 
Cloudera开源项目,支持弹性增加节点,增加功能模块,检测模块状态,开 
启关闭集群等功能
Directory 
Brief Introduction 
Hadoop Architecture 
Hadoop Components 
Summary 
Q&A
Summary 
1. Hdfs 
2. Yarn/MapReduce 
3. Zookeeper 
4. Hbase 
5. Hive 
6. Oozie 
7. Flume 
8. Mahout 
9. Ganglia/Nagios 
3.MapReduce模板 
10. Ambari/Cloudera 
底层结构 
数据收集 
处理转换 
数据挖掘 
监控和运维 
Hue 
Ambari/Cloudera Manager 
HBase Hive Flume 
MapReduce 
HDFS 
Yarn 
ZooKeeper 
Oozie 
Ganglia Nagios 
Mahout 
未涉及组件简要介绍 
Storm Twitter开源项目,分布式的、容错的实时计算系统 
Kafka linkedin用于日志处理的分布式消息队列 
Spark/Shark UC Berkeley AMP lab所开源的基于内存的并行计算框架
我们再来看一个简单的问题
参考文献 
[1] http://hadoop.apache.org/ 
[2] http://zookeeper.apache.org/ 
[3] https://hbase.apache.org/ 
[4] https://pig.apache.org/ 
[5] http://hive.apache.org/ 
[6] https://oozie.apache.org/ 
[7] http://flume.apache.org/ 
[8] https://mahout.apache.org/ 
[9] http://sqoop.apache.org/ 
[10] http://cassandra.apache.org/ 
[11] http://avro.apache.org/ 
[12] http://ambari.apache.org/ 
[13] https://chukwa.apache.org/ 
[14] https://hama.apache.org/ 
[15] https://giraph.apache.org/ 
[16] http://crunch.apache.org/ 
[17] https://whirr.apache.org/ 
[18] http://bigtop.apache.org/ 
[19] http://hortonworks.com/hadoop/hcatalog/ 
[20] http://gethue.com/ 
[21] http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Installation- 
Guide/CDH5-Installation-Guide.html
Thanks~!
Directory 
Brief Introduction 
Hadoop Architecture 
Hadoop Components 
Summary 
Q&A

Hadoop ecosystem

  • 1.
  • 2.
    Directory Brief Introduction Hadoop Architecture Hadoop Components Summary Q&A
  • 3.
    IT 发展的三大趋势 大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了–--马云 • 将移动通信和互联网二者结合起来,成为一体。 • 指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动 的总称。移动互联网 • 指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。云计算 • 通常用来形容一个公司创造的大量非结构化和半结构化数据. • 是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海 量、高增长率和多样化的信息资产。大数据
  • 4.
    举个例子——大数据如何应用在我们身边 • 背景1几乎70%的澳洲人一到早起来的第一件事,除了冲杯咖啡外,就是在烤面包 上抹上厚厚一层Vegemite,Vegemite是一种食品,膏状,咸味。 • 背景2 Vegemite在澳大利亚和新西兰很流行,其品牌的所有者正是世界第二大的 食品和饮料制造公司—卡夫食品公司。 • 背景3 随着Web2.0的兴起,交互工具如博客、微博、社区、贴吧等火热,卡夫为 了能更好地了解消费者的需求以进行潜在的产品升级,与IBM携手,旨在挖掘其全球的 Vegemite品牌消费者的真实想法。 • 解决方案IBM利用COBRA(Corporate Brand and Reputation Analysis),一种先进 的基于文本分析的工具,在10.5亿条博客、论坛和讨论版的内容中抓取了47.9万条关于 Vegemite新产品的讨论信息,并进行深层分析,最终高效地完成了产品升级
  • 5.
    Directory Brief Introduction Hadoop Architecture Hadoop Components Summary Q&A
  • 6.
    组件简介 Ambari/Cloudera Manager Storm Spark Mesos YARN:分布式操作系统 HDFS:分布式存储 Map Reduc e Pig Hive Impala Maho ut RHado op Giraph Hama Flume Sqoop Search Avro Chukwa Zookeeper BigTop Whirr Hcatalog HttpFs WebHdfs HBase Cassandra Drill Tez Accumulo Phoenix Shark Hue
  • 7.
    组件分类 Hue Ambari/ClouderaManager HBase Hive Flume MapReduce HDFS Yarn ZooKeeper Oozie Ganglia Nagios Mahout
  • 8.
    Directory Brief Introduction Hadoop Architecture Hadoop Components Summary Q&A
  • 9.
    Why What How 1. Hdfs 2. Yarn/MapReduce 3. Zookeeper 4. Hbase 5. Hive 6. Oozie 7. Flume 8. Mahout 9. Ganglia/Nagios 3.MapReduce模板 10. Ambari/Cloudera 为什么 是什么 从社会需求角度:为什么出现 技术角度:概念、架构
  • 10.
    相关约定 cMaster cSlave0 cSlave1 cSlave2 iClient cProxy Master:1台 Slave: 3台 cProxy: 1台
  • 11.
    部署规划 cMaster cSlave0cSlave1 cSlave2 cProxy iClient Hadoop master slave slave slave proxy Hadoop client HBase master slave slave slave Hbase client Zookeeper zookeeper zookeeper zookeeper Zookeeper client Ganglia/Nagios master slave slave slave web Hive Hive Flume Flume汇Flume源 Oozie Oozie Server Oozie client Mahout mahout Ambari/CM master slave slave slave web
  • 12.
    Hdfs 实例 部 署 cMaster yum install hadoop-hdfs-namenode cSlave0 cSlave1 cSlave2 yum install hadoop-hdfs-datanode iClient yum install hadoop-client
  • 13.
    Hdfs 实例 例 题 ①在hdfs集群里新建sqx用户并初始化hdfs里sqx用户家目录。 ②使用sqx用户,在iClient上将/ect/hadoop/conf/下所有文件导入sqx用户家目录下input目录。 cMaster cSlave0 cSlave1 cSlave2 cProxy iClient
  • 14.
    Yarn 实例 部 署 cMaster yum install hadoop-yarn-resourcemanager cSlave0 cSlave1 cSlave2 hadoop-yarn-nodemanager yum install hadoop-yarn-proxyserver cProxy
  • 15.
    MapReduce 实例 部 署 cSlave0 cSlave1 cSlave2 yum install hadoop-mapreduce cProxy yum install hadoop-mapreduce-historyserver ①使用WordCount,统计input目录下文件里单词出现次数 ②使用Grep程序,查询input下所有文件里,以dfs开头且中间字母a到z的单词
  • 16.
    MapReduce 实例 例 题 ①使用WordCount,统计input目录下文件里单词出现次数 ②使用Grep程序,查询input下所有文件里,以dfs开头且中间字母a到z的单词 cMaster cSlave0 cSlave1 cSlave2 cProxy iClient
  • 17.
    Zookeeper 为什么 现 实 需 求 部 分 失 败 当一条消息在网络中的两个节点之间传送时,由于可能会出现各种问题,发送者无 法知道接收者是否已经接收到这条消息,比如在接收者还未接收到消息前,发生网 络中断,再比如接收者接收到消息后发生网络中断,甚至是接收进程死掉。发送者 能够获取真实情况的唯一途径是重新连接接收者,并向它发出询问。 即在分布式 环境下甚至 不知道一个 操作是否已 经失败。 分布式 系统固 有特征 zookeeper iReceive宕机 网络中断 iSend iReceive
  • 18.
    Zookeeper 概念 概 念 Zookeeper(又称分布式锁)是由开源组织Apache开发的一个的高效、可靠的分布式协调服务。 zookeeper iSend iReceive zookeeper1 zookeeper2 zookeeper3 iSend iReceive Zookeeper典型应用-工作过程
  • 19.
    Zookeeper 架构 架 构 工作原理:Paxos算法一种基于消息传递模型的一致性算法 z1 z2 z3 iSend iReceive
  • 20.
    Zookeeper 实例 部 署 cSlave0 yum install zookeeper-server cSlave1 cSlave2 例 题 ①分别使用命令行接口和API接口向zookeeper存储树中新建一 节点并存入信息 ②假设机器cSlave0上有进程Pa,机器cSlave2上有进程Pb,使 用zookeeper实现进程Pa与Pb相互协作
  • 21.
    HBase 为什么 现 实 需 求 在 线 访 问 分布式 数据库 在线 实时 服务 cMaster cSlave0 cSlave2 cSlave1 cProxy iClient 客户欲实 时读HDFS 里数据 太 慢 缓存机制 索引机制 2006年谷歌发表论文BigTable, 年末、微软旗下自然语言搜索 公司Powerset出于处理大数据 的需求,按论文思想,开启了 HBase项目 Hbase iClient
  • 22.
    HBase 是什么 概 念 是一个高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统 适合于存储非结构化数据基于列的而不是基于行的模式 HBase架构在hadoop之上怎么架构在hadoop之上HBase架构
  • 23.
    HBase 是什么 架 构 DataNode DataNode DataNode DataNode DataNode Hadoop DataNode iClient HRegionServer HRegion HLog Store MemStore StoreFile Hfile DFSClient StoreFile Hfile MemStore StoreFile Hfile HRegionServer HRegion HLog Store MemStore StoreFile Hfile StoreFile Hfile MemStore StoreFile Hfile DFSClient Zookeeper HMaster
  • 24.
    HBase 数据模型 逻 辑 模 型 行健时间戳列族contents 列族anchor 列族mime "com.cnn.www" t9 anchor:cnnsi.com= "CNN" t8 anchor:my.look.ca= "CNN.com" t6 contents:html="<html>…" mime:type="text/html" t5 contents:html="<html>…" t6 contents:html="<html>…" 行健时间戳列族contents "com.cnn.www" t6 contents:html="<html>…" t5 contents:html="<html>…" t3 contents:html="<html>…" 行健时间戳列族anchor "com.cnn.www" t9 anchor:cnnsi.com= "CNN" t8 anchor:my.look.ca= "CNN.com" 行健时间戳列族mime "com.cnn.www" t6 mime:type="text/html" 物 理 模 型
  • 25.
    HBase 实例 部 署 yum install hbase-regionserver cMaster cSlave0 cSlave1 cSlave2 yum install hbase-master iClient yum install hbase
  • 26.
    HBase 实例 ①假定Mysql里有member表,要求使用HBase的shell接口,在HBase中新建并存储此表 例 题 ②简述HBase是否适合存储问题①中的结构化数据 身份id 姓名性别年龄教育职业收入 201401 aa 0 21 e0 p3 m 201402 bb 1 22 e1 p2 l 201403 cc 1 23 e2 p1 m Key行键 Value列键 列族personalAttr 列族socialAttr 身份ID 姓名性别年龄教育职业收入 201401 aa 0 21 e0 p3 m 201402 bb 1 22 e1 p2 l 201403 cc 1 23 e2 P1 m
  • 27.
    Pig 为什么-是什么 现 实 需 求 - 概 念 程序员使用Pig脚本指挥 HDFS、MapReduce cMaster cSlave0 cSlave2 cSlave1 cProxy iClient 程序员 使用MR 处理 HDFS里 数据 1.太慢 2.要求高 Pig是用来 处理大规模 数据集的脚 本语言平台 1.编写MR程序 2.组织处理流 提交任务 1.编写MR程序 2.组织处理流
  • 28.
    Pig 是什么 工 作 过 程 cMaster cSlave0 cSlave2 cSlave1 cProxy iClient 向Pig提交任务 程序员或分析师 根据业务逻辑写 好数据流脚本 Pig Pig会将写好的数 据流处理脚本翻 译成多个Hdfs, Map和Reduce操作 Pig向hadoop提交任务
  • 29.
    Pig 是什么 架 构 cMaster cSlave0 cSlave2 cSlave1 cProxy Pig Pig Latin 解释器 Pig Latin 环境
  • 30.
    数据类型 Pig 是什么 语 法 (1)基本数据类型:int、long、float、double、chararray和bytearray (2)复杂数据类型:字符串或基本类型与字符串的组合 运算符 (1)算术运算符:+,-,*,/,% (2)三目运算符:?: (3)比较运算符:==,!= 函数 操作名称功能 LOAD 载入待处理数据 FOREACH 逐行处理Tuple FILTER 过滤不满足条件的Tuple DUMP 将结果打印到屏幕 STORE 将结果保存到文件
  • 31.
    Pig 实例 部 署 iClient yum install pig 例 题 ①使用Pig Latin实现WordCount
  • 32.
    Hive 为什么 现 实 需 求 cMaster cSlave0 cSlave2 cSlave1 cProxy iClient Hive起源于Facebook内部信息处理平台。由于需 要处理大量新兴社会网络数据,考虑到扩展性, Facebook最终选择hadoop作为存储和处理平台 Hive的设计目的即是让Facebook内精通SQL的分析 师能够以类SQL的方式查询存放在HDFS的大规模 数据集 提交任务 1.编写MR程序 2.组织处理流
  • 33.
    Hive 是什么 概 念 - 工 作 过 程 cMaster cSlave0 cSlave2 cSlave1 cProxy Hive是一个构建在hadoop上的数据仓库框架 iClient Hive会将写好的数 据流处理脚本翻 译成多个Hdfs, Map和Reduce操作 向Hive提交任务 程序员或分析师 根据业务逻辑写 好数据流脚本 Hive向hadoop提交任务 Hive
  • 34.
    Hive 是什么 架 构 cMaster cSlave0 cSlave2 cSlave1 cProxy Hive
  • 35.
    Hive 是什么-语法 语 法 HiveQL:SQL类似 数据类型 基本类型:数值型、布尔型、字符串 复杂类型:ARRAY、MAP和STRUCT 关系操作:如x='a' 算术操作:加法x+1 逻辑操作:如逻辑或x or y 操作符 函数Hive内置了上百个函数 基本同SQL一样 count like Rank ------- map子句 reduce子句
  • 36.
    Hive 实例 部 署 方 式
  • 37.
    Hive 实例 部 署 iClient yum install hive 例 题 ①在hive里新建member表,并将表6-6中的数据载入hive里的member表中 ②查询member表中所有记录;查询member表中gender值为1的记录;查询member 表中gender值为1且age为22的记录;统计member中男性和女性出现次数 身份id 姓名性别年龄教育职业收入 201401 aa 0 21 e0 p3 m 201402 bb 1 22 e1 p2 l 201403 cc 1 23 e2 p1 m
  • 38.
    Hive 实例 理 解 功能好熟悉Hive和Pig有和区别 (1)hive有metadata,pig无 (2)hive面向sql、Pig面向MapReduce (1)pig是没有开发好的hive (2)facebook误解hadoop用途 狭义的理解
  • 39.
    Oozie 为什么 现 实 需 求 现实业务中处理数据时不可能只包含一个MR操作 “M1”→“R1”→“Java1”→“Pig1”→“Hive1”→“M2”→“R2” →“Java2” →“Mahout” 常见处理数据流程 现实业务中经常有:定时任务、定数任务、数据促发任务 流 每天夜里凌晨执行的任务、每周定时执行一次任务、文件夹下10个文件时执行任务 促发 前一个任务和后一个相关、前错、后不执行 错发生后、人不可能每时都监控、邮件、短信报错机制 错误 机制
  • 40.
    Oozie 是什么 概 念 - 工 作 过 程 cMaster cSlave0 cSlave2 cSlave1 cProxy Oozie概念:组织各种工作流的引擎 向Oozie提交任务 iClient Oozie向hadoop提交任务 Oozie托管这个计 算流程 O ozie “MR1”→“Java1”→“Pig1”→“Hive1”→“MR2” →“Java2” →“Mahout” 写入workflow.xml
  • 41.
    Oozie 是什么 功 能 - 特 性 (1)组织各种工作流 (2)托管工作流 功 能 界 面 (3)通过workflow和job.properties来定义,最终生成DAG有向无环图
  • 42.
    Oozie 实例 部 署 cMaster iClient yum install oozie yum install oozie-client 例 题 ①运行Oozie MR示例程序 ②运行Oozie Pig、Hive等示例 ③编写workflow.xml,完成一次WordCount ④编写workflow.xml,完成两次WordCount,且第一个WC的输出为第二个WC输入
  • 43.
    Flume 为什么 现 实 需 求 生产机器(线上机器)一般不作为数据处理机器 宕机了怎么办,误操作怎么办---故---线上机器都有严格负载监控、如CPU50%就报警 问:如何将线上机器产生的数据导入数据中心
  • 44.
    Flume 为什么 现 实 需 求 WebServer 生产机A WebServer 生产机B WebServer 生产机C WebServer 生产机D cSlave0 cMaster cSlave1 cSlave2 cSlave3 cSlave4 断网cProxy
  • 45.
    Flume 是什么 概 念 - 典 型 应 用 Flume是一个分布式高性能高可靠的数据传输工具 它可以以简单的方式将不同数据源的数据导入到 某个或多个数据中心 典型应用是将众多生产机器日志数据实时导入HDFS
  • 46.
    Flume 是什么 组 成 Source 负责读取原始数据,目前Flume支持Avro Source,Thrift Source,Exec Source(即Shell),NetCat Source, Syslog Sources,HTTP Source等大量类型,甚至用户可以自定义Source,使用时仅需在配置文件里声明即可 Channel 负责将从Source端传来的数据存入到Channel,类型的:即Memory,JDBC和FileFlume的分用复用和过滤功 能:定义并控制多个相互无关的Channel,实现数据发往不同地点而并不干涉 Sink 负责从Channel中取出并发送数据,Flume当前支持HDFS、Logger、Avro、Thrift,IRC,File,HBase等大量 类型Sink,其实这些Sink内部都是使用netty来发送数据的,只是发送的协议不同而已
  • 47.
    Flume 实例 部 署 iClient yum install flume-ng-agent cMaster yum install flume-ng-agent cMaster cSlave0 cSlave2 cSlave1 cProxy iClient
  • 48.
    Flume 实例 例 题 ①要求发送端iClient使用telnet向cMaster发送数据,而接收端cMaster开启44444端口 接收数据,并将收到的数据显示于命令行 ②要求发送端iClient将本地文件“/home/joe/source.txt”发往接收端cMaster,而接收 端cMaster需将这些数据存入HDFS
  • 49.
    Mahout 为什么 现 实 需 求 大数据为数据挖掘带来的困难 目的:机器学习算法、数据挖掘算法并行化
  • 50.
    Mahout 是什么 概 念 - 工 作 过 程 cMaster cSlave0 cSlave2 cSlave1 cProxy 机器学习数据挖掘并行化算法库 包括聚类,分类,推荐过滤,频繁子项挖掘等 向Mahout提交任务 iClient Mahout向hadoop提交任务 Mahout提供Jar (算法支持) Mahout 写好处理流:“准备数据”→“训练模型”→“测试模型性能”
  • 51.
    Mahout 是什么 组 成 聚类 分类 协同推荐 算法 工具类完成数据欲处理:转成二进制与矩阵
  • 52.
    Mahout 实例 部 署 iClient yum install mahout 例 题 ①要求以sqx用户运行mahout示例程序naivebayes,实现下载数据,建立学习器, 训练学习器,最后使用测试数据针对此学习器进行性能测试
  • 53.
    Ganglia/Nagios 为什么 现 实 需 求 大数据处理过程中集群各项参数是否正常,内存是否过载,是否有机器宕机 Ganglia/Nagios分布式可视化集群监控工具
  • 54.
    Ganglia/Nagios 是什么 组 成 Master: gmetad进程统计metrics Slave: gmond分布式收集参数metrics rrdTool:绘图工具,将metrics转化为图标 Ganglia Nagios Master:维持一个队列,check_nrpe向队列中写入服务器状态数据 Slave: check_nrpe调用本地NRPE daremon进程,执行check_disk等py插件 Master:web端显示图标以及提供报警功能
  • 55.
    Ambari/Cloudera Manager 为什么 现 实 需 求 集群机器上千台的时候,无法手动安装集群环境,或者弹性增加机器节点 可视化集群部署管理工具
  • 56.
    Ambari/Cloudera Manager 是什么 组 成 Apache开源项目,集成Ganglia和Nagios组件, 提供集群节点增加等其他功能 Ambari Cloudera Manger Cloudera开源项目,支持弹性增加节点,增加功能模块,检测模块状态,开 启关闭集群等功能
  • 57.
    Directory Brief Introduction Hadoop Architecture Hadoop Components Summary Q&A
  • 58.
    Summary 1. Hdfs 2. Yarn/MapReduce 3. Zookeeper 4. Hbase 5. Hive 6. Oozie 7. Flume 8. Mahout 9. Ganglia/Nagios 3.MapReduce模板 10. Ambari/Cloudera 底层结构 数据收集 处理转换 数据挖掘 监控和运维 Hue Ambari/Cloudera Manager HBase Hive Flume MapReduce HDFS Yarn ZooKeeper Oozie Ganglia Nagios Mahout 未涉及组件简要介绍 Storm Twitter开源项目,分布式的、容错的实时计算系统 Kafka linkedin用于日志处理的分布式消息队列 Spark/Shark UC Berkeley AMP lab所开源的基于内存的并行计算框架
  • 59.
  • 60.
    参考文献 [1] http://hadoop.apache.org/ [2] http://zookeeper.apache.org/ [3] https://hbase.apache.org/ [4] https://pig.apache.org/ [5] http://hive.apache.org/ [6] https://oozie.apache.org/ [7] http://flume.apache.org/ [8] https://mahout.apache.org/ [9] http://sqoop.apache.org/ [10] http://cassandra.apache.org/ [11] http://avro.apache.org/ [12] http://ambari.apache.org/ [13] https://chukwa.apache.org/ [14] https://hama.apache.org/ [15] https://giraph.apache.org/ [16] http://crunch.apache.org/ [17] https://whirr.apache.org/ [18] http://bigtop.apache.org/ [19] http://hortonworks.com/hadoop/hcatalog/ [20] http://gethue.com/ [21] http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Installation- Guide/CDH5-Installation-Guide.html
  • 61.
  • 62.
    Directory Brief Introduction Hadoop Architecture Hadoop Components Summary Q&A

Editor's Notes

  • #18 Zookeeper 动物园管理员 Hadoop 大象 Pig 猪 Phoenix 凤凰 Impala 羚羊
  • #19 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统, 提供的功能包括:配置维护、名字服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  • #23 列存储 不需要设计表结构,更适应非结构化数据,弹性增加列的个数,理论无上限