订阅云计算RSS CSDN首页> 云计算

【CSDN现场报道】Hadoop应用实战技术培训专场报道

发表于2014-05-20 11:12| 次阅读| 来源CSDN| 0 条评论| 作者刘亚琼

摘要:时下数据已经成为当今企业的核心竞争力,拥有大数据并智慧地使用和运营数据成为企业不可缺少的成功要素。Hadoop生态系统提供了一种实用的、经济有效的、可扩展的架构,帮助企业存储、管理和处理海量数据。

【CSDN现场报道】第六届中国云计算大会于2014年5月20-23日在北京国家会议中心拉开帷幕。本次会议以技术、应用、创新、标准、国际交流为方向,共设置了近20个分论坛,特邀了十大院士与百余位企业一线实践者,共同技术把脉云计算及大数据发展趋势,深入探讨云计算大数据在生产环境中的核心技术、实践经验、革新方向与国际标准等。

在Hadoop应用实战技术培训专场首先登台的是ChinaHadoop小象社区核心成员叶琪,他是一位Hadoop的开发者与实践者,专注于Hadoop的底层模块(HDFS、YARN、MapReduce、HBase和Hive),擅长将传统业务系统迁移到基于Hadoop的解决方案,对Hadoop集群的构建和各种运维问题有着丰富的实践经验。他给大家介绍了Hadoop在电信行业的应用实践。

叶琪主要从四个方面介绍了Hadoop在电信行业的应用实践:第一,电信行业数据应用现状和挑战;第二,Hadoop在电信领域的成功应用;第三,如何从零开始设计一个Hadoop集群;第四,如何调优及高效运维一个Hadoop集群。

电信行业数据应用现状和挑战

众所周知Hadoop不是万能钥匙,同样有很多不适用的场景,比如说:

1、低延迟的数据访问,除了Hbase,Hadoop并不适用于需要实时查询和低延迟的数据访问。数据库通过索引记录可以降低延迟和快速响应,这一点单纯的用Hadoop是没有办法代替的。

2、数据量并不大的时候,Hadoop一般适用于百TB 及PB以上的数据量。当你的数据只有几十GB时,使用Hadoop是没有任何好处的。按照企业的需求有选择性的的使用Hadoop,不要盲目追随潮流。

3、大量的小文件,小文件指的是那些size比HDFS的block size(默认64M)小得多的文件。如果在HDFS中存储大量的小文件,每一个个文件对应一个block,那么就将要消耗namenode大量的内存来保存这些block的信息。

4、太多的写入和文件更新,HDFS天然适用于一次写入多次读取的场景。当有太多文件更新需求,Hadoop没有办法支持。

电信行业系统数据类型中有很多适用于Hadoop的类型。

  • –各类语音、移动数据的计费话单
  • –各类业务系统的日志
  • –核心网交换机信令

特点:

  • –量大:每秒产生几十万条以上,每天数TB
  • –存储时间长:长达1年以上
  • –结构化:有明确的字段含义
  • –有明确的业务诉求:用户体验与业务质量、统计报表、偏好分析、推荐与趋势预测

业务转型带来的数据技术挑战

  • 低成本趋势:传统数据存储方案采用小型机+磁阵+数据仓库+BI软件,单位数据成本太高。
  • 海量数据实时分析趋势:依赖于数据仓库进行的TB级数据统计分析,向海量流式数据数据的实时分析演进(35万-100万条/s流式数据汇总、分析)。
  • Scale-up已到极限:传统关系数据库技术依靠硬件Scale-up提升处理性能,无法支撑100TB到PB级别的数据,大数据处理需要的扩展能力已经远远超过硬件的性能扩展能力。

Hadoop带来的机会与风险

机会                                                                    风险

低成本                                                                SQL能力不足

集中建设/私有云                                                 业务迁移

海量数据、创新业务                                           人员技能与习惯

去IOE化

Hadoop在电信领域的成功应用

在电信行业中将海量的原始XDR存储到HDFS中,定期离线做汇总统计,按分钟、手机号、地域、业务类型等维度;汇总统计完成后,导出到OLAP系统用于分析或报表。 通过MR并行计算,实现PB级大数据量的原始数据统计/汇总的场景。

如何从零开始设计一个Hadoop集群:需求分析与配置计算、硬件选型、软件选型、组网设计、
业务设计。他表示大规模多租户Hadoop集群关键的特征,一是数据隔离。最基本的诉求就是数据之间需要隔离,业务A部门他的应用不能访问业务B的数据,保护数据之间的私密性,防止无疑之间把数据覆盖掉。比如运营商有一些销售部门,销售数据是比较敏感的,不能被其他部门所见。
二是控制权限。不同的服务有不同的权限定义,在YARN这种计算资源池里会定义不同的计算队列,每个用户能够把自己的任务提交到每个资源队列里面,对应的任务是用户以高铁的速度去运行我的业务,还是以自行车的速度去运行我的业务。三是资源优先级。同一个服务也有高低的差异,这里有租户自己本身的优先级。四是数据共享。五是统一资源管理框架YARN。六是租户管理服务。这些东西全部加起来就能够形成一个基本的多租户的Hadoop集群,才能够完整的描述它的基本特征。

