hive和mysql集成_Spark集成Hive和mysql

本文详细介绍了如何将Spark与Hive进行配置集成,包括复制配置文件、添加jar包、启动Spark-shell以及在SparkSQL中操作数据。同时,也展示了如何在IDEA中集成Maven来实现Spark与Hive的连接,并创建Hive数据库账号及权限设置。此外,还阐述了Spark如何连接MySQL数据库,提供了一段IDEA中的代码示例,实现了数据的读取和写入。
摘要由CSDN通过智能技术生成

一、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)

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值