一、高性能计算
目前自己知道的高性能计算工具,如下所示:
1、Hadoop生态系统的功能以及对应的开源工具,如下所示:
(1)海量数据怎么存,当然是用分布式文件系统——HDFS。
(2)数据怎么用呢,分析、处理MapReduce框架,让你通过编写代码来实现对大数据的分析工作。
(3)非结构化数据(日志)收集处理——Fuse、WebDAV、Chukwa、Flume和Scribe。
(4)数据导入HDFS中,RDBMS也可以加入HDFS的狂欢了——HIHO、Sqoop。
(5)MaoReduce太麻烦,用熟悉的方式操作Hadoop里的数据——Pig、Hive、Jaql。
(6)让你的数据可见——Drilldown、Intellicus。
(7)用高级语言管理你的任务流——Oozie、Cascading。
(8)Hadoop自己的监控管理工具——Hue、Karmasphere、Eclipse Plugin、Cacti、Ganglia。
(9)数据序列化处理与任务调度——Avro、ZooKeeper。
(10)更多构建在Hadoop上层的服务——Mahout、Elastic Map Reduce。
(11)OLTP存储系统——HBase。
(12)基于Hadoop的实时分析——Impala。
2、Hadoop常用项目介绍
(1)Apache Hadoop
Hadoop是一个大数据处理框架,它可用于从单台到数以千计的服务器集群的存储和计算服务。HadoopDistributed File System (HDFS) 提供了能够跨越多台计算机的大数据存储服务,而MapReduce则提供了一个并行处理的框架。它们的思想源自Google的MapReduce和Google File System(GFS)论文。详细参见:http://hadoop.apache.org/
(2)Apache Ambari
Ambari是一个对Hadoop集群进行监控和管理的基于Web的系统。目前已经支持HDFS,MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop等组件。详细参见:http://ambari.apache.org/
(3)Apache Cassandra
Cassandra是一个分布式的NoSQL数据库。它基于multi-master模式,无单点失败,具有可扩展性。最早由Facebook开发用于存储收件箱等简单格式数据,后开源,被用于Twitter等知名网站。详细参见:http://cassandra.apache.org/
(4)Apache Hive
Hive是 一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类似SQL一样的查询语言HiveQL来管理这些数据。详细参见:http://hive.apache.org/
(5)Apache Pig
Pig是一个基于Hadoop的大数据分析平台,它提供了一个叫PigLatin的高级语言来表达大数据分析程序。详细参见:http://pig.apache.org/
(6)Apache Avro
Avro是一个数据序列化系统。它提供了丰富的数据结构类型,快读可压缩的二进制数据格式,存储持久数据的文件容器,远程过程调用等。详细参见:http://avro.apache.org/
(7)Apache Chukwa
Chukwa是一个用于监控大型分布式系统的的数据采集系统。它构建于Hadoop的HDFS和Map/Reduce框架之上,包含了一系列用于数据监控,分析和展示的灵活的强大工具集。它为日志系统提供了一整套解决方案。详细参见:http://chukwa.apache.org/
(8)Apache Drill
Drill是一个对大规模数据集进行交互式分析的分布式系统。它是Google的Gremel的开源实现。详细参见:http://incubator.apache.org/drill/
(9)Apache Flume
Flume是一个高可靠的分布式海量日志采集,聚合和传输系统。它来源于Cloudera开发的日志收集系统。详细参见:http://flume.apache.org/
(10)Apache HBase
HBase是一个分布式的,面向列的数据库。它基于Hadoop之上提供了类似BigTable的功能。详细参见:http://hbase.apache.org/
(11)Apache HCatalog
HCatalog是基于Hadoop的数据表和存储管理服务,提供了更好的数据存储抽象和元数据服务。详细参见:https://hive.apache.org/hcatalog/
(12)Apache Mahout
Mahout是一个机器学习领域的经典算法库,提供包括聚类,分类,推荐过滤,频繁子项挖掘等。详细参见:http://mahout.apache.org/
(13)Apache Oozie
Oozie是一个工作流调度系统,用于管理Hadoop里的job。它可以把多个Map/Reduce作业组合到一个逻辑工作单元来完成指定目标。详细参见:http://oozie.apache.org/
(14)Apache Sqoop
Sqoop是一个Hadoop和关系型数据库之间的数据转移工具。可将关系型数据库中的数据导入到Hadoop的HDFS中,也可将HDFS中的数据导进到关系型数据库中。详细参见:http://sqoop.apache.org/
(15)Apache ZooKeeper
ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供包括配置维护,名字服务,分布式同步和组服务等功能。Hadoop的管理就是用的ZooKeeper。详细参见:http://zookeeper.apache.org
(16)Apache Giraph
Giraph是一个高可伸缩的迭代式图处理系统。它现在用于分析Facebook中的用户的社交关系。Giraph相当于Google图处理架构Pregel的开源版本。详细参见:http://giraph.apache.org/
(17)Apache Accumulo
Accumulo是一个可靠的,可伸缩的,高性能排序分布式的Key-Value存储解决方案。它基于Google的BigTable设计思路。详细参见:http://accumulo.apache.org/
(18)Apache S4
S4是一个可扩展的,分布式的流数据实时处理框架,最早由Yahoo开发并开源。与Twitter的Storm类似。详细参见:http://incubator.apache.org/s4/
(19)Apache Thrift
Thrift是一个跨语言的服务开发框架。用它可让你的服务支持多种语言的开发,并可用代码生成器对它所定义的IDL定义文件自动生成服务代码框架。它最早由Facebook开发并开源出来。 详细参见:http://thrift.apache.org/
(20)Impala
Impala采用与Hive相同的元数据、SQL语法、ODBC驱动程序和用户接口(Hue Beeswax),这样在使用CDH产品时,批处理和实时查询的平台是统一的。目前支持的文件格式是文本文件和Sequence Files(可以压缩为Snappy、GZIP和BZIP,前者性能最好)。其他格式如Avro、RCFile、LZO文本和Doug Cutting的Trevni将在正式版中支持,官方测试速度是Hive的3~90倍。详细参见:http://www.cloudera.com/content/cloudera/en/products-and-services/cdh/impala.html
(21)Nutch
最后,得提一下Apache Nutch开源网络爬虫系统。Hadoop最早是为Nutch服务而诞生的,即为大规模的网络爬虫系统提供分布式存储和计算服务。详细参见:https://nutch.apache.org/
说明:
开源的搜索引擎工具:Lucene,Nutch,Solr。
3、Hadoop应用场景
美国著名科技博客GigaOM的专栏作家Derrick Harris跟踪云计算和Hadoop技术已有多年时间,他也在最近的一篇文章中总结了10个Hadoop的应用场景,如下所示:
(1)在线旅游
你知道吗,目前全球范围内80%的在线旅游网站都是在使用Cloudera公司提供的Hadoop发行版,其中SearchBI网站曾经报道过的Expedia也在其中。
(2)移动数据
Cloudera运营总监称,美国有70%的智能手机数据服务背后都是由Hadoop来支撑的,也就是说,包括数据的存储以及无线运营商的数据处理等,都是在利用Hadoop技术。
(3)电子商务
这一场景应该是非常确定的,eBay就是最大的实践者之一。国内的电商在Hadoop技术上也是储备颇为雄厚的。
(4)能源开采
美国Chevron公司是全美第二大石油公司,他们的IT部门主管介绍了Chevron使用Hadoop的经验,他们利用Hadoop进行数据的收集和处理,其中这些数据是海洋的地震数据,以便于他们找到油矿的位置。
(5)节能
另外一家能源服务商Opower也在使用Hadoop,为消费者提供节约电费的服务,其中对用户电费单进行了预测分析。
(6)基础架构管理
这是一个非常基础的应用场景,用户可以用Hadoop从服务器、交换机以及其他的设备中收集并分析数据。
(7)图像处理
创业公司Skybox Imaging 使用Hadoop来存储并处理图片数据,从卫星中拍摄的高清图像中探测地理变化。
(8)诈骗检测
这个场景用户接触的比较少,一般金融服务或者政府机构会用到。利用Hadoop来存储所有的客户交易数据,包括一些非结构化的数据,能够帮助机构发现客户的异常活动,预防欺诈行为。
(9)IT安全
除企业IT基础机构的管理之外,Hadoop还可以用来处理机器生成数据以便甄别来自恶意软件或者网络中的攻击。
(10)医疗保健
医疗行业也会用到Hadoop,像IBM的Watson就会使用Hadoop集群作为其服务的基础,包括语义分析等高级分析技术等。医疗机构可以利用语义分析为患者提供医护人员,并协助医生更好地为患者进行诊断。
三、YARN
记得1.5年前的时候,首次接触Hadoop,那个时候Hadoop 2.X版本还没有出来,Spark也没有现在这么热。现在,Hadoop 2.X都出来快一年了,开源软件的发展速度之快,令人惊叹。以前Hadoop的学习都是比较零散的,不够系统,现在决定系统地、深入地学习Hadoop。掌握其精髓所在,即软件的工作原理和设计理念,而不忙于跟风,要深入地学习开发和运维,而不是盲目地追新,做安装卸载这样的重复性工作。总之,打牢HDFS和MapReduce基础,根据需要,逐步学习Hadoop的整个生态系统。
Hadoop 2.X最大的变化当然是YARN这个资源管理器了,或者说Hadoop操作系统了。YARN是Hadoop 2.0及以上版本的下一代集群资源管理和调度平台,支持多种计算框架,不仅支持MapReduce计算框架,还可以支持流式计算框架、图计算框架、实时/内存计算框架等,极大地扩展了Hadoop的使用场景,提高了Hadoop集群的利用效率。
说明:
集群资源管理和调度平台,除了YARN之外,还有Corona和Mesos等。
四、DRCP(Distributed Recommend Computing Platform)
1. Introduction
DRCP is a Distributed Machine Learning Platform based on Mahout,the functions are Distributed Storage and Distributed Computing, which is usedto scientific research and learning.
2. Topology
3. Software
(1)jdk-1.7.0
(2)hadoop-0.20.2
(3) mahout-0.5.0
(4)ubuntu-12.04
五、开发运维
最近在实验室搭建了一个4台Hadoop集群,在上面部署了分布式机器学习Mahout这个软件,我们的目的主要是为了做大数据推荐算法,提供一个生产平台。当然,4台Hadoop集群是远远不够的,以后会考虑升级的。通过这个真实的生产平台,提高MapReduce应用开发的能力,Hadoop和Mahout二次开发的能力,以及Hadoop运维的能力(调优)。打算在DRCP上开发我们的大数据推荐算法类库——Conquer,把一些经典的推荐算法,机器学习算法等,还有我们的研究成果MapReduce化之后融入到Conquer之中,到时候会开源的。
1、DRCP的升级
2、DRCP的运维
[11] Hadoop应用场景: http://www.ciotimes.com/infrastructure/syjq/67136.html