spark2.3.1 on hive2.2.1集成

spark可以通过读取hive的元数据来兼容hive,读取hive的表数据,然后在spark引擎中进行sql统计分析,从而,通过spark sql与hive结合实现数据分析将成为一种最佳实践。配置步骤如下:

1、启动hive的元数据服务

hive可以通过服务的形式对外提供元数据读写操作,通过简单的配置即可
下面是hive的基础配置


        javax.jdo.option.ConnectionURL
        jdbc:mysql://master:3306/metastore?createDatabaseIfNotExist=true
        JDBC connect string for a JDBC metastore
    
    
    
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
        Driver class name for a JDBC metastore
    
    
    
        javax.jdo.option.ConnectionUserName
        root
        username to use against metastore database
    
    
        javax.jdo.option.ConnectionPassword
        123456
        password to use against metastore database
    
    ```



  编辑 $HIVE_HOME/conf/hive-site.xml,增加如下内容:
```
hive.metastore.uris
thrift:// master:9083

启动hive metastore

没有初始化元数据库必须要初始化
bin/schematool -dbType mysql -initSchema
[root@master apache-hive-2.1.1-bin]# ./bin/hive --service metastore 1>/dev/null 2>&1 &

查看 metastore:

[root@master apache-hive-2.1.1bin]# jobs
[1]+ Running ./bin/hive --service metastore > /dev/null 2>&1 &

2、spark配置

将hive的配置文件拷贝给spark
将 $HIVE_HOME/conf/hive-site.xml copy $SPARK_HOME/conf/
[root@master apache-hive-2.1.1-bin]# cp ./conf/hive-site.xml /usr/local/spark-2.3.1/conf/
修改spark-en.sh文件

export HADOOP_HOME=/home/peng/app/cluster/hadoop
export HADOOP_CONF_DIR=/home/peng/app/cluster/hadoop/etc/hadoop
export SPARK_MASTER_IP=ubuntu
export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
export HIVE_HOME=/home/peng/app/cluster/hive/conf
export HIVE_CONF_DIR=/home/peng/app/cluster/hive/conf
export SPARK_CLASSPATH=$HIVE_HOME/lib:$SPARK_CLASSPATH

将mysql的jdbc驱动包拷贝给spark
H I V E H O M E l i b / m y s q l − c o n n e c t o r − j a v a − 5.1.12. j a r c o p y 或 者 软 链 到 HIVE_HOMElib/mysql-connector-java-5.1.12.jar copy或者软链到 HIVEHOMElib/mysqlconnectorjava5.1.12.jarcopySPARK_HOME/lib/
[root@master lib]# cp ./mysql-connector-5.1.8.jar /usr/local/spark-2.3.0/jars/

3、启动spark-sql的shell交互界面

bin/spark-shell --master spark://ubuntu:7077 --total-executor-cores 2 --executor-memory 2g

4、在spark sql 中执行hive操作

spark.sql("show tables").show

+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
| default|       dg|      false|
+--------+---------+-----------+

你可能感兴趣的:(spark)