我是靠谱客的博主 大气机器猫,最近开发中收集的这篇文章主要介绍Spark操作Mysql和Hive1.Mysql2. Hive,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.Mysql

JDBC

Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。

从MySQL中加载数据(Spark Shell方式)

1.启动Spark Shell,必须指定mysql连接驱动jar包

/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-shell 
--master spark://node1.itcast.cn:7077 
--jars /usr/local/spark-1.5.2-bin-hadoop2.6/mysql-connector-java-5.1.35-bin.jar 
--driver-class-path /usr/local/spark-1.5.2-bin-hadoop2.6/mysql-connector-java-5.1.35-bin.jar

2.从mysql中加载数据

val jdbcDF = sqlContext.read.format("jdbc").options(Map("url" ->
"jdbc:mysql://localhost:3306/test", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "person",
"user" -> "root", "password" -> "root")).load()

3.执行查询

jdbcDF.show()

这里写图片描述

注意

连接时有存在连接失败密码 yes(错误情况)
1. 先写:


val sqlContext = new org.apache.spark.sql.SQLContext(sc)

2.把jdbc:mysql://localhost:3306 的ip换成了localhost


另有查询时报连接失败异常(错误),但数据能查询出来
service mysqld restart

重启mysql服务后正常


2. Hive

  1. 将hive的配合文件hive-site.xml添加到spark的conf中
  2. 可以把mysql的连接驱动从 hive/lib 中放到spark/lib
  3. 启动shell 指定驱动位置

    bin/spark-shell
    –master spark://node1.itcast.cn:7077
    –executor-memory 1g
    –total-executor-cores 2
    –driver-class-path /usr/local/apache-hive-0.13.1-bin/lib/mysql-connector-java-5.1.35-bin.jar

  4. 查询表信息 ,可另开hive shell查看是否一致
    这里写图片描述

5. 第二步集成

根据hive的配置参数hive.metastore.uris的情况,采用不同的集成方式  
1. hive.metastore.uris没有给定配置值,为空(默认情况)
SparkSQL通过hive配置的javax.jdo.option.XXX相关配置值直接连接metastore数据库获取hive表元数据

需将连接数据库的驱动添加到Spark应用的classpath中

2. hive.metastore.uris给定了具体的参数值
SparkSQL通过连接hive提供的metastore服务来获取hive表的元数据

直接启动hive的metastore服务即可完成SparkSQL和Hive的集成
    $ hive –service metastore &

  1. 使用hive-site.xml配置的方式
    这里写图片描述

  2. 启动hive service metastore服务
    这里写图片描述

最后

以上就是大气机器猫为你收集整理的Spark操作Mysql和Hive1.Mysql2. Hive的全部内容,希望文章能够帮你解决Spark操作Mysql和Hive1.Mysql2. Hive所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部