Spark-SparkSQL与Hive整合

我们在做Spark开发的时候有时候需要用SparkSQL将数据写入Hive表中,今天就来看看SparkSQL与Hive的整合。

SparkSQL就是借助的Hive构建的数据仓库。

一、首先要配置Hive-site.xml。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>aura</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>aura</value>
  </property>

</configuration>

二、把Hive-site.xml配置文件 复制到 $SPARK_HOME/conf目录下,在idea中开发需要将core-site.xml、hdfs-site.xml、hive-site.xml放在resources包下。

三、涉及驱动包的问题:

spark-sql --driver-class-path /usr/local/soft/spark/lib/mysql-connector-java-5.1.10.jar      //mysql驱动

切记SPARK_CLASSPATH这一行必须的配置:(否则报错)
export SPARK_CLASSPATH=$HIVE_HOME/lib/mysql-connector-java-5.1.15-bin.jar:$SPARK_CLASSPATH

这里有点模糊,到底是怎么做的?以后再更新把。

四、Maven配置:

如果spark和Hive需要整合,那么需要在pom.xml文件中添加如下依赖:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-hive_2.11</artifactId>
    <version>1.6.3</version>
    <scope>provided</scope>
</dependency>

五、使用方式:

Spark1.6:

val conf = new SparkConf().setMaster("local").setAppName("HiveSourceTest")
val sc = new SparkContext(conf)
val hiveContext = new HiveContext(sc)
hiveContext.sql("create table worker (id string,salary double,bon double,dep int)")
hiveContext.sql("load data local inpath '/root/worker.txt' into table worker")
hiveContext.sql("select * from worker").show()

Spark2.0:

val sparkSession = SparkSession.builder.
      master("local")
      .appName("spark session example")
      .config("spark.sql.warehouse.dir", "hdfs://hadoop1:9000/user/hive/warehouse")
      .enableHiveSupport()
      .getOrCreate()
spark.sql("")           //与1.6写法一致

可以看出主要就是创建表和载入数据这两个语句。



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值