Spark整合HBase,Hive
背景:
场景需求1:使用spark直接读取HBASE表
场景需求2:使用spark直接读取HIVE表
场景需求3:使用spark读取HBASE在Hive的外表
摘要:
1.背景
2.提交脚本
内容
场景需求1:使用spark直接读取HBASE表
编写提交脚本:
export SPARK2_HOME=/var/lib/hadoop-hdfs/spark-2.0.0-bin-hadoop2.4 export HBASE_LIB_HOME=/opt/cloudera/parcels/CDH/lib/hbase $SPARK2_HOME/bin/spark-shell --jars \ $HBASE_LIB_HOME/hbase-common-0.98.6-cdh5.3.2.jar\ ,$HBASE_LIB_HOME/hbase-client-0.98.6-cdh5.3.2.jar\ ,$HBASE_LIB_HOME/hbase-protocol-0.98.6-cdh5.3.2.jar,\ ,$HBASE_LIB_HOME/hbase-server-0.98.6-cdh5.3.2.jar\ ,$HBASE_LIB_HOME/lib/htrace-core-2.04.jar
场景需求2:使用spark直接读取HIVE表
编写提交脚本:
export OPT_LIB_HOME=/var/lib/spark/lib export HBASE_LIB_HOME=/var/lib/hbase/lib /data/dmp/spark/bin/pyspark --master yarn-client \ --jars $OPT_LIB_HOME/mysql-connector-java-5.1.26-bin.jar
场景需求3:使用spark读取HBASE在Hive的外表
编写提交脚本:
export SPARK_HOME=/data/dmp/spark export OPT_LIB_HOME=$SPARK_HOME/lib $SPARK_HOME/bin/pyspark --master yarn-client \ --jars $OPT_LIB_HOME/mysql-connector-java-5.1.26-bin.jar,$OPT_LIB_HOME/hive-hbase-handler-1.2.1.jar,$OPT_LIB_HOME/hbase-client-0.98.6-cdh5.3.3.jar,$OPT_LIB_HOME/hbase-common-0.98.6-cdh5.3.3.jar,$OPT_LIB_HOME/hbase-hadoop2-compat-0.98.6-cdh5.3.3.jar,$OPT_LIB_HOME/hbase-protocol-0.98.6-cdh5.3.3.jar,$OPT_LIB_HOME/hbase-server-0.98.6-cdh5.3.3.jar,$OPT_LIB_HOME/htrace-core-2.04.jar,$OPT_LIB_HOME/guava-14.0.1.jar
2.代码例子
pom添加HBase依赖:https://github.com/Tongzhenguo/my_scala_code/blob/master/pom.xml
编写Spark Driver Application 类:https://github.com/Tongzhenguo/my_scala_code/blob/master/src/main/scala/utils/HBaseSparkReadUtils.scala