下午先请出第一位演讲嘉宾,是来自于小象社区的核心成员,叫做冼茂源。他分享了HBase的系统架构,HBase数据模型,HBase存储模型,HBase API及通常用法。

他表示HBase的特点有以下这些:

1.Key-Value类型的DB
仅适合对单一key的增删改查,以及扫库操作
数据按key的字典序顺序存储
2.列式存储
Schema限制很少,可以自由的添加字段
对半结构化数据非常有用
3.线性扩展
容量和处理能力随机群数量增长
可以处理上P的数据
4.高可靠性
设计运行在廉价pc上,无单点问题
5.强一致性

Hbase的体系结构还是比较简单的,最主要的三大组件一个是Master/RegionServer/Zookeeper,ZooKeeper,分布式锁,提供分布式环境下的多机协调功能,哪些服务器还活着?定位 ROOT Region;Master,负载均衡,错误恢复,Meta数据的事务控制;RegionServer,读写数据,Split。


HBase的体系结构

HBase的数据模型

最后分享一个案例,HBase在搜索业务中的使用以及使用过程中的体会。这是一个购物搜索业务,购物搜索可以建立这样一个网站,公开的像天猫、淘宝、京东网站上可以抓取不同的记录,存储到HBase作为一个离线库。平时在后台做一个数据处理,形成正台库和后台库,形成线上库,做服务使用。线下库是将千奇百怪的网页存起来。

HBase使用体会。受益是传统的存储,最明显的是很方便我们的数据扩展。一个是在做网页分析升级的时候,比如说每天抓取的网页数变多了,存量数据变多了,这个时候存储的数据也变多,要加服务器。过去的情况我们自己写一个或者一拍脑袋写一个分布式存储,有10台服务器,有一堆key值,进来一个数据就知道数据落在哪台服务器上。以前很多支持系统都是这样做的,如果要加服务器,比如加2台,这就出大问题,代表第一台机器往第二台移,第二台机器数据往第三台移,这是很大的过程,一旦进行数据的扩容服务就要停止,用其他小库来撑,大库来做这件事情。有了HBase扩展非常方便,不需要再做这样的事情。

接下来给大家分享的也是来自小象的刘刚,他首先介绍了Hive的原理。

Hive是建立在Hadoop之上的一个数据仓库,数据存在HDFS上,计算用的是Mapred模型。一个连接上去,其他的连接就连接不上去,只能等我的连接释放以后其他的连接才能连接。我们真正的想把Hive上线,不可能说一个公司搭一个Hive就一个人能用,我们要做到能够并行。这是在Hadoop架构之上的三个应用,报表我们理解为数据分析,在线业务是基于HBase,还有BI数据挖掘。报表中心一般用的是Hive和Pig,如果业务特别复杂要用到一些算法,我们要手动的去写MR。

他表示Hive是基于Hadoop之上的一个数据仓库,说的简单一点,就是为了让不会写代码的人,像有一些资深的BI不会写代码,怎么办?Facebook写了一个Hive,让比较资深的BI可以使用Hive,在Hadoop上面来分析存在的海量数据。它是一种可以存储查询分析在Hadoop上面的数据,一般数据存在Hadoop上面的基本都是大数据,当然也有一些比较小的。如果我的数据要用到Hadoop,至少应该是G级以上的,怎么也得10G以上。Hive的元数据存储到MySQL,支持MySQL、甲骨文等。

 

Hive底层的存储和计算是基于Hadoop,上一层就是Hive。首先通过Driver进行编译,然后再放到Hadoop上面执行。访问方式,第一个是命令行方式,叫做CLI,第二个叫HWI,通过浏览器就可以,这种方式不是很多,提供的功能太简单,一般不用。用的比较多的是JDBC和ODBC,远程链接,就像MySQL。ThriftServer,比如我不想用JAVA,用的就是ThriftServer,当然你需要安装一个Thrift库。Metastore就是MySQL里面的Hive—MySQL的数据库。

 Hive的文件类型

  • TEXTFILE
  • SEQUEUEFILE
  • RCFILE
    RCFile是Facebook开发的一个集行存储和列存储的优点于一身,压缩比更高,读取列更快,它MapReduce环境中大规模数据处理中扮演着重要的角色。
    RCFile一种行列存储相结合的存储方式。首先,将数据按行分块,保证同一个record在一个块上,避免读一个记录需要读取多个Block。

更多精彩内容,敬请关注第六届中国云计算大会专题报道,关注新浪微博直播@CSDN云计算

0
0