一、步骤
step1:使用idea创建maven管理工具创建项目
step2:在main下添加resources文件夹,并设置为Resources root
step3:拷贝Hadoop安装路径中etc目录下的core-site.xml、hdfs-site.xml文件到resources中
step4:拷贝hive安装路径中conf目录下的hive-site.xml文件到resources中
step5:修改hive-site.xml文件中的javax.jdo.option.ConnectionURL,改为自己虚拟机的IP地址
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.90.3:3306/hive(mysql地址localhost)
step6:依赖配置
org.apache.spark
spark-core_2.12
3.0.0
org.apache.spark
spark-sql_2.12
3.0.0
com.springml
spark-sftp_2.11
1.1.5
org.scala-lang
scala-library
2.11.12
commons-net
commons-net
3.6
com.jcraft
jsch
0.1.55
mysql
mysql-connector-java
5.1.44
io.delta
delta-core_2.12
0.5.0
org.apache.hive
hive-jdbc
2.3.0
org.apache.spark
spark-hive_2.12
3.0.0
step7:创建对象
import org.apache.spark.sql.SparkSession
object Test1 {
def main(args: Array[String]): Unit = {
// val conf = new SparkConf().setMaster("local[1]").setAppName("sparkDemo2")
// val sc = SparkContext.getOrCreate(conf)
// sc.setLogLevel("error")
// 建立sparkSession,并传入定义好的Conf
val spark = SparkSession
.builder()
.master("local[*]")
.appName("sparkDemo")
.enableHiveSupport()
.getOrCreate()
spark.sql("show databases").show()
spark.sql("select * from test_data.teacher").show()
spark.sql("insert into test_data.teacher values(1,'zs')")
}
}
step8:执行成功。
问题总结
问题一:
java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT
问题原因:
spark-hive jar包版本冲突
出现问题时使用的jar包版本
org.apache.spark
spark-core_2.12
3.0.0
org.apache.spark
spark-sql_2.12
3.0.0
org.apache.spark
spark-hive_2.12
2.4.0
解决方案:
修改spark-hive的版本,与spark-core、spark-sql一致,修改后此问题解决
org.apache.spark
spark-hive_2.12
3.0.0
问题二:
java.lang.AssertionError: assertion failed: No plan for HiveTableRelation
出现问题时代码:
val conf = new SparkConf().setMaster("local[1]").setAppName("sparkDemo2")
val sc = SparkContext.getOrCreate(conf)
sc.setLogLevel("error")
// 建立sparkSession,并传入定义好的Conf
val spark = SparkSession
.builder()
.master("local[*]")
.appName("sparkDemo")
.enableHiveSupport()
.getOrCreate()
解决方法:
将前三行代码去掉
Original: https://blog.csdn.net/Flychuer/article/details/124989362
Author: 猿界零零七
Title: Spark使用scala语言连接hive数据库
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/818283/
转载文章受原作者版权保护。转载请注明原作者出处!