为ArcGIS GeoAnalytics Server注册Hive数据源超清版
分享
安装前准备
准备安装包
安装包清单:
准备部署环境
当前测试基于三个节点组成的集群环境,iP分别为:10.10.20.38, 10.10.20.39, 10.10.20.40
其中:
部署jdk
分发jdk压缩包
拷贝jdk压缩包到集群内所有服务器指定路径下(当前测试是基于/home/soft),解压缩jdk包,并部署到/home/jdk1.8.0_65目录下
复制pwd生成的结果路径,配置java环境变量
部署Hadoop集群
创建安装用户
在所有hadoop集群服务器上创建用户hadoop,这里以10.10.20.40服务器为例
配置集群间ssh免密
这步是必须操作, 集群间ssh免密是通过自动化shell脚本auto_ssh.sh完成的,需要的同学自行下载。
使用前需要修改:
部署hadoop压缩包
解压缩部署hadoop:
配置环境变量:
hadoop参数配置
配置hadoop-env文件:
配置core-site.xml:
配置说明:
配置hdfs-site.xml:
配置说明:
配置mapreduce-site.xml:
配置yarn-site.xml:
配置说明:
配置workers文件:
在workers 文件中添加所有参与集群的DataNode域名或IP。
向节点服务器分发配置好的hadoop软件
格式化namenode
在master节点上执行如下命令:
启动Hadoop服务
hdfs中创建hive所需目录
格式化成功后,在hdfs中创建hive需要的目录,并分配权限
部署mysql80 for CentOS7
部署mysql Server
检测是否存在之前安装的版本:
安装mysql server:
由于CentOS7版本中的MySQL数据库已经从默认的程序列表中删除,所以安装前先去下载资源包。
下载地址:https://dev.mysql.com/downloads/repo/yum/
包名:mysql80-community-release-el7-1.noarch.rpm
启动MySQL服务器:
查看MySQL运行状态:
验证MySQL是否工作正常
如果能正确显示版本信息,则说明安装成功。
配置root用户
修改root用户密码:
安装完第一次启动时,mysql会为root用户设置一个随机密码,可以通过下面命令修改:
使用查询出的密码登陆mysql:
登陆后重新设定root用户密码:
更改root加密方式:
从mysql8.0开始,初始化数据目录时,root账户默认使用caching_sha2_password加密 ,hive的配置要求使用mysql_native_password,可以通过以下命令更改:
开启root用户的远程访问权限:
验证修改结果:
创建要配置被hive使用的用户
修改my.cnf,配置MySQL字符编码和端口
修改后重启服务:
部署MySQL Connector
提前下载好对应于mysql server版本的connector rpm, 切记版本一定要一致。
下载地址:https://dev.mysql.com/downloads/connector/j/
这里使用的是: mysql-connector-java-8.0.12-1.el7.noarch.rpm
安装后,定位到connector jar 包 mysql-connector-java-8.0.12.jar,在Centos7系统上位于/usr/share/java目录下。
部署hive
部署hive安装包
从官网下载hive 3.1.0版本:
下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-3.1.0/
创建安装用户hive:
拷贝介质,修改所有权,解压缩:
配置环境变量
配置hive 以mysql为metastore
配置hive-env文件:
配置hive-site.xml:
拷贝配置文件,命名为hive-site.xml
配置修改以下项目:
修改xml中的特殊字符错误:
配置临时变量参数:
配置说明:
拷贝mysql 的connector jar包到hive lib目录下
初始化metastore
启动服务
启动metastore service ,默认端口:9083
启动thrift server , 默认端口:10000
检查端口是否已启动:
beeline测试thrift 接口是否能连通
为ArcGIS GeoAnalytics注册hive数据源
获取注册为GA 的Server地址
在ArcGIS Enterpris的Organization - Edit settings - Server中查看注册为GA的ArcGIS Server地址。
导航至注册窗口
进入作为GA Server 的ArcGIS Server Manager,导航至站点-> 数据存储, 在注册数据库的下拉列表中选择“大数据文件共享”。
配置注册参数
在弹出的配置窗口中,输入以下参数值:
注册参数:
验证成果
成功注册后,可以通过编辑按钮查看注册的大数据信息。
文章来源:https://makeling.github.io/bigdata/3752b673.html
准备安装包
安装包清单:
- jdk: jdk-8u65-linux-x64.gz
- hadoop: hadoop-3.1.1.tar.gz
- mysql:
- mysql80-community-release-el7-1.noarch.rpm
- mysql-connector-java-8.0.12-1.el7.noarch.rpm
- hive: apache-hive-3.1.0-bin.tar.gz
准备部署环境
当前测试基于三个节点组成的集群环境,iP分别为:10.10.20.38, 10.10.20.39, 10.10.20.40
其中:
- 10.10.20.40: 为hadoop主节点,并部署hive和mysql
- 10.10.20.38, 10.10.20.39: 为Hadoop数据节点
部署jdk
分发jdk压缩包
拷贝jdk压缩包到集群内所有服务器指定路径下(当前测试是基于/home/soft),解压缩jdk包,并部署到/home/jdk1.8.0_65目录下
[root@gis040 ~]# cd /home/soft
[root@gis040 soft]# tar -zxvf jdk-8u65-linux-x64.gz -C /home
[root@gis040 soft]# cd ..
[root@gis040 home]# cd jdk1.8.0_65/
[root@gis040 jdk1.8.0_65]# pwd
/home/jdk1.8.0_65
复制pwd生成的结果路径,配置java环境变量
[root@gis040 jdk1.8.0_65]# vim /etc/profile
Insert 以下内容:
export JAVA_HOME=/home/jdk1.8.0_65
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
esc-> :wq! 退出并保存编辑配置
[root@gis040 jdk1.8.0_65]# source /etc/profile
部署Hadoop集群
创建安装用户
在所有hadoop集群服务器上创建用户hadoop,这里以10.10.20.40服务器为例
[root@gis040 jdk1.8.0_65]# cd ~
[root@gis040 ~]# adduser hadoop
[root@gis040 ~]# passwd hadoop
Changing password for user hadoop.
New password:
这里密码我设置了hadoop@123配置集群间ssh免密
这步是必须操作, 集群间ssh免密是通过自动化shell脚本auto_ssh.sh完成的,需要的同学自行下载。
使用前需要修改:
[root@gis040 ~]# cd /home/soft/scripts
[root@gis040 scripts]# vim auto_ssh.sh
IP_1=10.10.20.39,10.10.20.38,10.10.20.40
PWD_1=hadoop@123
USER_1=hadoop
替换IP_1, PWD_1, USER_1为你部署环境真实hadoop 集群的IP地址,Hadoop用户名密码,和Hadoop用户名[root@gis040 scripts]# ./auto_ssh.sh
部署hadoop压缩包
解压缩部署hadoop:
[root@gis040 scripts]# cd ..
[root@gis040 soft]# tar -zxvf hadoop-3.1.1.tar.gz -C /home
[root@gis040 soft]# cd ..
[root@gis040 home]# chown -R hadoop:hadoop hadoop-3.1.1/
配置环境变量:
[root@gis040 hadoop-3.1.1]# vim /etc/profile
export HADOOP_HOME=/home/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin
[root@gis040 jdk1.8.0_65]# source /etc/profile
hadoop参数配置
[root@gis040 home]# su hadoop
[hadoop@gis040 home]$ cd hadoop-3.1.1/
[hadoop@gis040 hadoop-3.1.1]$ cd etc/hadoop/
配置hadoop-env文件:
[hadoop@gis040 hadoop]$ vim hadoop-env.sh
修改以下内容:
export JAVA_HOME=/home/jdk1.8.0_65
export HADOOP_HOME=/home/hadoop-3.1.1
配置core-site.xml:
[hadoop@gis040 hadoop]$ vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.10.20.40:9000</value>
</property>
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
</configuration>
配置说明:
- 10.10.20.40需要替换为你的hadoop主节点地址
- hadoop.proxyuser.hive.groups和hadoop.proxyuser.hive.hosts是针对hive的配置项,其中”hive”,对应于你环境下实际的hive用户。
配置hdfs-site.xml:
[hadoop@gis040 hadoop]$ vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>10.10.20.40:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
配置说明:
- 10.10.20.40需要替换为你的hadoop主节点地址
- 上述配置中涉及的dir项目需要在你的环境中真实存在,如果没有,可以通过mkdir命令创建, 例如:
[hadoop@gis040 hadoop]$ mkdir -p /home/hadoop/dfs/name
[hadoop@gis040 hadoop]$ mkdir -p /home/hadoop/dfs/data
配置mapreduce-site.xml:
[hadoop@gis040 hadoop]$ vim mapreduce-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>10.10.20.40:1002</value>
</property>
<property>
<name>mapreduce.jobhistroy.webapp.address</name>
<value>10.10.20.40:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop-3.1.1</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop-3.1.1</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop-3.1.1</value>
</property>
</configuration>
配置说明:- 10.10.20.40需要替换为你的hadoop主节点地址
- 上述配置中yarn.app.mapreduce.am.env, mapreduce.map.env, mapreduce.reduce.env 对于通过hive 调度mapreduce执行任务是否成功至关重要。
配置yarn-site.xml:
[hadoop@gis040 hadoop]$ vim 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>10.10.20.40:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.10.20.40:8030</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>10.10.20.40:8033</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.10.20.40:8031</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.10.20.40:8088</value>
</property>
</configuration>
配置说明:
- 10.10.20.40需要替换为你的hadoop主节点地址
配置workers文件:
在workers 文件中添加所有参与集群的DataNode域名或IP。
[hadoop@gis040 hadoop]$ vim workers
10.10.20.38
10.10.20.39
10.10.20.40
向节点服务器分发配置好的hadoop软件
[hadoop@gis040 hadoop]$ scp –r /home/hadoop-3.1.1 root@10.10.20.38: /home
[hadoop@gis040 hadoop]$ scp –r /home/hadoop-3.1.1 root@10.10.20.39: /home
格式化namenode
在master节点上执行如下命令:
[hadoop@gis040 hadoop]$ ../../bin/hdfs namenode -format
启动Hadoop服务
[hadoop@gis040 hadoop]$ cd ../..
[hadoop@gis040 hadoop-3.1.1]$ sbin/start-all.sh
hdfs中创建hive所需目录
格式化成功后,在hdfs中创建hive需要的目录,并分配权限
[hadoop@gis040 hadoop-3.1.1]$ hadoop fs -mkdir /tmp
[hadoop@gis040 hadoop-3.1.1]$ hadoop fs -mkdir -p /user/hive/warehouse
[hadoop@gis040 hadoop-3.1.1]$ hadoop fs -chmod g+w /tmp
[hadoop@gis040 hadoop-3.1.1]$ hadoop fs -chmod g+w /user/hive/warehouse
部署mysql80 for CentOS7
部署mysql Server
检测是否存在之前安装的版本:
[root@gis040 ~]# rpm -qa |grep mysql
[root@gis040 ~]# rpm -e mysql (如果存在历史版本则执行该语句删除)
[root@gis040 ~]# rpm -e —nodeps mysql (强制删除)
安装mysql server:
由于CentOS7版本中的MySQL数据库已经从默认的程序列表中删除,所以安装前先去下载资源包。
下载地址:https://dev.mysql.com/downloads/repo/yum/
包名:mysql80-community-release-el7-1.noarch.rpm
[root@gis040 ~]# wget http://repo.mysql.com/mysql80- ... h.rpm
[root@gis040 ~]# rpm -ivh mysql80-community-release-el7-1.noarch.rpm
[root@gis040 ~]# yum update
[root@gis040 ~]# yum install mysql-community-server
启动MySQL服务器:
[root@gis040 ~]# systemctl start mysqld
查看MySQL运行状态:
[root@gis040 ~]# systemctl status mysqld
验证MySQL是否工作正常
[root@gis040 ~]# mysqladmin —version
mysqladmin Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)
如果能正确显示版本信息,则说明安装成功。
配置root用户
修改root用户密码:
安装完第一次启动时,mysql会为root用户设置一个随机密码,可以通过下面命令修改:
[root@gis040 ~]# grep “password” /var/log/mysqld.log
2018-10-16T01:45:10.838489Z 5 Note [Server] A temporary password is generated for root@localhost: 9-UdH*>ljxu<
使用查询出的密码登陆mysql:
[root@gis040 ~]# mysql -u root -p
登陆后重新设定root用户密码:
mysql> set password="Test@123";
更改root加密方式:
从mysql8.0开始,初始化数据目录时,root账户默认使用caching_sha2_password加密 ,hive的配置要求使用mysql_native_password,可以通过以下命令更改:
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'Test@123';
开启root用户的远程访问权限:
mysql> update user set host = '%' where user = 'root';
验证修改结果:
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.01 sec)
创建要配置被hive使用的用户
mysql> create user 'hive' identified by 'Hive@123';
mysql> grant all on *.* to 'hive'@'%' with grant option;
mysql> flush privileges;
修改my.cnf,配置MySQL字符编码和端口
[root@gis040 ~]# vim /etc/my.cnf
[mysqld]
port = 3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
修改后重启服务:
[root@gis040 ~]# systemctl restart mysqld
部署MySQL Connector
提前下载好对应于mysql server版本的connector rpm, 切记版本一定要一致。
下载地址:https://dev.mysql.com/downloads/connector/j/
这里使用的是: mysql-connector-java-8.0.12-1.el7.noarch.rpm
[root@gis040 ~]# yum localinstall /home/soft/mysql-connector-java-8.0.12-1.el7.noarch.rpm
安装后,定位到connector jar 包 mysql-connector-java-8.0.12.jar,在Centos7系统上位于/usr/share/java目录下。
部署hive
部署hive安装包
从官网下载hive 3.1.0版本:
下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-3.1.0/
创建安装用户hive:
[root@gis040 ~]# adduser hive
[root@gis040 ~]# passwd hive
拷贝介质,修改所有权,解压缩:
[root@gis040 ~]# cp /home/soft/apache-hive-3.1.0-bin.tar.gz /home
[root@gis040 ~]# chown -R hive:hive apache-hive-3.1.0-bin.tar.gz
[root@gis040 ~]# su hive
[hive@gis040 root]$ cd /home
[hive@gis040 home]$ tar -zxvf apache-hive-3.1.0-bin.tar.gz
[hive@gis040 home]$ mv apache-hive-3.1.0-bin hive-3.1.0
配置环境变量
[hive@gis040 home]$ exit
[root@gis040 ~]# vim /etc/profile
export HIVE_HOME=/home/hive-3.1.0
export PATH=$PATH:$HIVE_HOME/bin
[root@gis040 ~]# source /etc/profile
配置hive 以mysql为metastore
配置hive-env文件:
[hive@gis040 root]$ cd /home/hive-3.1.0/conf
[hive@gis040 conf]$ cp hive-env.sh.template
[hive@gis040 conf]$ vim hive-env.sh
配置两个变量:
HADOOP_HOME=/home/hadoop-3.1.1
export HIVE_CONF_DIR=/home/hive/hive-3.1.0/conf
配置hive-site.xml:
拷贝配置文件,命名为hive-site.xml
[hive@gis040 conf]$ cp hive-default.xml.template hive-site.xml
配置修改以下项目:
修改xml中的特殊字符错误:
[hive@gis040 conf]$ vim +3210 hive-site.xml
删除 “”特殊字符
配置mysql连接参数:[hive@gis040 conf]$ vim +583 hive-site.xml
修改以下配置中的value值
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://{mysql.ip}:{mysql.port}/hivegisdb?createDatabaseIfNotExist=trueuseSSL=falseallowPublicKeyRetrieval=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
[hive@gis040 conf]$ vim +1100 hive-site.xml
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
[hive@gis040 conf]$ vim +1126 hive-site.xml
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>Username to use against metastore database</description>
</property>
[hive@gis040 conf]$ vim +568 hive-site.xml
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Esri@123</value>
<description>password to use against metastore database</description>
</property>
配置临时变量参数:
[hive@gis040 conf]$ vim +17 hive-site.xml
在<configuration>标签后面添加下面的变量
<property>
<name>system:java.io.tmpdir</name>
<value>/home/hive/tmp</value>
</property>
<property>
<name>system:user.name</name>
<value>hive</value>
</property>
<property>
<name>mysql.ip</name>
<value>10.10.20.40</value>
</property>
<property>
<name>mysql.port</name>
<value>3306</value>
</property>
配置说明:
- mysql.ip 替换成实际你配置中的mysql Server的IP
- mysql.port 默认是3306, 应遵从之前my.cnf中的配置
- system:java:io:tmpdir目录需要替换成你的临时目录,如果没有通过以下命令创建
[hive@gis040 conf]$mkdir -p /home/hive/tmp
拷贝mysql 的connector jar包到hive lib目录下
[hive@gis040 conf]$ exit
[root@gis040 ~]# cp /home/soft/mysql-connector-java-8.0.12.jar /home/hive-3.1.0/lib/
[root@gis040 ~]# cd /home/hive-3.1.0/lib/
[root@gis040 lib]# chown -R hive:hive mysql-connector-java-8.0.12.jar
初始化metastore
[root@gis040 lib]# su hive
[root@gis040 lib]# schematool -dbType mysql -initSchema
启动服务
启动metastore service ,默认端口:9083
[root@gis040 lib]# hive --service metastore &
启动thrift server , 默认端口:10000
[root@gis040 lib]# hive -- service hiveserver2 &
检查端口是否已启动:
[hive@gis040 lib]$ netstat -nl|grep 9083
tcp6 0 0 :::9083 :::* LISTEN
[hive@gis040 lib]$ netstat -nl|grep 10000
tcp6 0 0 :::10000 :::* LISTEN
beeline测试thrift 接口是否能连通
[hive@gis040 lib]$ beeline -u jdbc:hive2://10.10.20.40:10000/default
0: jdbc:hive2://10.10.20.40:10000/default>
> create table bjRain(ID string,X double,Y double,STATIONNAM string)
> row format delimited fields terminated by ','
> stored as textfile;
0: jdbc:hive2://10.10.20.40:10000/default>
> load data local inpath '/home/soft/bjRAINSub.csv' overwrite into table bjRain;
0: jdbc:hive2://10.10.20.40:10000/default> select count(*) from bjRain;
为ArcGIS GeoAnalytics注册hive数据源
获取注册为GA 的Server地址
在ArcGIS Enterpris的Organization - Edit settings - Server中查看注册为GA的ArcGIS Server地址。
导航至注册窗口
进入作为GA Server 的ArcGIS Server Manager,导航至站点-> 数据存储, 在注册数据库的下拉列表中选择“大数据文件共享”。
配置注册参数
在弹出的配置窗口中,输入以下参数值:
注册参数:
name: hive_db1
type: Hive
metastore URI: thrift://10.10.20.40:9083
datastore: default
验证成果
成功注册后,可以通过编辑按钮查看注册的大数据信息。
文章来源:https://makeling.github.io/bigdata/3752b673.html
0 个评论
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- ArcGIS知乎社区改进意见征集
- 【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
- 苹果系统下可以使用arcgis 吗?
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- arcgis版本兼容性
- ArcGIS 知乎社区活动 之 字幕组加鸡腿暨KBP字幕组招新【获奖名单公布与优秀作品展示】
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- ArcGIS如何求栅格图像的“质心”
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?