1.修改 hive/conf/hive-site.xml 新增如下配置
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
2.拷贝配置文件
拷贝hive conf 中 hive-site.xml配置文件到spark/conf目录下
拷贝 hadoop /etc/hadoop 中 core-site.xml 配置文件到spark/conf目录下
拷贝 hadoop /etc/hadoop 中 hdfs-site.xml 配置文件到spark/conf目录下
把三个文件分发到三个spark节点conf目录下
3.拷贝hive lib 目录下 mysql-connector-java-5.1.38.jar 到spark /jars目录下
4.后台启动 Hive MetaStore服务[可选]
nohup /export/servers/hive/bin/hive --service metastore 2>&1 >> /var/log.log &
SparkSql操作hive表(scalaAPI)
使用IDEA本地测试直接把以上配置文件放在resources目录即可
package spark_on_hive
import org.apache.spark.SparkContext
import org.apache.spark.sql.SparkSession
object sparkSql_Hive {
def main(args: Array[String]): Unit = {
//创建sparkSession
val spark: SparkSession = SparkSession.builder().master("local[*]").appName("sparkSQL_Hive").enableHiveSupport().getOrCreate()
//根据sparkSession创建SparkContext
val sc: SparkContext = spark.sparkContext
sc.setLogLevel("WARN")
//查询
spark.sql("show databases").show()
spark.sql("use telecom").show()
spark.sql("show tables").show()
spark.sql("select * from app_traffic limit 2").show()
//停止sc、spark
sc.stop()
spark.stop()
}
}