图1 MapReduce数据流程
hadoop分布式集搭建3 模型设计
中南地区每天的原始航迹数据保存到一个二进制文件,文件大小约为6 GB。为了方便说明,下文的解析模型假设输入数据为单个文件,文件内容为中南1天的航迹数据。本文模型运行在Hadoop平台上。为实现航迹解析模型,首先搭建一个Hadoop集环境,并在此环境上,通过HDFS实现航迹文件的分布式存储。其次,通过编写Map和Reduce函数,实现HDFS中航迹文件的读取、解析以及最终结果输出。3.1 Hadoop集配置
为了便于说明,本文采用三台机器搭建集环境。其中,1台机器作为NameNode,其他两台作为DataNode。Hadoop 集配置如下:(1)每台机器上安装操作系统Centos7;(2)修改各个机器的hostname和hosts文件;(3)创建用户Hadoop和用户组;(4)配置三台机器的网络,确认每台机器之间的链路连通;(5)安装Java JDK 1.7;(6)每台机器创建Hadoop程序文件夹,并把Hadoop程序文件上传到该目录;(7)每台机器上配置SSH,实现节点间的无密码登录;(8)配置NameNode,确认为Master,其他节点配置为Slave;(9)配置环境变量,并启动Hadoop,登陆监控网页查看是否配置成功。本文配置成功的Hadoop集如图2所示。
图2 Hadoop集环境
分布式航迹解析设计
通过上述分析,可以细化整个航迹解析的流程设计。
第一,文件读取。读取存储在HDFS中的航迹文件。HDFS通过分块(Block)存储文件,每块中的数据理论上不
64 MB。除了最后一块,其余块均大小相等。
第二,块文件Map。Map函数运行在DataNode上,每个节点可以运行一或多个Map和Reduce线程。初始读取的文件块没有Key值,Hadoop会将各文件块自动解析为(
文件块)的形式,并通过哈希映射发送到各个节点。各个节点接收到(0,文件块)的键值对后,通过映射算法生成新的键值对。考虑到航迹文件按时间存储,首次映射可以把分
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论