大数据和虚拟化
孙春杰
2014/8/1
1
议程
大数据的好处
消除误解
为何要虚拟化
‹#›
2
云计算:带来简便、优化的重大变革
2. 显著降低成本
资金更多投入到增值业务中
3. 启动灵活敏捷的IT服务
满足业务需求
1. 降低复杂性
简化运维
‹#›
3
指的是所涉及的数据量规模巨大到无法通过目前主流软件工具,在合理时间内达到截取、管理、处理、并整理成为帮助企业经营决策更积极目的的信息,特点:
1. Volume (大量性)
2. Velocity (时效性)
3. Variety (多样性)
什么是大数据?
Big Data大数据,谈的不仅仅是数据量,其实包含了数据量(Volume)、时效性(Velocity)、多样性(Variety)、可疑性(Veracity):
Volume:数据量大量数据的产生、处理、保存,谈的就是Big Data就字面上的意思,就是谈海量数据
Velocity:时效性这个词我有看到几个解释,但我认为用IBM的解释来说是比较恰当的,就是处理的时效,既然前头提到Big Data其中一个用途是做市场预测,那处理的时效如果太长就失去了预测的意义了,所以处理的时效对Big Data来说也是非常关键的,500万笔数据的深入分析,可能只能花5分钟的时间
Variety:多变性指的是数据的形态,包含文字、影音、网页、串流等等结构性、非结构性的数据
Veracity:可疑性指的是当数据的来源变得更多元时,这些数据本身的可靠度、质量是否足够,若数据本身就是有问题的,那分析后的结果也不会是正确的。
相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。
字段可根据需要扩充,即字段数目不定,可称为半结构化数据,例如Exchange存储的数据。
4
什么是 Hadoop?
Hadoop 是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架,不仅仅是一个用于存储的分布式文件系统。
Hadoop 实际上就是谷歌三宝的开源实现,HDFS(或GFS)为上层提供高效的非结构化存储服务,HBase(或BigTable)是提供结构化数据服务的分布式数据库,Hadoop MapReduce(或Google MapReduce)是一种并行计算的编程模型,用于作业调度。
一个能够对大量数据进行分布式处理的软件框架。
维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
以并行的方式工作,通过并行处理加快处理速度。
能够处理 PB 级数据。
成本比较低,任何人都可以使用。
Hadoop起源于2002年的Apache Nutch项目,是Apache Lucene的子项目之一。
2004年,Google在OSDI上公开发表了题为《MapReduce: Simplified Data Processing on Large Clusters》的论文,受到启发的Doug Cutting等人开始实现MapReduce计算框架并与NDFS(Nutch Distributed File System)结合支持Nutch的主要算法。
2006年1月,Doug Cutting加入雅虎,Yahoo!提供一个专门的团队和资源将Hadoop发展成一个可在网络上运行的系统。
2006年逐渐成为一套完整而独立的软件,起名为Hadoop。
2008年初,Hadoop成为Apache顶级项目,应用到除Yahoo!以外的很多互联网公司。
2010年起Yahoo!的Hadoop团队分离出两家Hadoop技术咨询的创业公司Hortonworks和Cloudera,其中Hortonworks拥有58名Hadoop PMC,占据社区35%份额
2011年Hortonworks发布的一篇 blog透露,按照代码行统计,Hortonworks和Yahoo!贡献了Hadoop主干项目80%以上的源码。
5
云中的大数据应用趋势
将大数据的工作负载运行或迁移到虚拟化的基础环境中;继承虚拟化的优点。
MPP DB
Hadoop
HBase
虚拟化平台
Hadoop
HBase
MPP DB
虚拟化平台
大数据的虚拟化是当前大数据以及Hadoop社区的一个发展趋势。Gartner在2013年6月举行的Hadoop Summit大会上提到,为了让Hadoop等大数据技术真正落地企业,我们要从具体业务需求出发,驱动大数据相关技术和产品的进一步发展,逐渐告别之前技术驱动的创新。Gartner同时指出,虚拟化是这个新阶段的重要趋势。随着全球企业IT虚拟化的比例突破三分之二,以虚拟化为基础的软件定义的数据中心对企业来讲变得越来越普及和重要,大数据在这样的浪潮下如何影响和融入现有企业数据中心的基础架构变
成了现实的挑战。
VMware vSphere Big Data Extension,给用户更多的选择。用户可以选择物理机、也可以选择虚拟机来构建大数据应用环境。而选用虚拟机将为用户带来更多的灵活性,让系统能够应对不同规模的大数据应用的需求。,需要看到Hadoop应用环境部署还是相对复杂,对于技术人员有一定的要求,为了降低部署的复杂度,VMware vSphere Big Data Extension提供大量的集成性的工作,简化Hadoop的部署。
如今大数据应用更多集中在社交类媒体所产生的非结构化数据,实际上,云计算也是大数据的制造者。云计算环境中,仅快照应用所产生的日志文件,每天就有6500万条之多。单纯依靠人力,是没有办法应对如此大量的日志文件。因此,管理人员希望借助大数据对日志进行分析,从而满足管理的需要。
透过vSphere Big Data Extension,VMware对外界传递了这样的一个信息,软件定义会给用户带来的成本节省和灵活性。为此,VMware提出了软件定义数据中心(SDDN)的概念,从数据中心和云基础架构的vCloud Suite,到桌面虚拟化和移动计算,VMware提供了一个完整的端到端的解决方案,用软件定义的方式,赋予了云计算和移动终端互联网足够的灵活性,满足了管理需要。
6
这些企业都选择了虚拟化作为大数据基础平台
VMware 虚拟化平台
误解
虚拟机运行在SAN上,Hadoop却是运行在本地磁盘上的
虚拟机会带来额外负载,使得Hadoop性能降低很多
8
包含本地磁盘的虚拟存储架构
共享存储: SAN 或 NAS
部署方便简单
集群的自动平衡
利用 vMotion/HA/FT技术
本地存储: 本地磁盘
为Hadoop使用本地磁盘
易扩展的带宽,每GB更低费用
Host
Hadoop
Other VM
Other VM
Host
Hadoop
Hadoop
Other VM
Host
Hadoop
Hadoop
Other VM
Host
Hadoop
Other VM
Other VM
Host
Hadoop
Hadoop
Other VM
Host
Hadoop
Hadoop
Other VM
Shared Storage
Shared Storage
Local Storage
100MB 10
9
Hadoop在虚拟化平台上运行良好
Source:
10
简单易用的hadoop集群部署和管理工具
11
议程
大数据的好处
消除误解
为何要虚拟化
12
企业使用Hadoop所面临的挑战
部署
部署费时费力
系统调优困难
单点失效
Name Node和Job tracker存在单点失效问题
相关非核心Hadoop模块如Hive, HCatalog, 等没有HA保障
利用率低
专用Hadoop集群CPU使用率低
Hadoop和非Hadoop负载不能直接共享资源
缺乏资源管控
需要多租户隔离
不同用户间缺乏足够的性能和安全隔离机制
无法实现配置隔离
13
Hadoop在企业内部的使用
Stage 3: 大数据生产应用
为许多部门服务
经常支持一部分关键任务流程
与其他大数据服务整合
如MPP DB,NoSQL等
阶段一: 试点POC
经常从业务线开始
使用1-2个用例验证Hadoop价值
典型应用一般在20个节点以下
Stage 2: Hadoop 生产应用
为一些部门服务
更多使用用例
核心Hadoop和其他相关软件
几十个到数百个节点的典型规模
20
300
0 node
Integrated
Scale
Standalone
14
Stage 1: 试点POC
需求:
快速
不希望等待数周甚至数月
快速得到Hadoop集群
便捷
能方便地访问数据
可以方便的使用不同算法和数据集
Stage1: 试点POC
经常从业务线开始
使用1-2个用例验证Hadoop价值
典型应用一般在20个节点以下
数据组或是基础架构组主导
15
为何要在此阶段进行虚拟化?
利用vSphere基础架构和硬件无需等待
应用空闲机器为Hadoop试点项目提供资源无需购买额外的软硬件
使用资源池和DRS技术为Hadoop试点项目提供计算资源 对当前负载无影响
共享存储上已经存在有数据无需迁移数据
此阶段不利用虚拟化技术是不明智的
16
Serengeti项目
2012年6月启动的开源项目,定期发布更新(三个月一个周期)
利用虚拟化技术来简化Hadoop部署的管理的工具包
了解更多信息,请访问
Serengeti
自定义Hadoop集群
选择发布版
设定存储
可使用共享存储或本地硬盘
设定资源
高可用
节点数
…
"distro":"apache",
"groups":[
{ "name":"master",
"roles":[
"hadoop_namenode",
"hadoop_jobtracker”],
"storage": {
"type": "SHARED",
"sizeGB": 20},
"instance_type":MEDIUM,
"instance_num":1,
"ha":true},
{"name":"worker",
"roles":[
"hadoop_datanode",
"hadoop_tasktracker"
],
"instance_type":SMALL,
"instance_num":5,
"ha":false
…
18
加速使用Serengeti
Serengeti 作为一站式命令中心
部署和管理Hadoop 集群
上传和下载数据
从Serengeti CLI使用 MapReduce/Pig/Hive 任务
为ODBC/JDBC 服务部署Hive Server
> cluster target --name myHadoop
> mr jar --jarfile /opt/serengeti/cli/lib/
--mainclass --args "100 1000000000"
"name": "client",
"roles": [
"hadoop_client",
"hive",
"hive_server",
"pig"
], …
> cluster create –name <clustername>
> fs ls /tmp
> fs put --from /tmp/ --to /tmp/
19
vSphere Big Data Extensions –Vsphere
vSphere 加强了对大数据工作负载的支持,包括所有主要 Hadoop 发行版
在通用 vSphere 基础架构上虚拟化 Hadoop 以实现无与伦比的灵活性
隔离存储和计算以实现弹性扩展和真正的
多租户
弹性扩展
更高的集群利用率
易于使用的界面
通过硬件整合实现更低的总体拥有成本
利用 vSphere 增强 HA/FT
存储
计算
当前的 Hadoop:
组合式
存储/
计算
存储
T1
T2
VM
VM
VM
VM
VM
弹性扩展:隔离存储和计算
Hadoop 堆栈:vSphere 加强了对
大数据工作负载的支持
物理主机
概述
优势
One of the exciting new areas we are seeing dramatic growth in is around Big Data and Hadoop. We have been working for the past couple of years at VMware to figure out a way to make Hadoop workloads run better on vSphere.
Through our efforts around Project Serengeti, we have created a management tool that integrates with vSphere’s vCenter to help customers deploy, run and manage Hadoop clusters running on vSphere. This brings all the benefits of virtualization to Hadoop, most notably agility, multi-tenancy, and reliability and security.
One key advantage of virtualizing Hadoop can be found in the lower left hand side of the page. By deploying multiple virtual machines on a single physical host, customers are able to separate data and compute resources within the same physical host. This allows customers to spin up different compute VMs seamlessly (elastic scaling) while keeping their data persistent and secure. This allows customers to create true multi-tenancy environments and to scale clusters elastically at the click of a button. Even when virtualizing Hadoop on vSphere, customers are able to maintain data locality to ensure performance that is roughly equivalent to a native deployment.
Additionally, by introducing the notion of VM-based isolation to Hadoop, customers are able to better control data, making their Hadoop clusters more reliable and secure. Resource, version and security isolation allows IT to specify resource pools amongst internal users, partition datasets to ensure data security, and simultaneously run different OS, distro, and app versions. This gives IT departments ultimate control of their data while leveraging vSphere’s industry leading HA/FT technology.
VMware is continuing to improve its ability to support and run Hadoop workloads on vSphere and look for this to be an area of continued innovation.
20
集群部署过程
完成
第一步: 在vCenter上部署BDE.
第二步: 在UI上简单点击几次
21
阶段2: Hadoop 生产应用
阶段 2: Hadoop 产品化
为一些部门服务
更多使用用例
核心Hadoop和其他相关非核心软件
成百上千个节点的典型规模
专用的Hadoop管理员
需求:
高可用性
我们是产品环境,需要一定的产品服务等级
为Hadoop应用提供整体的高可用性解决方案
敏捷性
我们一直在搜集Hadoop使用的最新需求,我希望能够很容易地扩展Hadoop集群
我们需要经常配置Hadoop集群
差异化的服务等级
我们要运行产品线上的Hadoop任务,需要保证高优先级
我们也需要满足随机的Hadoop任务请求
Let’s move on to Stage 2, enterprise wants to be in production with Hadoop, and serving a handful of departments and use cases to start with.
If you are in production, you’ll want to high availability to make sure the entire hadoop stack is healthy.
You will also want ease of operation, you are getting new requests all the time, and more nodes to support more Hadoop jobs. You will need to configure and reconfigure cluster often.
You will also want differentiated level of services. You will have production Hadoop jobs, these are the jobs that have been tried and proven its business value, and now needs to be run periodically as new data are added. These jobs need to be run with higher priority, while there are other “ad hoc” Hadoop jobs was users are still experiment with new algorithm and data sets.
In the interest of time, I’ll cover how virtualization help with first two requirements.
22
保护所有Hadoop Stack
HDFS
(Hadoop Distributed File System)
HBase (Key-Value store)
MapReduce (Job Scheduling/Execution System)
Pig (Data Flow)
Hive (SQL)
BI Reporting
ETL Tools
Management Server
Zookeepr (Coordination)
HCatalog
RDBMS
Namenode
Jobtracker
Hive MetaDB
Hcatalog MDB
Server
实战验证的高可用性技术
对于所有Hadoop生态系统使用同一机制启动HA
一键式启动HA/FT
HDFS 2 HA与之对比
只覆盖NameNode – 其他更多的5个master服务怎么办?
Apache Hadoop 1不可用
不像vSphere HA/FT经过实战验证
安装和管理更复杂
23
混合存储模式提供最好的存储算法
Master nodes:
在共享存储上搭建Name node, job tracker etc.
利用 vSphere vMotion, HA 和FT
Slave nodes
在本地存储上搭建Task tracker/data node
低成本,可扩展的带宽
Local Storage
Shared Storage
24
Stage 3: 大数据生产应用
需求:
多租户
在集群上我们又很多租户,需要在多租户之间保障资源隔离性,配置隔离性
可扩展性
系统拥有越来越多的用户和任务,我们需要保证Hadoop集群是可扩展的,可以按需调整
与大数据产品整合
不仅仅是Hadoop自身,Hadoop是整个大数据分析流程的关键部分。
Stage 3: Big Data Production
Offer other big data components
为许多部门服务
经常支持一部分关键任务流程
支持其他大数据服务
如MPP DB,NoSQL等更多非核心组件
25
共享资源: 需要三种隔离
资源隔离
控制高资源消耗任务
保证重要工作的资源
版本隔离
允许多种OS,应用等的不同版本共存
安全隔离
保证不同用户和组的安全
数据和运行时的安全
Host
Host
Host
Host
Host
Host
分布式资源管理系统和文件系统
Host
26
多租户模型1: 专用的集群
优势:
为每个租户指定一个专用的Hadoop集群 在多租户之间进行隔离
缺点:
多租户之前没有数据共享
缺乏资源共享-资源低利用率
需要很多时间管理大量的Hadoop集群
Tenant 1
MapReduce
(Compute)
HDFS
(Data)
Tenant N
MapReduce
(Compute)
HDFS
(Data)
…
Model 1: Dedicated cluster
通过虚拟化:
快速部署新集群
同时轻松管理大量集群
通过共享底层硬件集群,更有效得在多租户之间利用资源,提高资源利用率
27
多租户 模型 2:
Hadoop Cluster
Tenant 1
MR
HDFS
(Data)
Tenant 2
MR
Tenant 2
MR
…
优点:
各个租户之间共享相同的Hadoop集群 – 更充分得使用资源
不同租户之间能共享数据
缺点:
使用现在的Hadoop技术,在各个租户之间隔离有限的资源,不强制资源使用
使用虚拟化:
虚拟机在不同的租户之间提供很好的隔离性
不仅仅是物理集群共享,Hadoop集群也是共享的 在多租户之间更有效地共享资源
28
存储节点
vSphere之上的Hadoop弹性伸缩及多租户
1. 虚拟机中的Hadoop
受限使用多租户
资源固定,存储节点决定VM的生命周期
受限的扩展性
2. 分离存储节点
从存储节点分离出计算节点
计算节点弹性可扩展
可共享负载
提高易用性
3. 分离计算集群
多租户
虚拟机级别的安全性和资源隔离
计算节点弹性可扩展
同时支持多个Hadoop运行时版本
计算节点
目前 Hadoop:
存储节点和计算节点绑定
存储节点
T1
T2
VM
VM
VM
VM
VM
VM
Slave Node
Scale out from 3 -10
Computing levrage
29
Hadoop
batch analysis
整合大数据系统 – ( Hadoop即服务 + 其它大数据产品 )
HDFS
Host
Host
Host
Host
Host
Host
HBase
real-time queries
NoSQL –
Cassandra,
Mongo, etc
Big SQL –
Impala
计算层
数据层
Virtualization
Host
Other
Spark,
Shark,
Solr,
Platfora,
Etc,…
30
通过弹性伸缩可以共享资源
整合系统资源,提高资源使用效率,灵活资源调度
31
在 Hadoop 中动态横向收缩/扩展
为不同租户部署单独的计算集群共享 HDFS
根据优先级和可用资源增加或减少 Task Tracker 数量
Ad hoc
data mining
动态资源调度
数据层
HDFS
Host
Host
Host
Host
Host
Host
Production
recommendation engine
Virtualization platform
计算层
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Compute
VM
Ad hoc
data mining
Production
recommendation engine
Compute
VM
Job Tracker
Job Tracker
32
云资源池的主动监控和优化
通过 vC Ops 主动监控
获得全面的可视性
减少手动操作
主动管理可操作性
33
物理集群 虚拟化集群
集群构建 采购服务器
搭建数据中心
复杂手工步骤 无需精确了解业务对资源消耗
中心化IT管理
完全端到端自动化操作
集群运维 故障发生需要立即反馈 高容错
自动故障转移
容量计划 需要为未来做好规划,预留未使用资源 只需为现在准备,所用即所需,无需预留资源
增加计算/存储能力 需要重新采购和搭建服务器
一键触发,自动向资源池申请资源扩展容量
减少运维成本
减少资产投入
高效
34
虚拟化让 Hadoop 运维比物理环境灵活便捷有效
虚拟化让Hadoop的运维比物理环境灵活便捷有效地多!
具体我们可以来看一下各个条目的对比情况:
但是在虚拟化架构上,无需对具体业务进行精确的调研、了解然后再预测评估资源消耗,集中的IT管理,整合了底层物理服务器,让Hadoop搭建变成即时服务,同时一键式的操作也免除了手工的种种烦恼,极大的简化了资源申请流程和创建时间。
在集群运维方面,物理环境下,主节点失效后,管理员必须立即反馈,手工修复。但是虚拟化提高了容错性,并实现了自动故障转移,将集群当机时间减到最小,也让管理员从繁复的修复工作中解放出来。
在最初的容量计划方面,物理环境下,采买服务器还必须未雨绸缪,为未来不断变化的应用预留资源,虚拟化提供的平滑的伸缩资源的特性,让你无需预留资源,所用即所需,一键触发,自动向资源池申请资源对集群进行扩容。
可以看到,虚拟化改变了大数据的运维模式,在提供更好有效性的基础上,还为企业极大的减少了资产投入CAPEX和运维成本OPEX!
34
Hadoop 在虚拟化上
按需启用高可用,弹性,多租户的Hadoop
35
Thank you
36