日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据Spark(三十一):Spark On Hive

發布時間:2023/11/28 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据Spark(三十一):Spark On Hive 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

Spark On Hive

spark-sql中集成Hive

Spark代碼中集成Hive


Spark On Hive

Spark SQL模塊從發展來說,從Apache Hive框架而來,發展歷程:Hive(MapReduce)-> Shark (Hive on Spark) -> Spark SQL(SchemaRDD -> DataFrame -> Dataset),所以SparkSQL天然無縫集成Hive,可以加載Hive表數據進行分析。

http://spark.apache.org/docs/latest/sql-data-sources-hive-tables.html

spark-sql中集成Hive

SparkSQL集成Hive本質就是:讀取Hive框架元數據MetaStore,此處啟動Hive MetaStore服務即可

nohup /export/server/hive/bin/hive --service metastore &

編寫配置文件hive-site.xml,并放于node1的【$SPARK_HOME/conf】目錄

cd /export/server/spark/conf/

vim hive-site.xml

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.metastore.local</name><value>false</value></property><property><name>hive.metastore.uris</name><value>thrift://node3:9083</value></property></configuration>

也可以將hive-site.xml分發到集群中所有Spark的conf目錄,此時任意機器啟動應用都可以訪問Hive表數據。

使用sparksql操作hive

/export/server/spark/bin/spark-sql --master local[2] --conf spark.sql.shuffle.partitions=2

show database;

show tables;

CREATE TABLE person (id int, name string, age int) row format delimited fields terminated by ' ';

LOAD DATA LOCAL INPATH 'file:///root/person.txt' INTO TABLE person;

show tables;

select * from person;

???????Spark代碼中集成Hive

在IDEA中開發應用,集成Hive,讀取表的數據進行分析,構建SparkSession時需要設置HiveMetaStore服務器地址及集成Hive選項,首先添加MAVEN依賴包:

<!--SparkSQL+ Hive依賴--><dependency><groupId>org.apache.spark</groupId><artifactId>spark-hive_2.11</artifactId><version>${spark.version}</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-hive-thriftserver_2.11</artifactId><version>${spark.version}</version></dependency>

范例演示代碼如下:


package cn.it.sqlimport org.apache.spark.SparkContext
import org.apache.spark.sql.SparkSession/*** SparkSQL集成Hive*/
object SparkSQLHive {def main(args: Array[String]): Unit = {val spark: SparkSession = SparkSession.builder().appName(this.getClass.getSimpleName.stripSuffix("$")).master("local[*]").config("spark.sql.shuffle.partitions", "4").config("spark.sql.warehouse.dir", "hdfs://node1:8020/user/hive/warehouse").config("hive.metastore.uris", "thrift://node3:9083").enableHiveSupport()//開啟hive語法的支持.getOrCreate()val sc: SparkContext = spark.sparkContextsc.setLogLevel("WARN")import spark.implicits._import org.apache.spark.sql.functions._//查看有哪些表spark.sql("show tables").show()//創建表spark.sql("CREATE TABLE person2 (id int, name string, age int) row format delimited fields terminated by ' '")//加載數據spark.sql("LOAD DATA LOCAL INPATH 'file:///D:/person.txt' INTO TABLE person2")//查看有哪些表spark.sql("show tables").show()//查詢數據spark.sql("select * from person2").show()}
}

總結

以上是生活随笔為你收集整理的2021年大数据Spark(三十一):Spark On Hive的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。