正文
一,简介
跟hive没太的关系,就是使用了hive的标准(HQL, 元数据库、UDF、序列化、反序列化机制)。Hive On Spark 使用RDD(DataFrame),然后运行在spark 集群上。
二,shell方式配置和使用hive元数据信息
2.1 文件配置
配置和hive的配置一致,所以只需要我们把hive的配置文件hive-site.xml拷贝到一份到spark的conf目录下就可以。
命令:
cp hive-site.xml /usr/local/hadoop/spark/spark-2.3.3/conf/
2.2 驱动包加载
因为要链接mysql,从mysql中读取元数据,所以需要mysql的驱动包进行加载。
2.3 命令行启动
./spark-sql --master spark://hd1:7077 --driver-class-path /usr/local/hadoop/hive/apache-hive-1.2.1-bin/lib/mysql-connector-java-5.1.39.jar
参数解释:
--driver-class-path mysql驱动包的路径--master 使用spark的链接
三,IDEA编程方式使用hive元数据信息
3.1 添加依赖和配置文件
依赖添加:注意除了hive依赖,mysql的驱动依赖也要添加
全部依赖:
4.0.0
cn.edu360.sparkLearn
sparkTest
1.0-SNAPSHOT
1.8
1.8
2.11.8
2.3.3
2.8.5
UTF-8
org.scala-lang
scala-library
${scala.version}
org.apache.spark
spark-core_2.11
${spark.version}
mysql
mysql-connector-java
5.1.38
org.apache.spark
spark-sql_2.11
${spark.version}
org.apache.hadoop
hadoop-client
${hadoop.version}
org.apache.spark
spark-hive_2.11
${spark.version}
net.alchim31.maven
scala-maven-plugin
3.2.2
org.apache.maven.plugins
maven-compiler-plugin
3.5.1
net.alchim31.maven
scala-maven-plugin
scala-compile-first
process-resources
add-source
compile
scala-test-compile
process-test-resources
testCompile
org.apache.maven.plugins
maven-compiler-plugin
compile
compile
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
View Code
org.apache.spark
spark-hive_2.11
${spark.version}
配置文件添加:
将hive-site.xml的配置文件添加到项目中。
3.2 程序示例
packagecn.edu360.spark08importorg.apache.spark.sql.{DataFrame, SparkSession}
object HiveTest {
def main(args: Array[String]): Unit={
val spark: SparkSession=SparkSession.builder()
.appName("HiveTest")
.master("local[*]")
.enableHiveSupport()
.getOrCreate()
val result: DataFrame= spark.sql("show databases")
result.show()
spark.stop()
}
}