hive和mysql集成_Spark集成Hive和mysql

一、Spark集成Hive

1、将Hive的配置文件拷贝到Spark的配置文件目录下,软拷贝硬拷贝皆可以

ln -s /opt/software/hadoop/hive110/conf/hive-site.xml /opt/software/hadoop/spark244//conf/hive-site.xml

2、拷贝jar包

cp /opt/software/hadoop/hive110/lib/mysql-connector-java-5.1.32.jar /opt/software/hadoop/spark244/jars/

3、启动Spark-shell

spark-shell --jars /opt/software/hadoop/spark244/jars/mysql-connector-java-5.1.32.jar

4、在Hive中建表-略

5、在Spark SQL中插入数据-略,此处直接查询数据库做演示

scala> spark.sql("show databases").show()

6、在Hive中查询数据即可看到在Spark中的操作

7、IDEA中集成

Maven搜索Spark-Hive,选第一个Spark Project Hive » [2.4.4],找到对应的scala版本号

org.apache.sparkgroupId>

spark-hive_2.11artifactId>

2.4.4version>

dependency>

mysqlgroupId>

mysql-connector-javaartifactId>

5.1.31version>

dependency>

8、把hive110/conf/hive-site.xml文件拷贝到resources资源包中

把第一个property中的hive仓库路径添加hdfs端口hdfs://192.168.221.140:9000

hive.metastore.warehouse.dirname>

hdfs://192.168.221.140:9000/opt/software/hadoop/hive110/warehousevalue>

property>

9、mysql中创建Hive账号并赋予权限

mysql中输入以下命令:

grant all on *.* to 'root'@'%' identified by 'kb10';

grant all on *.* to 'root'@'localhost' identified by 'kb10';

flush privileges;

10、IDEA代码如下,即可连接成功

object HiveSpark{

def main(args: Array[String]): Unit = {

val spark = SparkSession.builder()

.master("local[4]")

.appName(this.getClass.getSimpleName)

.enableHiveSupport()

.getOrCreate()

spark.sql("show databases").show()

}

}

做完以上步骤后,在回到虚拟机下使用beeline -u jdbc:hive2://192.168.221.140:10000命令时,启动的是spark内置的beeline,因此无法启动,此时需要进入hive/bin目录下用bash启动即可

二、Spark集成mysql

object ConnectSql{

def main(args: Array[String]): Unit = {

val spark = SparkSession.builder()

.master("local[4]")

.appName(this.getClass.getSimpleName)

.enableHiveSupport().getOrCreate()

//最后面是数据库名

val url = "jdbc:mysql://192.168.221.140:3306/exam"

val tableName = "cron_test"//表名

// 设置连接用户、密码、数据库驱动类

val prop = new java.util.Properties

prop.setProperty("user","root")

prop.setProperty("password","kb10")

prop.setProperty("driver","com.mysql.jdbc.Driver")

// 取得该表数据

val jdbcDF = spark.read.jdbc(url,tableName,prop)

jdbcDF.show

//DF存为新的表

jdbcDF.write.mode("append").jdbc(url,"t2",prop)

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值