转自杰的博客
介绍
(1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
(2)Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理),Hadoop的数据来源可以是任何形式,在处理半结构化和非结构化数据上与关系型数据库相比有更好的性能,具有更灵活的处理能力,不管任何数据形式最终会转化为key/value,key/value是基本数据单元。用函数式变成Mapreduce代替SQL,SQL是查询语句,而Mapreduce则是使用脚本和代码,而对于适用于关系型数据库,习惯SQL的Hadoop有开源工具hive代替。
(3)Hadoop就是一个分布式计算的解决方案.
Hadoop能做什么
hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。
大数据时代的到来,给GIS的创新发展带来了前所未有的机遇。本文对Hadoop和GIS进行了研究分析,提出了基于Hadoop的GIS大数据处理模型。试验结果显示,该模型能够扩充Hadoop的空间运算能力,对后期地理信息大数据挖掘和分析有一定的参考价值。
ArcGIS与Hadoop
随着ArcGIS 10.2版本的发布,一同推出的开源工具包GIS Tools for Hadoop,完美的诠释了海量空间数据与分布式运算的结合。
GIS Tools for Hadoop 是一个开源的工具包,它定义和构建了一整套空间分析的环境,在GIS与hadoop之间搭建起了一个桥梁。
从20世纪60年代至今,GIS已经迅速发展成了一个独特的研究与应用领域,并形成一个全球性的重要行业。
Esri这些年来,一直致力于研究GIS信息与数据的标准化,推出了ArcSDE这样的空间数据引擎,让空间数据与关系型数据库之间搭起了一个通路,可以让空间数据保存在主流的商业数据库中,使用每种DBMS所支持的标准SQL类型来管理数据,并且支持所有的空间数据类型(包括要素、栅格、拓扑、网络、地形、测量数据、表格数据,以及位置数据,例如地址、模型和元数据),而无需用户考虑DBMS的底层实现。
但是,空间数据更多的是像影像、TIN(Triangulated IrregularNetwork)这样的非结构化数据,而数据库中的查询语言,正如其名称的简写——SQL,就显示了它的僵化。所以急需新的,非关系型、非结构化的数据库和数据分析方法的出现。
Hadoop以其高可靠性、高扩展性、高效性和高容错性,特别是在海量的非结构化或者半结构化数据上的分析处理优势,给我们提供了另外一种思路。 Hadoop的核心算法就是“分而治之”,这个与GIS里面很多算法是相通的,GIS里面很多应用场景都是要去分析不同区域内的各种信息,把这样的计算放到Hadoop上,正好利用了Hadoop的分布式计算特性。特别是一直让GIS界最头痛的海量影像数据存储和分析,在Hadoop的分布式存储和分布式运算架构上,更是能够体现出Hadoop在GIS应用上的优势。
当我们数据量不够的时候,我们需要设计一套很复杂的算法,在样本数据中去探寻其中的规律,而且还要使用各种手段来保证数据的准确无误,但是当数据量足够大的时候,往往只需要一些很简单的算法就可以从海量的数据中得到满意的结果了。但是限于技术手段,特别是空间分析对计算资源的消耗,我们以前根本做不到基于如此庞大数据的分析。而放在hadoop上,可以利用Hadoop强大的分布式分析功能,来处理和分析更多的数据集。
比如在出租车辆定位的研究中,GPS数据每个1秒钟就将记录一条信息,信息的内容包括经纬度、海拔、时间、车速、方向等等,每辆车每天生成的数据量就高达8万多条,北京市的目前有出租车约为7万辆,也就是说每天生成GPS数据就高达60亿条记录。如果把这个信息的收集范围扩展到全国,年复一年,日复一日,那么收集上来的数据,将远远超出人们的想象。
这些数据如同地下的金矿,等着我们去发掘,有了这些数据,利用空间分析的方法,我们就可以计算出很多有意义的结果。如用户可以知道,在各种时段中,在何处打车最容易?出租车司机们可以知道在什么地方趴活最容易拉到客户,而保证最省油。运营公司可以知道在不同时间段出租车运营数量最少的区域,进行调整合理分配资源;交通部门可以根据出租车的时速来得到各道路的交通情况等等。
计算机和软件的处理是有限的,当数据量到达一定极限的时候,常规的手段就对这些庞大的数据无能为力了。这样就需要有新的技术来实现这种突破,以转变我们的处理手段。最能代表这种转变的,就是Hadoop的流行。
而GIS Tools for Hadoop的发布,让hadoop正式登上了空间分析的舞台。
目前GIS Tools for Hadoop只是迈出了小小的一步,实现了包括相交、包含、缓冲等常用的空间分析功能,并且与ArcGIS产品无缝的集成,可以在ArcGIS for Desktop中直接调用,并且将结果以空间信息的方式展现出来。但是还仅仅是开始,未来我们还期待着能够解决更多的问题,如GIS界最头疼的地图缓存切片生成和存储的问题、海量遥感影像的计算、大规模批空间插值、海量空间数据聚合、空间数据处理等等。
GIS Tools for Hadoop的发布表现了Esri始终关注IT界的热点技术,并努力为不同行业用户提供更多专业的支持。同时也是ArcGIS平台集成大数据一次很好的尝试。这个工具解决了Esri在大数据应用方面从无到有的问题,有着重要的意义。GIS Tools for Hadoop在未来还有很大的发展空间,期待在后面的版本中会增加对影像数据的支持,这样对GIS行业来说将有更加重要的应用。
ArcGIS提供Hadoop方面的项目
首先可以打开github中Esri的内容 https://github.com/Esri,然后在里面搜索 hadoop,会发现目前Esri在hadoop方面已经提供了四个项目。
1、spatial-framework-for-hadoop 基于hadoop的空间数据处理和分析框架,该框架允许开发者和数据科学家通过hadoop云计算平台来处理和分析空间数据。
2、gis-tools-for-hadoop 基于Hadoop的GIS工具箱,可以通过GIS工具对大数据进行空间分析。
3、geoprocessing-tools-for-hadoop 基于Hadoop的地理处理工具箱,提供了地理数据库和Hadoop之间数据存储转换功能,并且也实现了运行Hadoop工作流的功能。
4、hadoop-for-geoevent 是对ArcGIS GeoEvent功能的一个扩展,实现了GeoEvents数据在HDFS上的存储。
1. 安装操作系统
在虚拟机环境张安装Ubuntu 操作系统
2.Hadoop 安装与集群分布式配置
2.1创建HADOOP用户
如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :
接着使用如下命令设置密码,按提示输入两次密码:
可为用户增加管理员权限,方便部署,避免比较棘手的权限问题:
最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。
2.2更新APT
用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令: