培训目标熟悉HADOOP应用背景123了解Hadoop应用案例了解Hadoop技术最佳实践培训目录大数据和数据仓库概述1Hadoop应用案例和云平台2Hadoop数据仓库[python/java]最佳实践3数据可视化案例4基于数据仓库平台改造变迁5阿里金融通过大数据整合掘金!阿里金融的信用评估系统会自动分析小微企业的数据,例如企业通过支付宝,淘宝进行的支付数据,最终算出信用评估和放贷额度。截止2011年底,阿里金融对近30万家小微企业进行信用评估。累计投放96800家,投放贷款154亿,坏账率为交易额的0.76%。阿里金融的实时业务墙阿里金融的数据模型任务(局部)每个模型任务都是面向海量数据的大规模运算任务。天猫/淘宝双十一191亿背后的开源技术?@dbatools:双十一一天时间,支付宝核心数据库集群处理了41亿个事务,执行285亿次SQL,访问1931亿次内存数据块,13亿个物理读,生成15TB日志。数据应用开发平台——数据工场Hive报表需求(淘数据)Hbase即席查询(adhoc)数据分析数据挖掘数据产品淘宝数据云梯平台-产品架构实时计算底层平台数据开发平台数据应用是需求驱动技术,技术带动需求?思考-云计算技术有两极3200台主机Hadoop解决了什么难题?•移动计算而非移动数据,化整为零,分片处理。•本地化计算,并行IO,降低网络通信思考-数据分析系统的基本指标思考-数据分析系统的基本指标海量用户大规模批量服务(服务1.0)决策逻辑数据库用户1逻辑1逻辑N数据集编辑人员用户N编辑逻辑信息生产者信息消费者Mysql/Oracle大数据仓库海量用户大规模个性化服务(服务2.0)决策逻辑大数据库用户1逻辑1服务数据1用户N逻辑N服务数据N原始数据N挖掘逻辑NHiveHbaseStormHadoop原始数据1原始数据2信息生产者/消费者规则制定上帝之手本质:智能组织-智能群体实时思考-数据分析系统的基本指标反馈决策周期!快反馈决策粒度!细反馈决策准确性!准反馈总体成本!廉价数据统计/分析是一个组织自动控制,自学习,自调整系统核心组成部分。机会成本!想象空间!Hadoop前的数据仓库流程反馈决策周期!快?反馈决策粒度!细?反馈决策准确性!准?反馈总体成本!廉价?•perl,shell,awkHadoop后的数据仓库流程反馈决策周期!快?反馈决策粒度!细?反馈决策准确性!准?反馈总体成本!廉价?持续扩展成本?•Hql,Pig,Mapreduce,工作流那些用户需要Hadoop(合)技术?案例解析UserCase1(网页游戏)•国内网页游戏厂商•百个服/网页游戏,30-50个库/服•10G用户数据/天/游戏[十几款游戏]场景:游戏玩家行为分析•其他平台:数据无法导出•中间数据汇总丢弃,无法用户级分析UserCase2(智慧交通)•用户:最大城市,交通领域(Citytraffic)•场景:车牌记录[CarLicencePlate],100亿[10Billion]/年•需求:小时级别-优化到分钟级[Minute]•-未来优化到秒级[Seconds]查询IntelligentTransportationSmarterCities场景:车辆异常快速识别VehicleAbnormal交通安全问题Hadoop技术其他应用领域•电信•医疗•交通•公安•航空•电力•金融•搜索•社交•游戏•视频民生核心基于hadoop的数据平台总体架构Python结合HadoopStreaming原理解析MapReduce基本流程实现distinct一、日志格式:{0E3AAC3B-E705-4915-9ED4-EB7B1E963590}{FB11E363-6D2B-40C6-A096-95D8959CDB92}{06F7CAAB-E165-4F48-B32C-8DD1A8BA2562}{B17F6175-6D36-44D1-946F-D748C494648A}{06F7CAAB-E165-4F48-B32C-8DD1A8BA2562}{B17F6175-6D36-44D1-946F-D748C494648A}B11E363-6D2B-40C6-A096-95D8959CDB9217F6175-6D36-44D1-946F-D748C494648AE3AAC3B-E705-4915-9ED4-EB7B1E9635906F7CAAB-E165-4F48-B32C-8DD1A8BA25624使用python实现distinct/count一、日志格式:{0E3AAC3B-E705-4915-9ED4-EB7B1E963590}{FB11E363-6D2B-40C6-A096-95D8959CDB92}{06F7CAAB-E165-4F48-B32C-8DD1A8BA2562}{B17F6175-6D36-44D1-946F-D748C494648A}{06F7CAAB-E165-4F48-B32C-8DD1A8BA2562}{B17F6175-6D36-44D1-946F-D748C494648A}B11E363-6D2B-40C6-A096-95D8959CDB9217F6175-6D36-44D1-946F-D748C494648AE3AAC3B-E705-4915-9ED4-EB7B1E9635906F7CAAB-E165-4F48-B32C-8DD1A8BA25624importsysforlineinsys.stdin:try:flags=line[1:-2]str=flags+'\t'+'1'printstrexceptException,e:printe#!/usr/bin/pythonimportsysres={}forlineinsys.stdin:try:flags=line[:-1].split('\t')iflen(flags)!=2:continuefield_key=flags[0]ifres.has_key(field_key)==False:res[field_key]=[0]res[field_key][0]=1exceptException,e:passforkeyinres:printkey(distinct\count)--map(distinct)--red#!/usr/bin/pythonimportsyslastuid=num=1forlineinsys.stdin:uid,count=line[:-1].split('\t')iflastuid==:lastuid=uidiflastuid!=uid:num+=1lastuid=uidprintnum(count的优化实现)--reduce基于PythonMapReduceStreaming快速并行编程一、单机测试headtest.log|pythonmap.py|pythonred.py一、将文件上传到集群/bin/hadoopfs-copyFromLocaltest.log/hdfs/三、运行mapred/bin/hadoopjarcontrib/streaming/hadoop-streaming-0.20.203.0.jar-file/path/map.py-file/path/red.py-mappermap.py-reducerred.py-input/path/test.log-output/path/通过界面查看任务状态Python快速构建数据分析模块ComETL软件地址::赵修湘极少的代码量,几万行吧!类似系统SqoopDataXOozieComEtl配置样例etl_op={run_mode:'day',delay_hours:2,jobs:[{job_name:job1,analysis:[{'etl_class_name':'ExtractionEtl','step_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*fromtest.a2limit30',},],transform:[{'etl_class_name':'TransformEtl','step_name':'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':'hhxxttxs','db_db':'test'}],'db_path':'test.a2','pre_sql':[],'post_sql':[],'data_load_type':'SplitLoad','data_field':'a|b'},]}}Pig内嵌JPython实现PageRank算法JPython+pig代码实现演示•Pydoop-PythonAPIforHadoopMapReduceandHDFS••Happy-•datafu-Pig算法库linkedin•总空间300T以上,每日新增数据2T•20+服务器的Hadoop/hive计算平台•单个任务优化从7个小时到1个小时•每日Hive查询1200+•每天处理3000+作业任务•每天处理10T+数据集群资源利用率Page40Hadoop集群监控Cacti•默认Cacti模板太少•增加模板•我们的模板磁盘IO内存详情单个内核使用CPU总和及IOWaitJMX支持监控HadoopHAProxy+Hive网络拓扑QueriesHAProxyHAProxyHiveHiveHiveHiveHadoopHAProxy+Hive高可用集群数据平台技术路线发展PythonHadoop最佳实践•通过TornadoNginx接受日志•通过Scribe同步数据•使用Python编写加载和清洗脚本•使用ComEtl通过Hive做ETL•参考HappyEtl,Pydoop编写PythonStreaming•使用CronHub做定时调度•使用phpHiveAdmin提供自助查询•使用Mysql存储中间结果•通过Tornado+highcharts/gnuplot提供报表展现•使用Python+NagiosCactiGanglia监控集群•