#基于Hadoop的ArcGIS大数据分析初步探讨
目录
1 Hadoop的安装和集群配置
1.1 准备阶段
1.1.1 组和用户的创建
1.1.2 IP和机器名映射
1.1.3 配置SSH免密码登录
1.2 JDK的安装和配置(可选)
1.3 Hadoop的安装和配置
1.4 Hadoop的启动和验证
1.4.1 Hadoop的启动
1.4.2 Hadoop的验证
2 Hadoop数据集准备
2.1 创建件目录
2.2 上传数据
2.3 查看数据
3 基于Hadoop数据的分析
##1 Hadoop的安装和集群配置
###1.1 准备阶段 该Hadoop集群基于Centos 7.2.1511操作系统,采用Hadoop 2.7.3和JDK1.7.0_75构建而成。集群中包含1个Master节点(机器名:master;IP:192.168.107.138)和1个Slave节点(机器名:slave;IP:192.168.107.139)。
####1.1.1 组和用户的创建
在master节点上创建组esrichina和账户hadoop:
[root@master ~]$ groupadd esrichina
[root@master ~]$ useradd -g esrichina -m hadoop
[root@master ~]$ passwd hadoop
在slave节点上执行相同操作,创建组esrichina和账户hadoop。
####1.1.2 IP和机器名映射 分别对master和slave两个节点编辑/etc/hosts文件,添加ip和机器名的映射关系。
192.168.107.138 master.esrichina.com master
192.168.107.139 slave.esrichina.com slave
####1.1.3 配置SSH免密码登录
-
修改/etc/ssh/sshd_config,取消如下两行的注释 。
RSAAuthentication yes PubkeyAuthentication yes
-
输入命令ssh-keygen -t rsa生成key,不需输入密码直至结束。
[root@master ~]$ su - hadoop [hadoop@master ~]$ ssh-keygen -t rsa
-
对slave节点执行步骤1和步骤2的操作。
-
把公钥文件复制到要访问的机器(master和slave)的hadoop用户目录下的.ssh目录中。
[hadoop@master ~]$ scp ~/.ssh/id_rsa.pub hadoop@master:/home/hadoop/.ssh/authorized_keys [hadoop@master ~]$ scp ~/.ssh/id_rsa.pub hadoop@slave:/home/hadoop/.ssh/authorized_keys
-
测试由master节点免密码登录slave是否生效。
[hadoop@master ~]$ ssh hadoop@slave
###1.2 JDK的安装和配置(可选)
-
解压jdk
-
编辑/etc/profile,添加jdk环境变量。
# set the environments for jdk JAVA_HOME=/home/jdk1.7.0_75 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH
-
运行 source 命令使配置的环境变量生效。
[root@master ~]$ source /etc/profile
-
运行 java -version 查看java配置是否生效。
###1.3 Hadoop的安装和配置
-
下载和解压Hadoop,设置hadoop用户对文件夹hadoop-2.7.3的所有权。
-
修改hadoop用户的环境变量文件.bash_profile,将Hadoop可执行文件的位置添加到PATH变量中。
# Set the environments for hadoop HADOOP_HOME=/home/hadoop/hadoop-2.7.3 PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_HOME PATH
-
运行 source 命令使hadoop用户环境变量设置生效 。
[hadoop@master ~]$ source .bash_profile
-
创建Hadoop的tmp、data和name文件夹。
[hadoop@master ~]$ mkdir tmp hdfs hdfs/data hdfs/name
-
Hadoop的配置,涉及【Hadoop安装位置】/etc/hadoop下的hadoop-env.sh、yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml共7个文件。
-
配置 hadoop-env.sh。如果$JAVA_HOME变量设置正确,也可不修改。
# The java implementation to use. export JAVA_HOME=/home/jdk1.7.0_75
-
配置 yarn-env.sh。
# some Java parameters # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ export JAVA_HOME=/home/jdk1.7.0_75
-
配置slaves文件,用于存储所有slave节点的机器名。
slave
-
配置core-site.xml。
<!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/tmp</value> </property> </configuration>
-
配置hdfs-site.xml。
<!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hdfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
-
由mapred-site.xml.template复制获得mapred-site.xml,并进行配置。
<!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
-
配置yarn-site.xml。
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
-
复制Hadoop到slave节点
[hadoop@master ~]$ scp -r hadoop-2.7.3 hadoop@slave:/home/hadoop/
###1.4 Hadoop的启动和验证
####1.4.1 Hadoop的启动
-
格式化 namenode 。
[hadoop@master ~]$ hdfs namenode -format
如果看到successfully formatted和Exiting with status 0的提示,即说明格式化完毕。 12. 启动NameNode和DataNode守护进程 。
[hadoop@master ~]$ start dfs.sh
-
启动ResourceManager和NodeManager守护进程 。
[hadoop@master ~]$ start yarn.sh
####1.4.2 Hadoop的验证
-
运行 jps 查看master和slave节点上启动的进程 。
[hadoop@master ~]$ jps
在master节点上存在4个进程,ResourceManager、NameNode、Jps和SecondaryNameNode;在slave节点上存在3个进程,NodeManager、DataNode和Jps。
-
查看集群状态 。
[hadoop@master ~]$ hdfs dfsadmin -report
Live datanodes (1) 说明集群成功建立。
##2 Hadoop数据集准备
###2.1 创建文件目录
[hadoop@master data]$ hadoop fs -mkdir -p /usr/hadoop/greenDec24
###2.2 上传数据
[hadoop@master data]$ hadoop fs -put /home/greenDec24.csv /usr/hadoop/greenDec24
###2.3 查看数据
[hadoop@master data]$ hadoop fs -ls /usr/hadoop/greenDec24
##3 基于Hadoop数据的分析
- 登录 ArcGIS for Server Manager,点击 Site -> Data Stores。
- 在Data Stores设置页面上,点击 Register 旁边的 Big Data File Share,设置 Type 为 HDFS,输入 Name 和 Path,点击 Create。
- 点击 编辑 图标,在打开的 Big Data File Share 界面上选择待分析的数据集,点击 保存。
- 登录Portal for ArcGIS,进入 Map 页,点击 Analysis -> GeoAnalytics Tools -> Summarize Data -> Aggregate Points,浏览至注册的数据集,点击 ADD LAYER。
- 输入所需参数,点击 RUN ANALYSIS 开始分析。
- 得到分析结果。