Esri 卢萌谈 Hadoop 在 GIS 数据处理中的运用

  • 张月

2013 年 5 月 20 日

话题:语言 & 开发

在现代人的日常生活中,缺少不了地图的身影,而地图已经超越了简单的工具属性,它的价值正在逐步被大家挖掘出来,例如:通过 Nike+,你可以看到自己每天的运动路径和热量消耗、商家可以通过地图对消费者进行定向广告投放等。越来越多的互联网公司或个人开发者尝试通过结合地图去做更多不一样的事情,对于地图数据本身也有很多有意思的事情,InfoQ 借此机会采访了 Esri 的卢萌,听他谈谈在 GIS 数据是如何运用 Hadoop 进行并行处理的,他也会在 6 月 5~6 号的Esri 空间信息技术大会上对这个问题做分享。

InfoQ: 请您向 InfoQ 的读者做下自我介绍吧!

卢萌:我叫卢萌,2005 年大学毕业后就进入了 GIS 这个行业,碰巧的是 2005 年正是谷歌地图发布的那一年,各种WebGIS在中国开始大行其道,所以我应该算是国内做 WebGIS 比较早的那一拨人了。在这些年中,做了不少项目,后来进入了Esri 中国,目前在 Esri 中国政府行业技术部担任高级产品咨询师的职务,主要研究的方向是传统 GIS 领域中的空间分析、空间统计等技术,同时也对云 GIS、海量数据挖掘等新技术应用有过一定的涉猎。

InfoQ: 请问卢老师 GIS 领域目前国内外发展情况如何?

卢萌:借用 WEB 时代的说法,我们也把网络时代的 GIS 发展,分为 1.0、2.0 和正在迈向的 3.0 时代。

1.0 时代,GIS 是专业人士玩的东西,主要是通过一小批专业人士做出各种地图或者应用,然后通过网络发布到出去,广大的用户通过浏览器来查看地图,也就是一个人发布,大家来看。 2.0 时代是以交互为标志的时代,GIS 也是一样,在业界,Esri 最先推出的 ArcGIS Online 这类的平台,提出了空间信息共享和协作的概念,我们能够很轻易的获取到各种专业的空间数据,并且这些数据的来源除了专业机构,还有广大的使用。在这个平台中,每一个用户都成了空间信息的发布者,也是信息的享用者。

而未来的 3.0 时代,将以一种更加智能的方式来获取、使用空间信息,并且能够直接获取到我们需要的结果,而不仅仅是一堆地图和数据。3.0 时代是以服务为核心的时代。就像我们购买了一堆服务器,一堆软件,部署了各种环境,编写了很多代码,那么我们的目的是什么?是想要那些服务器?那些软件和那些代码吗?当然不是,我们是通过这些基础建设来解决我们的实际问题,获取需要的结果。3.0 的时代,我们更多的将这些基础建设、分析模型和处理过程托管到以网络为基础的云环境中,我们只需要提出问题,然后获取结果就可以了。

InfoQ:Hadoop 目前涉及的科学领域很多,不仅包含众所周知的互联网行业,也包括如能源开采、节能环保、生物医学等领域。请问卢老师,Hadoop 在 GIS(地理信息系统)这个领域有哪些典型的应用场景,又是如何实现呢?

卢萌:传统的 GIS 数据存储,大多依托于各种关系型数据库,但是数据库由于其在海量数据管理、高并发读写、难以扩展等方面,已经开始的制约了 GIS 的发展。而且关系型数据库一直在非结构化数据领域难有作为,这一点更是致命伤。世界上 90% 以上的数据都是非结构化的,GIS 里面大量数据如影像数据等,都是非结构化的。 而 Hadoop 以其高可靠性、高扩展性、高效性和高容错性,特别是在海量的非结构化或者半结构化数据上的分析处理优势,给我们提供了另外一种思路。 Hadoop 的核心算法就是“分而治之”,这个与 GIS 里面很多算法是相通的,GIS 里面很多应用场景都是要去分析不同区域内的各种信息,把这样的计算放到 Hadoop 上,正好利用了Hadoop的分布式计算特性。特别是一直让 GIS 界最头痛的海量影像数据存储和分析,在 Hadoop 的分布式存储和分布式运算架构上,更是能够体现出 Hadoop 在 GIS 应用上的优势。

InfoQ:Esri 公司推出开源环境“GIS Tools for Hadoop”,其中还包含了基于 Hive 的 UDF,这将给地理信息这个行业带来哪些新的机会呢?

卢萌:GIS Tools for Hadoop 是 Esri 推出的基于 Hadoop 上的一套完整的空间大数据量处理的环境,包含有一套工具、一套 API 和一系列的框架。此环境的推出,扩展在 Hadoop 上 geomtry 的类型和对空间数据的操作,让开发人员能够方便的在空间数据上构建 MapReduce 应用程序。

