基于gphdfs协议,GP节点(greenplum数据库)机器上安装原生hadoop客户端,可进行GP集群到原生Hadoop集群的数据交换
版本介绍:
Hadoop版本:3.0.0
Greenplum版本:5.17.0
注:GP集群、Hadoop集群事先搭建好,原生hadoop客户端包就是取得Hadoop集群中的安装包。
1.安装hadoop客户端包
将准备好的hadoop客户端包导入到gp主节点/home目录下,
#利用gpscp命令将这个文件复制到每一台机器上
gpscp -f /home/gpadmin/conf/seg_hosts hadoop3.tar =:/home
#批量解压
[gpadmin@gpmaster greenplum]$ cd ~/conf/
[gpadmin@gpmaster conf]$ gpssh -f seg_hosts
Note: command history unsupported on this machine ...
=> cd /home
[gpslave1]
[gpslave2]
...
=> tar -xf hadoop3.tar
解压即可
2.配置每个节点hadoop集群hosts
vim /etc/hosts
增加以下三行内容:
192.168.1.1 hadoop1
192.168.1.2 hadoop2
192.168.1.3 hadoop3
加好使其生效:
source /etc/hosts
3.配置每个节点GP用户目录下.bashrc文件
vim /home/gpadmin/.bashrc --以实际文件所在位置为准
新增以下红色配置:
Java安装目录、hadoop客户端安装目录,注意重复,已有配置无需新增
------------------------------
# .bashrc
...
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
#source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=5432
export PGDATABASE=postgres
export JAVA_HOME=/usr/java/jdk1.8.0_144
export CLASSPATH=$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/home/hadoop-3.0.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PYTHONPATH=$PYTHONPATH:/opt/greenplum/greenplum-db/ext/python/lib/python2.7/ #需要时再加
source /opt/greenplum/greenplum-db/greenplum_path.sh
------------------------------------------------------------
加好使其生效:
source /home/gpadmin/.bashrc
4.配置每个节点GP安装目录下hadoop_env.sh文件
vim /opt/greenplum/greenplum-db/lib/hadoop/hadoop_env.sh
--以实际文件所在位置为准
新增以下红色配置:
Java安装目录、hadoop客户端安装目录,注意重复,已有配置无需新增
------------------------------------------------------------
export JAVA_HOME=/usr/java/jdk1.8.0_144
export CLASSPATH=$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/home/hadoop-3.0.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /opt/greenplum/greenplum-db/greenplum_path.sh
export GP_JAVA_OPT='-Xmx256m -XX:+DisplayVMOutputToStderr'
export PATH=$JAVA_HOME/bin:$PATH
JAVA=$JAVA_HOME/bin/java
CLASSPATH="$GPHOME"/"$GP_HADOOP_CONN_JARDIR"/$GP_HADOOP_CONN_VERSION.jar
export HADOOP_COMMON_HOME="${HADOOP_HOME}"
CLASSPATH=${HADOOP_HOME}/hadoop/etc/hadoop:${HADOOP_HOME}/etc/hadoop:${HADOOP_HOME}/conf:${CLASSPATH}
............................
---------------------------------------------------------------------
加好使其生效:
source /opt/greenplum/greenplum-db/lib/hadoop/hadoop_env.sh
5.配置主节点gphdfs协议参数
在gp启动状态下执行以下命令:
gpconfig -c gp_hadoop_target_version -v "'hadoop'"
gpconfig -c gp_hadoop_home -v "'/home/hadoop-3.0.0'"
注:上面为hadoop客户端安装目录,注意一个英文双引号包着一个英文单引号
gpstop -M fast -ra 重启后用如下命令检查配置参数:
进入数据库psql模式:
postgres=# show gp_hadoop_target_version;
gp_hadoop_target_version
--------------------------
hadoop
(1 row)
postgres=# show gp_hadoop_home;
gp_hadoop_home
--------------------
/home/hadoop-3.0.0
(1 row)
6.赋权限给gphdfs
在psql命令行模式下输入下面sql语句:
#写权限
GRANT INSERT ON PROTOCOL gphdfs TO gpadmin;
#读权限
GRANT SELECT ON PROTOCOL gphdfs TO gpadmin;
#所有权限
GRANT ALL ON PROTOCOL gphdfs TO gpadmin;
7.启动gpfdist
在/home/gpadmin目录下,启动gpfdist命令::
nohup gpfdist -d /home/gpadmin/ -p 8081 -l /home/gpadmin/gpfdist.log &