概述
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
- 将hive的配合文件hive-site.xml添加到spark的conf中
- 可以把mysql的连接驱动从 hive/lib 中放到spark/lib
启动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查询表信息 ,可另开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 &
使用hive-site.xml配置的方式
启动hive service metastore服务
最后
以上就是大气机器猫为你收集整理的Spark操作Mysql和Hive1.Mysql2. Hive的全部内容,希望文章能够帮你解决Spark操作Mysql和Hive1.Mysql2. Hive所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复