1、欢迎光临 并行处理技术和GIS大数据的碰撞 2014 地理学 林鹏 指导老师 张晓祥大数据处理大数据GIS与大数据展望未来内容提要大数据大数据-除了上帝,任何人都必须用数据来说话除了上帝,任何人都必须用数据来说话 由于浩瀚的数据量及复杂的处理方式,天文学和基因学率先创造出了“大数据”这一概念,并迅速被广大学者们所接受。自然2008年大数据专刊大数据的起源一张哈勃望远镜捕捉下来的高清相片,高达数十个G字节 一个人体内 400万亿个细万亿个细胞,每个细胞核都由胞,每个细胞核都由46种染色种染色体组成,而构成染色体的体组成,而构成染色体的DNA又由又由ATGC四种核酸排列组成。四种核酸排列组成。早期
2、,这个概念是指需要处理的信息量过大,已经超出了一般电脑在处理数据时所能使用的内存量。后来,大数据不再仅用来描述大量的数据,还涵盖了处理数据的速度。现在,对于“大数据”(Big data)研究机构Gartner给出了这样的定义:“大数据”是需要新处理模式才能具有的更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的定义 百度每天处理的数据量将近100个PB,相当于5000个国家图书馆的信息量的总和大数据洪流 Facebook每天更新的相片超过1000万张,每天人们发送的“赞”或者书写的评论超过三十亿次。Twitter每天发布的微博超过4亿条。2013年6月,前中情局
3、(CIA)职员爱德华斯诺顿将两份绝密资料交给英国卫报和美国华盛顿邮报。2013年6月5日,英国卫报先扔出了第一颗舆论炸弹:美国国家安全局有一项代号为“棱镜”的秘密项目,要求电信巨头威瑞森公司每天上交数百万用户的通话记录。2013年6月23日,斯诺顿抵达莫斯科棱镜门事件名称:Utah Data Center(犹他数据中心)全称:Intelligence Community Comprehensive National CybersecurityInitiative Data Center(情报体系综合性国家计算机安全计划数据中心)所属机构:NAS(美国国家安全局)Utah Data Center
4、大数据海量数据大数据与海量数据 =大数据海量数据 大数据是人们在大规模数据的基础上可以做到的事情,而这些事情在小规模数据的基础上是无法完成的。大数据是人们获得新的认知、创造新的价值的源泉;大数据是改变市场、组织机构,以及政府与公民关系的方法。我们对大数据的认知处理大数据Processing of large data 全体数据模式 我们不需要动辄使用超级计算机,而应试着结合使用更多计算机系统。格蕾丝莫里霍珀(Grace Murray Hopper)(1906-1992)更多或者更大Google通过他天才的软件架构设计,把成千上万台普通的PC机做成了一个廉价大型的集群,用以处理他面向“星球”级别
5、的搜索服务。谷歌的廉价PC集群Google每天需要处理超过24PB的数据等于美国国家图书馆书籍总量的上千倍一个 Vs 一堆Hadoop(中文译名:海杜普)hadoop是一个分布式系统基础架构,是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框。用户可以在不了解分布式底层细节的情况下,开发分布式程序,从而充分利用集群的威力高速运算和存储。在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算。hadoop的应用范围Hadoop处理原理假设系统每秒处理4000个文件处理4千万个文件=10000秒约为2.7小时处理4千万个文件处理400万个文件处理40
6、0万个文件处理400万个文件切分成十台机器处理约为17分钟=约为17分钟=约为17分钟=结果合并输出Hadoop(中文译名:海杜普)Hadoop核心:HDFS和MapReduce.HDFS为海量的数据提供了存储 MapReduce为海量的数据提供了计算。HDFS是一种框架,MapReduce是一种模式,Hadoop是一个实现了MapReduce模式的开源的分布式并行框架结构。什么是 HDFS?Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它是一个高度容错性的系统,适合部署在廉价的机器上。同时他能提供高吞吐量的数据访问
7、,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS 集群组成Secondary NameNodeDataNodeDataNodeTaskTrackerTaskTrackerDataNodeTaskTrackerNameNode JobtrackerNameNode中记录了文件中记录了文件是如何被拆分成是如何被拆分成block以及以及这些这些block都存储到了那些都存储到了那些DateNode节点节点.NameNode同同时保存了文件系统运行的状时保存了文件系统运行的状态信息态信息.DataNode中存储的是被拆分的blocks.Se
8、condary NameNode帮助NameNode收集文件系统运行的状态信息.JobTracker当有任务提交到Hadoop集群的时候负责Job和task的调度.TaskTracker负责某一个task的执行.HDFS用户端NameNodeDataNodeMetadataDataNode数据1数据2用户DataNodeHadoop为每一个input split创建一个task调用Map计算,在此task中依次处理此split中的一个个记录(record)。map会将结果以key-value 的形式输出,hadoop负责按key值将map的输出整理后作为Reduce的输入,Reduce Tas
9、k的输出为整个job的输出,保存在HDFS上.什么是MapReduce?MapReduce原理 split1split2split3MapMapMapreducepartsortcopymergeHDFSreplicationMap:映射Reduce:约束(简化)Input HDFS Output HDFSHDFS Block1HDFS Block1Hadoop处理大数据的流程HDFS Block1HDFS Block1HDFS Block2HDFS Block2HDFS Block2HDFS Block3HDFS Block3HDFS Block3 Map Map MapreduceDATA
10、data data data data data datadata data data data data datadata data data data data datadata data data data data datadata data data data data datadata data data data data datadata data data data data datadata data data data data dataComputer clusterResultDatadatadatadataDatadatadatadataDatadatadatada
11、taDatadatadatadataHDFS Block14V特性Volume 数据量Velocity 速度Variety 多样性Value 价值数据量数据量 Volume根据统计,仅在根据统计,仅在2013年中国生产的数据年中国生产的数据就超过就超过0.8ZB(相当于(相当于8亿亿TB),当中有),当中有超过超过80%与空间位置有关。目前,各种与空间位置有关。目前,各种地图和地理位置紧密相关信息每年在数地图和地理位置紧密相关信息每年在数万万TB,而,而GIS软件每天处理的数据量就软件每天处理的数据量就会达到会达到200TB之多。之多。影像数据影像数据多样性 VarietyParcel Fab
12、ricFeature datasetFeature classMultipatchTopologyGeometric networkNetwork datasetTerrainTableViewRaster catalogRaster datasetMosaic datasetSchematic datasetRelationship classLAS datasettoolsetToolSpatial ETLScriptModelPython ToolboxAddress LocatorToolbox缺省属性值属性值取值域分割/合并方针连通性规则关联规则拓扑规则速度 Velocity并行处理
13、因子价值 Value“今天,地理空间信息被越来越多的企业认为是企业的战略资产。地理空间信息的处理、存储和分析已成为商务智慧的重要组成部分。”-Jack DangermondJack Dangermond,(杰克丹杰蒙德)ESRI的创始人,全球最大的GIS技术提供商。其在全世界有超过100万用户。Hadoop在在GIS 传统的GIS数据存储,大多依托于各种关系型数据库,但是数据库由于其在海量数据管理、高并发读写、难以扩展等方面,已经开始的制约了GIS的发展。而且关系型数据库一直在非结非结构化数据领域构化数据领域难有作为,这一点更是致命伤。GIS里面里面90%数据都是非结构化的数据都是非结构化的H
14、adoop在在GIS Hadoop以其高可靠性、高扩展性、高效性和高容错性,特别是在海量的非结构化或者半结构化数据上的分析处理优势,给我们提供了另外一种思路。Hadoop的核心算法就是“分而治之”,这个与GIS里面很多算法是相通的,GIS里面很多应用场景都是要去分析不同区域内的各种信息,把这样的计算放到Hadoop上,正好利用了Hadoop的分布式计算特性。特别是一直让GIS界最头痛的海量影像数据存储和分析,在Hadoop的分布式存储和分布式运算架构上,更是能够体现出Hadoop在GIS应用上的优势。Esri中国区首席咨询师中国区首席咨询师 卢萌指出卢萌指出:GIS Tools for Had
15、oop不仅在GIS与hadoop之间搭建起了一个桥梁,还定义和构建了一整套大空间数据分析的环境。Marwa Mabroukproduct manager at EsriGIS大数据处理:GIS Tools for HadoopGIS Tools for Hadoop GIS Tools for Hadoop是Esri推出的基于Hadoop上的一套完整的空间大数据量处理的环境,包含有一套工具、一套API和一系列的框架。此环境的推出,扩展在Hadoop上geomtry的类型和对空间数据的操作,让开发人员能够方便的在空间数据上构建MapReduce应用程序。SpatialFrameworkfor H
16、adoopGeoprocessing Toolsfor HadoopGIS Tools for Hadoop的组成Esri GeometryAPI for JavaAPI框架工具GIS Tools for Hadoop的组成操作系统:任意 linux 64bitJVM:JDK 1.6.0 以上Hadoop版本:1.0.0以上(0.23.x)Oozie:3.3.0 以上可选工具:eclipse 以及hadoop的插件ArcGIS 版本:ArcGIS 10.2 sp1以上GIS for Hadoop运行环境特别提醒:第一次安装oozie的时候必须要一个非常强劲的网络!GIS for Hadoop安
17、装步骤1 1 确保确保LinuxLinux上已安装上已安装sshssh以及以及rsyncrsync2 2 使用使用XMXMANAGERANAGER管理管理LinuxLinux,即为,即为LinuxLinux建立一个虚拟机进行远程操作建立一个虚拟机进行远程操作 3 3 利用利用XMXMANAGERANAGER将软件传到将软件传到LinuxLinux的服务器的服务器4 4 对对JDKJDK和和HadoopHadoop以及它们的环境变量进行配置以及它们的环境变量进行配置5 5 克隆三台计算机管理账户并重命名克隆三台计算机管理账户并重命名6 6 配置配置/etc/hosts/etc/hosts7 7
18、在在serve.1serve.1上进行配置上进行配置slave,Hive,Hiveslave,Hive,Hive的环境变量。的环境变量。8 8 在在hive-site.xmlhive-site.xml中配置元数据文件,并对中配置元数据文件,并对HiveHive进行测试进行测试9 SSH9 SSH无密码登陆配置无密码登陆配置10 10 对对HadoopHadoop进行登陆进行登陆formatformat格式化系统,格式化接收后并重启动格式化系统,格式化接收后并重启动11 11 查看报告查看报告案例:使用案例:使用 hadoop 做包含统计分析做包含统计分析 将 esri 提供的数据以及工具传到
19、上,通过 hive 的命令进行添加,如下:hive add jar/gistool/lib/spatial-sdk-hadoop.jar;Added/gistool/lib/spatial-sdk-hadoop.jar to class pathAdded resource:/gistool/lib/spatial-sdk-hadoop.jarhive add jar/gistool/lib/esri-geometry-api.jar;Added/gistool/lib/esri-geometry-api.jar to class pathAdded resource:/gistool/lib
20、/esri-geometry-api.jar案例:使用案例:使用 hadoop 做包含统计分析做包含统计分析 创建临时函数:create temporary function ST_Point as com.esri.hadoop.hive.ST_Point;create temporary function ST_Contains as com.esri.hadoop.hive.ST_Contains;案例:使用案例:使用 hadoop 做包含统计分析做包含统计分析 创建外部表:CREATE EXTERNAL TABLE IF NOT EXISTS earthquakes(earthquak
21、e_date STRING,latitude DOUBLE,longitudeDOUBLE,magnitude DOUBLE)ROW FORMAT DELIMITED FIELDS TERMINATED BY,LOCATION/var/hadoop/tmp/gistool/data/earthquake-data;CREATE EXTERNAL TABLE IF NOT EXISTS counties(Area string,Perimeter string,State string,County string,Name string,BoundaryShape binary)ROW FORM
22、AT SERDE com.esri.hadoop.hive.serde.JsonSerdeSTORED AS INPUTFORMAT com.esri.json.hadoop.EnclosedJsonInputFormatOUTPUTFORMATorg.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormatLOCATION/var/hadoop/tmp/gistool/data/counties-data;案例:使用案例:使用 hadoop 做包含统计分析做包含统计分析 查询测试:案例:使用案例:使用 hadoop 做包含统计分析做包含统计
23、分析 进行包含统计,如下:SELECT counties.name,count(*)cnt FROM countiesJOIN earthquakesWHERE ST_Contains(counties.boundaryshape,ST_Point(earthquakes.longitude,earthquakes.latitude)GROUP BY counties.nameORDER BY cnt desc;案例:使用案例:使用 hadoop 做包含统计分析做包含统计分析 结果如下展望未来大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了。2013年5月,马云在卸任阿里集团CEO的演讲上 指出 12306与淘宝对比12306淘宝GIS-Transforming our World数据为王凡是过去,皆为序曲未来无限GIS前途光明