Hive 是由 Facebook 首先研发的一个基于 Hadoop 的数据仓库工具。可以将结构化的数据映射成数据表并提供类 SQL 的语言进行数据查询,适合于数据参考的统计分析。GIS Tools for Hadoop 扩展了 Hive 在 Esri Geometry API 上的应用,使用户可以通过 hive 进行空间数据的处理。

数据仓库一直都是一个比较热门的领域,而在空间数据库上构建数据仓库,进行数据挖掘,更是一个比较新的话题。一个单位中需要在海量空间数据上做分析有各种不同的人员,有工程师也有专业数据分析人员,他们之间的计算机知识层次不一。所以构建一套满足各种人员和程序需求的基础设施就很有必要。Hive 在维持 Hadoop 灵活性和扩展性的基础上提供类似关系型数据库的基本功能,在 Hadoop 文件系统上提供了方便的数据查询和管理功能。

GIS Tools for Hadoop 中包含了基于 Hive 的 UDF(User-Defined-Function)这一功能,可以让开发人员和数据分析人员能够构建面向业务的分析应用,在 GIS 中有很多特定的算法和模型,通过 UDF 都可以加入到 Hadoop 中去。这样看来,未来势必会使用它来定制开发和搭建各种面向业务的个性化工具和软件。

InfoQ: 既了解 GIS 又熟悉 Hadoop 开发,这样的人目前是不是比较稀缺?请您给大家一些学习和就业方向上的建议吧。

卢萌:虽然经过了这些年的发展,熟悉 GIS 的开发人员一直还是供不应求,而 Hadoop 在互联网上作为“大数据分析”的代名词,熟悉 Hadoop 的人员更是稀缺。据麦肯锡全球研究院的研究预测在未来 6 年,仅在美国就可能面临缺乏 14 万至 19 万具备深入分析数据能力人才的情况。

对于 Hadoop 来说,最大的优点就是开放性,因为它是开源的,所以每天有数以万记的程序员和爱好者在学习和研究 Hadoop 系统。作为一个新手,要学习 Hadoop,最重要的就是动手去操作,从安装部署到优化到开发,一步一步的掌握 MapReduce 编程方式和各种应用场景,了解 Hadoop 的实现原理和算法。当然我们还可以去阅读他提供的源码,这也是开源软件最大的好处。

学然后知不足,教然后知困。我们可以在一些社区或者博客上记录在学习过程中的点点滴滴,当有朝一日,回过头来看我们曾经走过的足迹,你会发现,在不知不觉中,当年的小树苗已经成长成为了参天大树。

虽然目前 IT 界主流的开发还是依托在关系型数据库上面的,但是我们可以在工作中去逐步推广 Hadoop 的思想和应用,去潜移默化的改变周围的环境,未来 Hadoop 前景一定是光明的。

InfoQ: 除了 Hadoop 外,GIS 还有其它并行计算的解决方案吗?

卢萌:从 ArcGIS 10.1 开始,ArcGIS for Server 变成了纯 64 位的架构,即不再支持 32 位操作系统。 另外在 ArcGIS 10.1 的 SP1 包中,提供了 ArcGIS 10.1 for Desktop—Background Geoprocessing (64-bit) 补丁包,实现 64 位后台地理处理,并且增加了新的“并行处理因子”环境,可以分跨多个进程来划分和执行处理操作。在 10.1 SP1 中新增支持使用最多 4 核处理器进行并行处理的功能,现已实现于一些空间分析工具当中。 而在即将发布的 ArcGIS 10.2 中,更是更新了 600 多个软件节点,其中主要集中于软件的质量和性能增强。

InfoQ:最后一个问题,请问卢老师,您眼中的大数据的未来是什么样的?

卢萌:大数据是现今非常时髦的 IT 词汇之一。什么叫大数据?如果单纯以量来看,在以 MB 为单位的硬盘存储量的时代,TB 甚至是 GB 可能就算是大数据了,而现在 TB 硬盘普及的时代,恐怕要 PB 甚至是 EB 才算大数据了。 在 IDC 最新的《数字宇宙》(Digital Universe)中预计,到 2020 年,全球的数据存储总量将达到 35ZB。而且这个数字还是受到了存储能力的限制。 对于大数据,IBM 提出了“三 V”的概念,即大量化(Volume)、多样化(Variety)和快速化(Velocity)。最近这两年,着眼于数据应用的专家们提出了“四 V”的概念,就是在原有的“三 V”的基础上加上了 Value(价值)。 毋庸置疑,最后一个 V(Value),才是我们最值得关注一个 V,做数据挖掘和数据分析的主要目的也就是为了实现数据的价值。 未来是一个大数据的时代,在不久的将来,数据可能成为最大的一类交易商品。在互联网上,继“流量为王”、“应用为王”之后,下一个概念应当就是“数据为王”。

语言 & 开发