你好,游客 登录 注册 搜索
背景:
阅读新闻

云上Hadoop之最佳实践

[日期:2016-06-15] 来源:云栖团队博客  作者:封神 [字体: ]

  引言

  当今想提高竞争力,大数据分析是一个很多的途径。每个行当都会有很多企业在做,那怎么做的精。从市场、产品本省的优化、后续的服务都需要数据的支持。很多企业数据分析是其公司灵魂的部门。

  本篇是实践篇,主要讲述hadoop的一些处理场景,一些大致的架构,特别是在云上的一些最佳实践。本篇是建立在阿里云E-MapReduce及整个阿里云体系之上的。

  本篇描述场景肯定有不全,但力求覆盖最多的场景,如果读者有一些其它好的场景,欢迎直接联系笔者。

  混合使用包年及按需计费 节约成本

  数据都存在热、冷的差异。一般建议把冷数据存放在OSS中,热数据放在本地的HDFS中

晚上00:00--6:00按需运行,运行完成后释放集群,节约成本。晚上ecs水位低,一般不会出现申请不到大集群的情况

Hadoop

  离线处理-用户行为分析

  目前最火莫过于直播了,直播会发生很多的用户行为数据,包括网页的浏览,按钮的点击等记录。在此场景中,服务端会把这些信息存储在OSS中,再启动E-MapReduce中的hive脚本分析这些数据,如:统计pv、uv,再把每个链接的访问情况存储在RDS中,最后通过报表系统展示给运营同学。

  离线处理+在线服务-多维度统计信息

  比如考虑到这样的一个场景,车载APP会实时上传汽车的物理指标,包括车速、发动机功耗、电池电压等,这些信息首先存储到EMR Hbase中,再启用E-MapReduce的hive或者mapreduce或者spark离线分析,按照城市的粒度,即分析出来某个城市某个时段的车辆出行率、出行里程平均数、车速平均值、平均油耗、出行车辆数、平均怠速时间、剧烈驾驶次数。这些信息直接又存放到Hbase中,提供给用户查询。

  在线离线混合

  我们有一个网站,有多用户浏览。这些日志信息用logService接受。存入到OSS中,启动E-MapReduce离线分析。比如,页面的UV、从A页面到B页面的调转,提供运营同学数据化支持。另一方面,用户不在不断浏览过程中,我们希望根据浏览情况实时自动推荐用户内容,E-MapReduce spark Streaming就实时接收 logService的数据,再结合spark mllib的算法。自动算出推荐值,存储到RDS中,前端用户浏览时推荐的内容会实时发生变化。

  查找问题性能优化

  通过ganglia等监控工具,查看作业运行的cpu、磁盘、网络、内存情况。 如果任何一个有瓶颈,则可以选择更好的硬件。因为云上就是灵活。 对于磁盘可以选用全SSD云盘,cpu、内存可以增加规格

  作业本身,最基本通过多次jstack查看栈的位置,判断瓶颈点

  Hadoop影响性能的点

  避免小文件,建议OSS或者HDFS存储文件的大小为1G左右,因为每个Task处理60s左右,则按照处理速度20-30MB/s,则文件大小1G比较合适。

  数据压缩 -- 减少存储空间 -- 减少存储成本 -- 减少数据传输时间 -- 降低磁盘IO

  使用hive on tez

  使用spark等新的计算引擎,选择内存型的实例





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款