Spark On Hive
配置
1.将部署好的hive的路径下的conf/hive-site.xml复制到spark安装路径下的conf/
2.将部署好的hive的路径下的lib/mysql驱动包,我的是(mysql-connector-java-8.0.15.jar)拷贝到spark安装路径下的jars/
3.启动Hive的metastore服务
hive --service metastore
4.启动ZooKeeper集群,启动HDFS集群
5.启动spark-shell
bin/spark-shell --master spark://hadoop2:7077 --executor-cores 1 --executor-memory 1g --total-executor-cores 1
正常打开后:
scala> spark.sql("show tables").show
database | tableName | isTemporary |
---|---|---|
default | your_table1 | false |
default | your_table2 | false |
default | your_table3 | false |
直接可以使用spark.sql("")获取数据
IDEA 操作集群上的spark on hive
配置
1.将hive安装路径下的conf/hive-site.xml 拷贝至idea scala项目下 (为避免报错 可在target/classes下也放一份)
2.在pom.xml中添加依赖
<!-- SparkSQL ON Hive-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.3.1</version>
</dependency>
<!--mysql依赖的jar包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
3.在创建session代码中添加hive支持 enableHiveSupport()
4.配置master(spark集群中的master)
测试代码:
package com.bjsxt.scala.spark.sparksql.dataframe
import org.apache.spark.sql.SparkSession
object CreateDFFromHive {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder().enableHiveSupport().appName("spark-hive").master("spark://hadoop2:7077").getOrCreate()
spark.sql("show tables").show()
}
}
adoop2:7077").getOrCreate()
spark.sql(“show tables”).show()
}
}