《大数据开源技术分析研究》由会员分享,可在线阅读,更多相关《大数据开源技术分析研究(78页珍藏版)》请在金锄头文库上搜索。
1、中科普开中科普开中科普开中科普开HADOOPHADOOPHADOOPHADOOP大数据大数据大数据大数据课程课程课程课程运用运用HadoopHadoop开源技术开源技术推动大数据落地推动大数据落地大数据开源技术分析大数据开源技术分析EasyHadoop 社区创始人 童小军EasyHadoop 简介EasyHadoop 让大数据更简单【软件社区】起源:一键Hadoop安装脚本。发展:暴风,蓝讯,优酷,亿赞普,人民搜索【聚会】立足:中小型,可落地的,10-500节点技术经验分享致力于在中国推广和普及Hadoop相关技术EasyHadoopOpen Source Community个人个人 介绍介绍
2、EasyHadoop开源社区创立者开源社区创立者暴风影音平台数据研发经理暴风影音平台数据研发经理暴风影音易览视频搜索引擎研发经理暴风影音易览视频搜索引擎研发经理在搜索引擎在搜索引擎,数据分析数据分析,数据挖掘领域工作多年工作经验。现在暴风影音数据挖掘领域工作多年工作经验。现在暴风影音从事大数据分析工作从事大数据分析工作,致力于让致力于让Hadoop大数据分析应用更简单。大数据分析应用更简单。2010年开始带领团队搭建暴风影音基于年开始带领团队搭建暴风影音基于Hadoop海量数据处理平台海量数据处理平台,并总并总结整理出一整套大数据接收结整理出一整套大数据接收,存储存储,分析分析,展现快速解决方
3、案展现快速解决方案,每天接受来每天接受来自几千万暴风用户的在线播放数据自几千万暴风用户的在线播放数据,集群每天处理新增数据几十个亿集群每天处理新增数据几十个亿,每每天支撑分析任务达到上千个。支持产品分析天支撑分析任务达到上千个。支持产品分析,用户分析用户分析,广告统计等核心广告统计等核心平台日常分析工作。平台日常分析工作。2012年年5月月2日日- 第一个在国内成功第一个在国内成功通过通过Cloudera认证考认证考试试,成为首位在国内获得美国成为首位在国内获得美国Cloudera公司认证的公司认证的 Apache Hadoop开发工程师(开发工程师(Cloudera Certified De
4、veloper for Apache Hadoop ,CCDH)。)。作为作为Apache Hadoop 在中国在中国商业化的开始的商业化的开始的标志标志。被。被列入列入Hadoop百度百科百度百科,Hadoop大事记中。大事记中。详见: http:/ 电子出版物EasyHadoop 实战手册: Hadoop 企业级部署实施指南EasyHive 手册 : Hive 企业实施指南 EasyHadoop 社区技术聚会成功举办了七次Hadoop开发者活动。暴风、蓝讯、百度、淘宝、腾讯、阿里巴巴、人民搜索、亿赞普 等一线开发者的分享经验。我们如何才能做的更好我们如何才能做的更好?培训目标熟悉HADOO
5、P应用背景123了解Hadoop应用案例了解Hadoop技术最佳实践培训目录大数据和数据仓库概述1Hadoop 应用案例和云平台2Hadoop 数据仓库python/java最佳实践3数据可视化案例4基于数据仓库平台改造变迁5阿里金融通过大数据整合掘金阿里金融通过大数据整合掘金!阿里金融的信用评估系统会自动分析小微企业的数据,例如企业通过支付宝,淘宝进行的支付数据,最终算出信用评估和放贷额度。截止2011年底,阿里金融对近30万家小微企业进行信用评估。累计投放96800家,投放贷款154亿,坏账率为交易额的0.76%。阿里金融的实时业务阿里金融的实时业务墙墙阿里金融的数据模型任务(局部)阿里金
6、融的数据模型任务(局部)每个模型任务都是面向海量数据的大规模运算任务。天猫/淘宝 双十一191亿背后的开源技术?dbatools: 双十一一天时间,双十一一天时间,支付宝核心数据库集群处理了支付宝核心数据库集群处理了41亿个事务,亿个事务,执行执行285亿次亿次SQL,访问访问1931亿次内存数据块,亿次内存数据块,13亿个物理读亿个物理读,生成生成15TB日志日志。数据应用开发平台数据工场Hive报表需求(淘数据)Hbase即席查询(adhoc)数据分析数据挖掘数据产品淘宝数据云梯平台淘宝数据云梯平台-产品架构产品架构实时计算底层平台数据开发平台数据应用是是需求驱动技术需求驱动技术,技术带动
7、需求技术带动需求?思考-云计算技术有两极 3200台主机Hadoop解决了什么难题?移动计算而非移动数据,化整为零,分片处理。本地化计算,并行IO,降低网络通信思考-数据分析系统的基本指标思考-数据分析系统的基本指标 海量用户海量用户大规模批量服务(服务 1.0) 决策逻辑决策逻辑 数据库数据库用户用户1逻辑逻辑1逻辑逻辑N数据集数据集 编辑人员编辑人员用户用户N 编辑编辑逻辑逻辑信息生产者信息生产者信息消费者信息消费者Mysql/Oracle 大数据仓库大数据仓库 海量用户海量用户大规模个性化服务(服务 2.0) 决策逻辑决策逻辑 大数据库大数据库用户用户1逻辑逻辑1服务数据服务数据1用户用
8、户N逻辑逻辑N服务数据服务数据N原始数据原始数据N挖掘逻辑挖掘逻辑NHiveHbaseStormHadoop原始数据原始数据1原始数据原始数据2信息信息 生产者生产者/消费者消费者 规则制定规则制定 上帝之手上帝之手本质:智能组织-智能群体实时实时思考-数据分析系统的基本指标反馈决策周期!快反馈决策粒度! 细反馈决策准确性! 准 反馈总体成本! 廉价数据统计/分析 是一个组织 自动控制,自学习,自调整系统核心组成部分。机会成本! 想象空间!Hadoop 前的数据仓库流程反馈决策周期!快 ?反馈决策粒度! 细 ?反馈决策准确性! 准 ? 反馈总体成本! 廉价 ?perl,shell,awk Ha
9、doop后的数据仓库流程反馈决策周期!快 ?反馈决策粒度! 细 ?反馈决策准确性! 准 ? 反馈总体成本! 廉价 ?持续扩展成本 ?Hql,Pig,Mapreduce,工作流 那些用户需要Hadoop (合)技术?案例解析User Case 1 (网页游戏)国内网页游戏厂商 百个服/网页游戏,30-50个库/服10G用户数据/天/游戏 十几款游戏场景: 游戏玩家行为分析其他平台:数据无法导出中间数据汇总丢弃,无法用户级分析User Case 2(智慧交通) 用户:最大城市,交通领域(City traffic)场景:车牌记录Car Licence Plate,100亿10 Billion/年 需
10、求:小时级别-优化到分钟级Minute-未来优化到秒级Seconds查询Intelligent TransportationSmarter Cities场景: 车辆异常快速识别Vehicle Abnormal 交通安全问题Hadoop技术 其他应用领域电信医疗交通公安航空电力金融搜索社交游戏视频民生核心基于hadoop的数据平台总体架构Python 结合 Hadoop Streaming 原理解析MapReduce基本流程实现distinct一、日志格式:0E3AAC3B-E705-4915-9ED4-EB7B1E963590FB11E363-6D2B-40C6-A096-95D8959CDB
11、9206F7CAAB-E165-4F48-B32C-8DD1A8BA2562B17F6175-6D36-44D1-946F-D748C494648A06F7CAAB-E165-4F48-B32C-8DD1A8BA2562B17F6175-6D36-44D1-946F-D748C494648AB11E363-6D2B-40C6-A096-95D8959CDB9217F6175-6D36-44D1-946F-D748C494648AE3AAC3B-E705-4915-9ED4-EB7B1E9635906F7CAAB-E165-4F48-B32C-8DD1A8BA25624使用python实现 di
12、stinct/count一、日志格式:0E3AAC3B-E705-4915-9ED4-EB7B1E963590FB11E363-6D2B-40C6-A096-95D8959CDB9206F7CAAB-E165-4F48-B32C-8DD1A8BA2562B17F6175-6D36-44D1-946F-D748C494648A06F7CAAB-E165-4F48-B32C-8DD1A8BA2562B17F6175-6D36-44D1-946F-D748C494648AB11E363-6D2B-40C6-A096-95D8959CDB9217F6175-6D36-44D1-946F-D748C49
13、4648AE3AAC3B-E705-4915-9ED4-EB7B1E9635906F7CAAB-E165-4F48-B32C-8DD1A8BA25624import sysfor line in sys.stdin: try:flags = line1:-2 str = flags+t+1 print strexcept Exception,e:print e#!/usr/bin/pythonimport sysres = for line in sys.stdin: try: flags = line:-1.split(t) if len(flags) != 2: continue fiel
14、d_key = flags0 if res.has_key(field_key) = False: resfield_key = 0 resfield_key0 = 1 except Exception,e: passfor key in res: print key( distinctcount)-map(distinct)-red#!/usr/bin/pythonimport syslastuid=num=1for line in sys.stdin: uid,count=line:-1.split(t) if lastuid =: lastuid=uid if lastuid != ui
15、d: num+=1 lastuid=uidprint num(count的优化实现的优化实现 )-reduce基于Python MapReduce Streaming 快速并行编程一、单机测试head test.log | python map.py | python red.py一、将文件上传到集群/bin/hadoop fs -copyFromLocal test.log /hdfs/三、运行map red/bin/hadoop jar contrib/streaming/hadoop-streaming-0.20.203.0.jar -file /path/map.py -file /p
16、ath/red.py -mapper map.py -reducer red.py -input /path/test.log -output /path/通过界面查看任务状态Python快速构建 数据分析模块 ComETL软件地址: https:/ Hive Mysql MapReduce 等模式作者:赵修湘极少的代码量,几万行吧!类似系统 Sqoop DataX OozieComEtl配置样例etl_op = run_mode:day, delay_hours:2, jobs:job_name:job1, analysis:etl_class_name:ExtractionEtl, ste
17、p_name:mysql_e_1, db_type:hive, db_coninfo:db_ip:192.168.1.50,db_port:3306,db_user:jobs,db_passwd:hhxxttxs,db_db:test, db_path:test.a2, pre_sql:, post_sql:, data_save_type:SimpleOutput, sql_assemble:SimpleAssemble, sql:select * from test.a2 limit 30, , transform:etl_class_name:TransformEtl, step_nam
18、e:transform1, data_source:job_name:job1,step_name:mysql_e_1,data_field:, data_transform_type:SimpleTransform, , loading:etl_class_name:LoadingEtl, step_name:load1, data_source:job_name:job1,step_name:transform1, db_type:mysql, db_coninfo:db_ip:192.168.1.50,db_port:3306,db_user:jobs,db_passwd:hhxxttx
19、s,db_db:test, db_path:test.a2, pre_sql:, post_sql:, data_load_type:SplitLoad, data_field:a|b, Pig内嵌JPython 实现PageRank算法JPython+pig 代码实现演示https:/ MapReduce框架Pydoop - Python API for Hadoop MapReduce and HDFShttp:/ - http:/ -Pig算法库 linkedin https:/ 46Hadoop集群监控 Cacti默认Cacti模板太少增加模板我们的模板磁盘IO内存详情单个内核使用CP
20、U总和及IOWaitJMX支持监控HadoopHAProxy+Hive 网络拓扑QueriesHAProxyHAProxyHiveHiveHiveHiveHadoopHAProxy+Hive高可用集群数据平台 技术路线发展Python Hadoop最佳实践通过Tornado Nginx 接受日志通过Scribe 同步数据使用Python 编写加载和清洗脚本使用ComEtl 通过Hive做ETL参考HappyEtl,Pydoop编写Python Streaming使用CronHub 做定时调度使用phpHiveAdmin 提供自助查询使用 Mysql 存储中间结果通过Tornado+highch
21、arts/gnuplot 提供报表展现使用 Python + Nagios Cacti Ganglia 监控集群整体构建在 Hadoop+Hive+pig 基础平台之上。参加EasyHadoop 聚会学习使用EasyHadoop管理集群Hadoop JAVA 数据最佳实践通过 Nginx+ tomcat 接受日志通过 Scribe,Flume-Ng同步数据使用Jython编写加载和清洗脚本使用Sqoop,DataX通过Hive做ETL参考Java MapReduce API编写程序使用CronHub 做定时调度使用phpHiveAdmin+hive+haproxy 提供自助查询使用 Mysql
22、/Oracle存储中间结果通过Spring+struts+highcharts/gnuplot/JFreeChart 提供报表展现使用 Python + Nagios Cacti Ganglia 监控集群整体构建在 Hadoop+Hive+Pig 基础平台之上。参加EasyHadoop 聚会学习使用Cloudera Manager管理集群基于云平台构建的集群性能?HD Cluster: 80 Core,180GHZ,10TB 20*Aliyun Standard C Cloud Server4G RAM,4Core*2.26GHz500GBHadoop/Hive Cluster aliyunU
23、ser-phpHiveAdmin-HiveServer-Hadoop用EasyHadoop 安装和管理节点启动100个Map生成100亿数据通过100个Map用 Perl 随机生成数据准备,1kw,1亿,10亿,100亿,100GB数据集通过Hive创建测试库表结构使用phpHiveadmin+HQL查询返回结果PhpHiveAdmin 界面查询SELECT id FROM Table where id like %JA-sq%;(模糊匹配查询出ID 带 JA-sq 的车牌号)1亿 数据,并行5 Map进程,144w/s 扫描速度,69s 返回10亿数据,并行46 Map进程,800w/s 扫
24、描速度,117s 返回100亿数据,并行453Map进程,5400w/s 扫描速度,3分钟返回,基本满足需求。SELECT id,COUNT(*) FROM Table GROUP BY id(对每个车牌号分组归并,并求出现次数)1亿 数据,并行5 Map进程,2 Reduce进程,104w/s 处理速度,96s 返回10亿数据,并行46Map进程,13Reduce进程,230w/s 处理速度,7分钟返回100亿数据,并行453Map进程,121Reduce进程,500w/s 处理速度,54分钟返回。Hadoop预算解析其他方案的成本对比!投入成本 (10TB预算)IOE(IBM+Oracle
25、+EMC)时代 (x)kw+ 自建Hadoop集群 (20*4w+4w)=80w+ 使用云主机构建Hadoop 20*7970=15.94w/年转变转变千万时代百万时代十几万时代初创型公司中型技术型公司政府,银行,电信年成本:1.5w/T我们还有那些成本压缩空间我们还有那些成本压缩空间?实施周期IBM+Oracle+EMC 时代(月) 自建Hadoop集群(1年-半年)学习和培训阿里云Hadoop时代(星期/月)转变转变季度/月1年/半年月/星期个人,初创公司中型公司政府,银行,电信月1年/半年中型公司政府,银行,电信维护成本IBM+Oracle+EMC 时代 (规划,实施,维护,管理,) 厂
26、商专业人员配合每次按小时收费 自建Hadoop集群(学习,经验,人才培育) Hadoop 云时代 (统一专人管理和维护)转变转变统一维护个人,初创公司厂商专业支持自己培养中型公司政府,银行,电信使用开放的技术还是封闭的技术使用开放的技术还是封闭的技术?Hadoop有所为,有所不为!安全风险管控-完善点主机安全性问题(安全访问管理机制)数据安全性问题(数据不丢失,信息安全)Hadoop默认3个副本,阿里云默认3个副本3*3=9个副本,数据高可用,存储成本? 技术,方案 完善点提供并可选网络拓扑结构API(Hadoop机架感知)?磁盘共享存储,如果本地化IO,避免IO抢占问题?大容量空间成本和价格
27、如何降低?CPU资源安全隔离?海量数据接入方式(硬盘拷贝数据)?大数据可视化技术数据可视化丰富前端WEB控制(数据接入,ETL可配置)报表系统,数据挖掘可视化(可配置)实时查询和处理方案ETL自主研发报表阶段查询条件查询条件单选下拉单选下拉多选下拉多选下拉单选钮单选钮日期日期二级联动二级联动输入域输入域图表图表单线曲线图单线曲线图多线曲线图多线曲线图表格表格展现展现分页分页 效果数据集市db - python - data.file - gnuplot + 绘图配置 - img + data - mailgnuplot 帮助: http:/ 报表邮件实现实时数据分析展现模型实时数据电视墙数据仓库平台演化数据系统的进化-一代数据系统的进化-二代数据系统的进化-三代童小军EMAIL:Easyhaoop社区: