分布式系统一点探索

       对于分布式系统这样一个复杂领域,首先要清楚其概念,才能从总体角度有个把握,才好深入

去不断了解。

       google搜索引擎需要对海量数据进行离线实时计算,海量数据单机已经无法进行存储、计算。

单机不行那就用多台PC构成分布式来应对海量存储、海量计算,想法厉害结果人还实现了。

       应对海量数据存储,海量数据计算,开发了海量分布式文件系统GFS,分布式数据库BigTable

,分布式计算程序MapReduce,分布式协调程序Chubby。

       Google在03至06年发表了著名的三大论文——GFS、BigTable、MapReduce,用来实现一个

大规模的管理计算系统。确实远远领先于业界,真黑科技,三篇论文值得反复看。

       开源界根据google论文实现了,分布式文件系统HDFS对应GFS,分布式数据库HBase对应BigTable,

分布式计算程序MapReduce对应MapReduce,分布式协调程序Zookeeper对应Chubby。对于这些

详细架构设计、实现网上解读很多,可以去搜索学习。

        HDFS本身目的是为了分布式存储文件,理解他的话可以把它想象为Ext、NTFS等本地文件系统

,有读、写,删除等操作,实际工程中可以从本地文件系统拷贝进HDFS,可以读取数据库写进HDFS

,可以接收消息队列数据写进HDFS。

       为了方便不会编程人员使用分析数据,又搞出了Hive通过sql方式访问使用数据,但底层还是HDFS、

MapReduce。

       排序是互联网程序很重要用途,搜索引擎是将质量最高文档排在前,个性化推荐系统是将与用户

最相关内容排在最前,MapReduce最早就是Google根据PageRank等多个因素得出文章质量排序。学

大数据第一个程序一般就是WordCount,WordCount本身就是计算文本出现次数,根据次数排序。

       研究Hadoop不能止于WordCount,要找个实际问题,例如:知乎粉丝最高的是谁?博客园粉丝

最多是谁?分数最高是谁?这些用单机计算都是很难得,首先抓取知乎、CSDN数据,将数据写入HDFS

,写MapReduce程序统计用户粉丝数,按粉丝数、分数排序,将结果写入文件,就可以得出粉丝最多

是谁,分数最高是谁了。

       大数据学习可以通过一些实际问题,将这些工具用起来,总是看或者只运行下WordCount的话学习

还是会慢的。每天跟搞大数据的打交道,还是要深入了解下,不然总提些很难或不能实现需求还是挺尴

尬的。

      

微信搜索:debugme123

        扫描二维码关注:

posted @ 2017-11-21 10:42  杉枫  阅读(304)  评论(0编辑  收藏  举报