设为首页 收藏本站
查看: 1108|回复: 0

[经验分享] Hadoop Ecosystem解决方案---数据仓库

[复制链接]

尚未签到

发表于 2015-7-11 11:31:50 | 显示全部楼层 |阅读模式
个人总结的一套基于hadoop的海量数据挖掘的开源解决方案.



BI系统:
Pentaho

pentaho
是开源的BI系统中做得算顶尖的了.
提供的核心功能如下:


     报表功能:  可视化(client,  web)的报表设计.
    分析功能: 可以生成分析视图,作数据作动态分析.
     Dashboard功能:  可以定制动态图表(image/flash)页面.
     调度功能:  可对指定的任务进行crontab式调度. e.g.:  定期发送日/周/月报
     工作流:  任意组合复杂的任务流程.
    ETL:  原生提供在各种数据库之间进行数据提取/转换/导入,可以自行扩展数据源.
     webservice接口:  可由任意外部程序进行调用.可以很好的结合进SOA架构.







海量数据收集系统

     推荐我的开源项目Cloudscribe:  http://code.google.com/p/cloudscribe.

     特点:  CAP特征: 弱C强A强P.

    与zookeeper集成,统一的组管理功能.





数据仓库

Hive VS. Cloudbase VS.  Pig

Pig:

     优点:  特定场景下使用性能较好.发展趋势良好

     缺点:  生僻的语法难以入手.

Cloudbase:  

     缺点:  设计过于简单,性能一般.

     优点:  完全遵照SQL规范.比较容易上手.适合入门级使用.

Hive:

     优点:  设计较好.关注点分离到位.并在不断演化中.发展趋势良好

     缺点:  稍微有别正统SQL.



综合来讲,个人推荐Hive.



基础存储和计算框架


Hadoop  MapReduce:

     如果选择Hive,  就基本绑定了Hadoop  MapReduce.



Hadoop HDFS VS  KFS

    KFS采用C++实现.HDFS采用Java,与Hadoop整个生态系统结合紧密. 从效率上来讲, KFS要略胜一筹.  





综合考虑,个人还是推荐HDFS.



Hadoop当前有3种版本:

     官方版本 &  Yahoo版本 &  Cloudera版本



个人推荐熟手研究并采用Cloudera的版本.  Cloudera的版本提供了一些很好的拓展机制.并且也是开源的.





管理平台

     推荐cloudera Hadoop  desktop.

     它提供了一个针对hadoop的统一管理平台. 可基于WEB进行文件系统操作,MapReduce Job管理,提交,浏览. 还有监控图表功能.



监控平台

     推荐采用Ganglia对hadoop进行监控.结合Nagios进行告警.









拓展话题

关于hadoop的部署:

    分为两种情况:

             即时架构:  

                 可采用捆绑VM的方式,例如Cloudera为Amazon EC2制作的AMI. 此方案适合instant架构, 适合在租用计算的场景. 数据不是locality的.

             稳定架构:  

                固定的集群,locality计算.部署方案:

                    1).  可以针对不同配置采用带本地缓存+autofs的NFS统一部署方案.

                    2).  软件分发.

             配置注意事项:

                namenode: 带RAID,多磁盘存储文件系统元信息.

                secondary  namenode与namenode等同配置(尤其是内存).

                 namenode与jobtracker分离.

                datanode:  不带RAID,  双网卡: 一个用于内部数据传输,一个用于外部数据传输.

                 tasktracker与datanode配对.





hadoop的运营核心问题

    Part1:  HDFS系统

         namenode:

             资源限制:

                 由于文件系统元信息是全量存放在namenode.所以文件数量是有上限的.

                 同时,某datanode意外失效后,其所有block都会在namenode中待备份队列中排队,也会临时占用很多内存.



             负载限制:

                 随着集群规模的增长带给namenode更多负载:

                    1.  client与namenode之间的元信息操作;

                    2.  namenode与datanode之间的通信.

                 所以说,集群规模也是有上限的.   

         

             对于庞大的hadoop集群,重启恢复时间也会非常缓慢, 所以, 尽量存储较大的文件.



             解决方案:

                 垂直扩展:  

                    1.  配置更好的硬件,网络. 优化单机程序性能.(Google  GFS也做过一段这样的努力).

                    2.  功能垂直分离:  通过功能垂直划分来构建多个专有master.(Google GFS同样做过类似方案)

                     垂直扩展总终究会面临极限.

                 水平扩展:

                     通过在master前端引入一个Router,  来虚拟出一个更抽象的文件系统namespace, Router后端挂接多个Hadoop Cluster.(Google GFS也作过类似方案).



             namenode的单点失效(SPOF)问题:

                 解决方案

                     namenode多元数据目录,  配备secondary  namenode:

                         一致性:  延迟一致.

                         可靠性:  有少许丢失.

                        failover:  手工.

                         可用性: 故障恢复时间: 1 ~ 2小时.

                         性能:  无损失

                         复杂性:

                    Linux Heartbeat + TCP Bonding + DRBD网络RAID:

            一致性:  可调节,可完全一致.

            可靠性:  可调节,可完全一致.

            failover:  自动.

            可用性:  自动切换.  故障恢复时间: 0~30min

            性能:  有损

                         复杂性:  中等

                     Paxos分布式仲裁方案(hadoop +  bookkeeper + zookeeper):


                         一致性:  理论完全一致.

            可靠性:  理论完全一致.

            failover:  自动.

            可用性:  自动切换.  故障恢复时间: 0~30min

            性能:  较少损

                        复杂性:



         DataNode:

            文件存储目录结构, IO Handler数量, ulimit设置等.



    Part 2:  MapReduce

         意外非预期故障导致Job失效:

        磁盘满,只读磁盘等. 解决方式是采用0.21之后的health.check脚本进行定期检测和黑名单上报.

                 Job恢复: 采用0.19之后原生提供的job recover机制.

         JobTracker单点问题:

        hadoop后续版本准备把JobTracker与zookeeper结合.





高级优化措施

     改造KFS,采用UDT传输协议.加速高带宽时延积下的网络传输.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85511-1-1.html 上篇帖子: hadoop单机安装 下篇帖子: Hadoop Snappy安装错误锦集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表