hadoop基础----hadoop理论----Hadoop简介

                                        <h1><span><span style="font-size: 24px; color: rgba(255, 0, 0, 1)">hadoop是什么?</span></span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h1><div><span><br></span></div><p><span style="font-size: 18px">(1)Hadoop就是一个分布式计算的解决方案,也就是帮助我们把 一个任务分到很多台计算机来运算。</span></p><p><span style="font-size: 18px"><br>(2)Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。</span></p><p><span style="font-size: 18px">Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理)</span></p><p><span style="font-size: 18px">Hadoop的数据来源可以是任何形式,在处理半结构化和非结构化数据上与关系型数据库相比有更好的性能,具有更灵活的处理能力,不管任何数据形式最终会转化为key/value,key/value是基本数据单元。用函数式变成Mapreduce代替SQL,SQL是查询语句,而Mapreduce则是使用脚本和代码,而对于适用于关系型数据库,习惯SQL的Hadoop有开源工具hive代替。</span><br><br></p><p><br></p><h1><a></a><span><span style="font-size: 24px; color: rgba(255, 0, 0, 1)">hadoop能做什么?</span></span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h1><div><span><br></span></div><h2><a></a><span style="font-size: 18px; color: rgba(255, 102, 0, 1)">hadoop可以解决运算时间长等问题</span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h2><div><span><span style="font-size: 18px">举例来说,我之前有一个运算任务,是对比几个网站之间的数据。</span></span></div><div><span><span style="font-size: 18px">假设每个网站有5W条数据,2个网站之间需要比较25W次。随着网站的增加,比较次数增长很快。</span></span></div><div><span><span style="font-size: 18px">如果用1台机子来进行运算,即使用上多线程,因为单机的性能瓶颈,可能需要5天。</span></span></div><div><span><span style="font-size: 18px">但是我们如果用2台机子来运算,可能需要2.5天(理想状态),但是需要手动分割任务</span></span></div><div><span><span style="font-size: 18px">如果用5台,10台++就可能把时间缩短到1天 甚至几个小时即可运算完成。</span></span></div><div><span><span style="font-size: 18px"><br></span></span></div><div><span><span style="font-size: 18px">这就是分布式运算</span></span></div><div><span style="font-size: 18px"><br></span></div><div><span style="font-size: 18px">但是传统的分布式运算 &nbsp;需要我们人工的去切分任务。</span></div><div><span style="font-size: 18px">hadoop则 具有一定的策略,只要我们设置相关配置,只需要一次 输入这几个网站的所有数据 就可以帮助我们很方便的进行自动分类,任务分配,进行运算。</span></div><div><span><br></span></div><div><span><br></span></div><div><span><br></span></div><h2><a></a><span><span style="font-size: 18px"><span style="color: rgba(255, 102, 0, 1)">hadoop擅长日志分析</span></span></span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h2><div><span><span style="font-size: 18px">facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中&nbsp; &nbsp; 的 自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout!)<br></span></span></div><div><span><span style="font-size: 18px"><br></span></span></div><div><span><span style="font-size: 18px"><br></span></span></div><h2><a></a><span><span style="font-size: 18px"><span style="color: rgba(255, 102, 0, 1)">hadoop的运用场景</span></span></span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h2><div><span><span style="font-size: 18px"><br><br></span></span><span><span><span><span style="font-size: 18px">大数据量存储:分布式存储</span></span></span></span><span><span><span><span style="font-size: 18px">日志处理: Hadoop擅长这个</span></span></span></span><span><span><span><span style="font-size: 18px">海量计算: 并行计算</span></span></span></span><span><span><span><span style="font-size: 18px">ETL:数据抽取到oracle、mysql、DB2、mongdb及主流数据库</span></span></span></span><span><span><span><span style="font-size: 18px">使用HBase做数据分析: 用扩展性应对大量的写操作—Facebook构建了基于HBase的实时数据分析系统</span></span></span></span><span><span><span><span style="font-size: 18px">机器学习: 比如Apache Mahout项目</span></span></span></span><span><span><span><span style="font-size: 18px">搜索引擎:hadoop + lucene实现</span></span></span></span><span><span><span><span style="font-size: 18px">数据挖掘:目前比较流行的广告推荐</span></span></span></span><span><span><span><span style="font-size: 18px">大量地从文件中顺序读。HDFS对顺序读进行了优化,代价是对于随机的访问负载较高。</span></span></span></span><span><span><span><span style="font-size: 18px">数据支持一次写入,多次读取。对于已经形成的数据的更新不支持。</span></span></span></span><span><span><span><span style="font-size: 18px">数据不进行本地缓存(文件很大,且顺序读没有局部性)</span></span></span></span><span><span><span><span style="font-size: 18px">任何一台服务器都有可能失效,需要通过大量的数据复制使得性能不会受到大的影响。<br></span></span></span></span><span><span><span><span style="font-size: 18px">用户细分特征建模</span></span></span></span><span><span><span><span style="font-size: 18px">个性化广告推荐</span></span></span></span><span style="font-size: 18px"><span><span><span>智能仪器推荐</span></span></span><br></span></div><div><span><span style="font-size: 18px"><br></span></span></div><h2><a></a><span><span style="font-size: 18px"><span style="color: rgba(255, 102, 0, 1)">hadoop的一些案例</span></span></span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h2><div><span><span style="font-size: 18px"><br></span></span><ul><li><a href="http://www.aboutyun.com/thread-5725-1-1.html" rel="noopener nofollow"><span style="font-size: 18px">面向智能交通的大数据和英特尔® 智能系统解决方案</span></a></li><li><a href="http://www.aboutyun.com/thread-5724-1-1.html" rel="noopener nofollow"><span style="font-size: 18px">物联网商机和技术挑战(英特尔)</span></a></li><li><a href="http://www.aboutyun.com/thread-5712-1-1.html" rel="noopener nofollow"><span style="font-size: 18px">大数据在医疗行业的应用</span></a></li><li><span style="font-size: 18px"><a href="http://www.aboutyun.com/thread-5689-1-1.html" rel="noopener nofollow">英特尔IT开源混合云</a></span></li></ul><div><br></div></div><div><br></div><div><br></div><div><br></div><h1><a></a><span style="color: rgba(255, 0, 0, 1)">hadoop生态圈</span><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h1><div><span style="font-size: 18px">我们经常一提到hadoop,就会听别人说到Hive, Pig, HBase, Sqoop, Mahout, Zookeeper等等。</span></div><div><span style="font-size: 18px">其实这些项目都是hadoop的一些相关项目。</span></div><div><span style="font-size: 18px">它们有些是hadoop的组件,有些是新的hadoop框架(基于hadoop原理的架构)。</span></div><div><span style="font-size: 18px">尽管Hadoop因MapReduce及其分布式文件系统(HDFS,由NDFS改名而来)而出名,但Hadoop这个名字也用于一组相关项目的统称,这些相关项目都使用这个基础平台进行分布式计算和海量数据处理。<br></span></div><div><span style="font-size: 18px"><br></span></div><div><span style="font-size: 18px">下面是一些常用的组件:</span></div><div><span style="font-size: 18px">还有一些新的组件框架可查看</span><br></div><div><span style="font-family: &quot;微软雅黑&quot;; color: rgba(202, 0, 0, 1)"><span style="font-size: 18px; line-height: 30.796875px"><a href="http://blog.cloudera.com/blog/2013/01/apache-hadoop-in-2013-the-state-of-the-platform/" rel="noopener nofollow">http://blog.cloudera.com/blog/2013/01/apache-hadoop-in-2013-the-state-of-the-platform/</a></span></span><br></div><div><span style="font-size: 18px">Common<br>&nbsp; &nbsp; 一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)。</span></div><div><span style="font-size: 18px"><br>Avro<br>&nbsp; &nbsp; 一种支持高效、跨语言的RPC以及永久存储数据的序列化系统。</span></div><div><span style="font-size: 18px"><br>MapReduce<br>&nbsp; &nbsp; 分布式数据处理模型和执行环境,运行于大型商用机集群。</span></div><div><span style="font-size: 18px"><br>HDFS<br>&nbsp; &nbsp; 分布式文件系统,运行于大型商用机集群。</span></div><div><span style="font-size: 18px"><br>Pig<br>&nbsp; &nbsp;一种数据流语言和运行环境,用以检索非常大的数据集。Pig运行在MapReduce和HDFS的集群上。 &nbsp; &nbsp;&nbsp;</span></div><div><span style="font-size: 18px">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>Hive<br>&nbsp; &nbsp;一个分布式、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。</span></div><div><span style="font-size: 18px"><br>HBase<br>&nbsp; &nbsp; 一个分布式、按列存储数据库。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。</span></div><div><span style="font-size: 18px"><br>ZooKeeper<br>&nbsp; &nbsp; 一个分布式、可用性高的协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。</span></div><div><span style="font-size: 18px"><br>Sqoop<br>&nbsp; &nbsp; 在数据库和HDFS之间高效传输数据的工具。</span></div>