完成SparkSQL与SDB的对接。要求如下: 1.完成Spark集群的部署安装 2.完成与SDB的对接 3.从SparkSQL创建表映射到SDB集合 4.验证对接是否成功
ssh-keygen -t rsa
ssh-copy-id sdbserver1 ssh-copy-id sdbserver2 ssh-copy-id sdbserver3
确定JDK的版本
rpm -qa | grep jdk rpm -qa | grep gcj
然后卸载
yum -y remove 包
查看自带的jdk:
rpm -qa|grep gcj
在Linux系统下的opt目录中查看软件包是否导入成功 jdk-8u144-linux-x64.tar.gz
解压JDK到/opt/目录下
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/
配置JDK环境变量
先获取JDK路径
pwd /opt/jdk1.8.0_144
打开/etc/profile文件
vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME export JAVA_HOME=/opt/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin
让修改后的文件生效
source /etc/profile
测试JDK是否安装成功
java -version
编写同步分发脚本xsync
#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=2; host<4; host++)); do echo ------------------- sdbservice$host -------------- rsync -rvl $pdir/$fname $user@sdbserver$host:$pdir done
同步到其它节点
xsync jdk1.8.0_144 xsync /etc/profile
同理在其它机器修改后的文件也要使之生效
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/ mv spark-2.1.1-bin-hadoop2.7 spark
cd spark/conf/
mv slaves.template slaves mv spark-env.sh.template spark-env.sh
vim slaves sdbserver1 sdbserver2 sdbserver2
vim spark-env.sh SPARK_MASTER_HOST=sdbserver1 SPARK_MASTER_PORT=7077
export JAVA_HOME=/opt/jdk1.8.0_144
xsync spark/
xsync /opt/spark/jars/ xsync /opt/spark/conf/spark-env.sh
SPARK_CLASSPATH="/opt/spark/jars/sequoiadb-driver-3.2.jar:/opt/spark/jars/spark-sequoiadb_2.11-2.8.0.jar"
sbin/start-all.sh
#!/bin/bash params=$@ i=1 for((i=1 ;i <=3 ;i=$i+1 ));do echo ==========sdbserver$i $params========== ssh sdbserver$i "source /etc/profile;$params" done
./bin/spark-sql --master spark://sdbserver1:7077
sbin/start-thriftserver.sh --master spark://sdbserver1:7077 bin/beeline !connect jdbc:hive2://localhost:10000
create table test1 (name string, id int) using com.sequoiadb.spark options (host 'sdbserver1:11810,sdbserver2:11810,sdbserver3:11810', collectionspace 'foo', collection 'bar', username 'sdbadmin', password '123123');
INSERT INTO test1 VALUES ("lin",222)