一 内嵌的 HIVE

如果使用 Spark 内嵌的 Hive, 则什么都不用做, 直接使用即可 Hive 的元数据存储在derby中, 默认仓库地址 : $SPARK_HOME/spark-warehouse

创建表

  1. scala> spark.sql("show tables").show
  2. +--------+---------+-----------+
  3. |database|tableName|isTemporary|
  4. +--------+---------+-----------+
  5. +--------+---------+-----------+
  6. scala> spark.sql("create table aa(id int)")
  7. scala> spark.sql("show tables").show
  8. +--------+---------+-----------+
  9. |database|tableName|isTemporary|
  10. +--------+---------+-----------+
  11. | default| aa| false|
  12. +--------+---------+-----------+

向表加载本地数据

  1. scala> spark.sql("load data local inpath 'input/ids.txt' into table aa")
  2. scala> spark.sql("select * from aa").show
  3. +---+
  4. | id|
  5. +---+
  6. | 1|
  7. | 2|
  8. | 3|

二 外部的 HIVE

配置

如果想连接外部已经部署好的 Hive,需要通过以下几个步骤:
➢ Spark 要接管 Hive 需要把 hive-site.xml 拷贝到 conf/目录下
➢ 把 Mysql 的驱动 copy 到jars/目录下
➢ 如果访问不到 hdfs,则需要把 core-site.xml 和 hdfs-site.xml 拷贝到 conf/目录下
➢ 重启 spark-shell

  1. scala> spark.sql("show tables").show
  2. 20/04/25 22:05:14 WARN ObjectStore: Failed to get database global_temp,
  3. returning NoSuchObjectException
  4. +--------+--------------------+-----------+
  5. |database| tableName|isTemporary|
  6. +--------+--------------------+-----------+
  7. | default| emp| false|
  8. | default|hive_hbase_emp_table| false|
  9. | default| relevance_hbase_emp| false|
  10. | default| staff_hive| false|
  11. | default| ttt| false|
  12. | default| user_visit_action| false|
  13. +--------+--------------------+-----------+

运行 Spark beeline

启动 Thrift Server

  1. [root@hadoop1 spark-3.0.0]# sbin/start-thriftserver.sh

使用 beeline 连接 Thrift Server

  1. [root@hadoop1 spark-3.0.0]# bin/beeline -u jdbc:hive2://hadoop1:10000 -n root
  2. Connecting to jdbc:hive2://hadoop1:10000
  3. Transaction isolation: TRANSACTION_REPEATABLE_READ
  4. Beeline version 2.3.7 by Apache Hive

使用

  1. 0: jdbc:hive2://hadoop1:10000> show tables;
  2. +-----------+------------+--------------+
  3. | database | tableName | isTemporary |
  4. +-----------+------------+--------------+
  5. +-----------+------------+--------------+
  6. No rows selected (0.299 seconds)
  7. 0: jdbc:hive2://hadoop1:10000> create database yang;