日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

spark指定hive字段_Spark2.0集成Hive操作的相关配置与注意事项

發(fā)布時間:2025/4/5 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark指定hive字段_Spark2.0集成Hive操作的相关配置与注意事项 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

補充說明

Hive中metastore(元數(shù)據(jù)存儲)的三種方式:內(nèi)嵌Derby方式

Local方式

Remote方式

[一]、內(nèi)嵌Derby方式這個是Hive默認的啟動模式,一般用于單元測試,這種存儲方式有一個缺點:在同一時間只能有一個進程連接使用數(shù)據(jù)庫。

配置文件 hive-site.xml 中jdbc URL、驅(qū)動、用戶名、密碼等的配置信息

執(zhí)行初始化命令:schematool -dbType derby -initSchema

查看初始化后的信息: schematool -dbType derby -info

配置完成后就可在shell中以CLI的方式訪問hive 進行操作驗證。

[二]、Local方式以本地Mysql數(shù)據(jù)庫為例:創(chuàng)建好用戶:hive;database:hive。

配置文件 hive-site.xml 中jdbc URL、驅(qū)動、用戶名、密碼等屬性值配置信息

ps:需要把數(shù)據(jù)庫的驅(qū)動包copy到目錄 /lib 中

如果是第一次需要執(zhí)行初始化命令:schematool -dbType mysql -initSchema

查看初始化后信息 schematool -dbType mysql -info

初始化后查看mysql中表情況:show tables;

配置完成后就可在shell中以CLI的方式訪問hive 進行操作驗證。

[三]、Remote方式以Postgres數(shù)據(jù)庫(192.168.174.200)為例:創(chuàng)建好用戶:hive;database:hive_meta。Remote方式需要分別配置服務(wù)端和客戶端的配置文件:

服務(wù)端的 hive-site.xml 中jdbc URL、驅(qū)動、用戶名、密碼等屬性值配置如下:

ps:需要把Postgres的驅(qū)動包copy到目錄 /lib 中

如果是第一次需要執(zhí)行初始化命令:schematool -dbType mysql -initSchema

客戶端中配置內(nèi)容修改如下:

hive.metastore.uris

thrift://192.168.174.200:9083

Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.

hive.metastore.warehouse.dir

/user/hive/warehouse

location of default database for the warehouse

hive metastore 服務(wù)端啟動命令:

hive --service metastore -p

如果不加端口默認啟動:hive --service metastore,則默認監(jiān)聽端口是:9083 ,注意客戶端中的端口配置需要和啟動監(jiān)聽的端口一致。服務(wù)端啟動正常后,客戶端就可以執(zhí)行hive操作了。

以下異常,可通過Remote方式配置解決。

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStor

Spark2.0安裝

下載

Source code: Spark 源碼,需要編譯才能使用,另外 Scala 2.11 需要使用源碼編譯才可使用

Pre-build with user-provided Hadoop: “Hadoop free” 版,可應(yīng)用到任意 Hadoop 版本

Pre-build for Hadoop 2.7 and later: 基于 Hadoop 2.7 的預(yù)先編譯版,需要與本機安裝的 Hadoop 版本對應(yīng)。可選的還有 Hadoop 2.4 and later、Hadoop 2.3、Hadoop 1.x,以及 CDH 4。

解壓

tar -zxvf spark-2.0.0-bin-hadoop2.7.tgz

移動文件夾

mv spark-2.0.0-bin-hadoop2.7 /usr/local/hadoop/

修改配置文件

新建修改spark-env.sh

cd /usr/local/hadoop/spark-2.0.0-bin-hadoop2.7/conf

cp spark-env.sh.template spark-env.sh在spark-env.sh文件頂部添加以下內(nèi)容

export SPARK_MASTER_HOST=127.0.0.1

export SPARK_LOCAL_IP=127.0.0.1

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.0

export HIVE_HOME=/usr/local/hadoop/apache-hive-2.1.1-bin

export HIVE_CONF_DIR=${HIVE_HOME}/conf

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

export SPARK_CLASSPATH=$HIVE_HOME/lib:$SPARK_CLASSPATH

根據(jù)實際情況進行相應(yīng)修改

export SPARK_MASTER_HOST=127.0.0.1

export SPARK_LOCAL_IP=127.0.0.1是為了解決

Spark2.0單機模式無法啟動master的問題

未配置會顯示以下異常

Exception in thread "main" java.net.BindException: 無法指定被請求的地址: Service 'sparkMaster' failed after 16 retries (starting from 7077)! Consider explicitly setting the appropriate port for the service 'sparkMaster' (for example spark.ui.port for SparkUI) to an available port or increasing spark.port.maxRetries.

集成訪問已安裝的Hive1、拷貝$HIVE_HOME/conf/hive-site.xml和hive-log4j.properties到 $SPARK_HOME/conf/

2、在$SPARK_HOME/conf/目錄中,修改spark-env.sh,添加

export HIVE_HOME=/usr/local/hadoop/apache-hive-2.1.1-bin

export SPARK_CLASSPATH=$HIVE_HOME/lib:$SPARK_CLASSPATH

3、另外也可以設(shè)置一下Spark的log4j配置文件,使得屏幕中不打印額外的INFO信息:

log4j.rootCategory=WARN, console

為解決以下異常:

Caused by: MetaException(message:Version information not found in metastore. )需修改conf/hive-site.xml 中的 “hive.metastore.schema.verification” 值為 false即可解決

修改spark-submit、spark-sql

在文件頂部添加以下內(nèi)容:

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.0

export HIVE_HOME=/usr/local/hadoop/apache-hive-2.1.1-bin

export HIVE_CONF_DIR=${HIVE_HOME}/conf

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

為了解決以下異常:

EXCEPTION: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment. in spark

啟動

啟動spark-sql

spark-sql

啟動spark-submit

spark-submit --class com.gm.hive.SparkHive.App --master yarn /usr/local/hadoop/kczyqktj_spark-0.0.1-SNAPSHOT-allinone.jar

JAVA編寫Spark2.0程序的注意事項

訪問已有Hive

.config("spark.sql.warehouse.dir", "/user/hive/warehouse/").enableHiveSupport()完整示例

package com.gm.hive.SparkHive;

import org.apache.spark.sql.Dataset;

import org.apache.spark.sql.Row;

import org.apache.spark.sql.SparkSession;

/**

* Spark sql獲取Hive數(shù)據(jù)

*

*/

public class App {

public static void main(String[] args) {

SparkSession spark = SparkSession.builder().master("local[2]")

.appName("SparkHive")

.config("spark.sql.warehouse.dir", "/user/hive/warehouse/").enableHiveSupport()

.getOrCreate();

spark.sql("show databases").show();

spark.sql("show tables").show();

spark.sql("use db_hive_edu");

Dataset data = spark

.sql("select hc_storetypeid,count(hc_storetypeid) from db_hive_edu.hc_casewoodlist where hc_wpstate=2 and hc_storetypeid !='null' group by hc_storetypeid order by hc_storetypeid");

data.show();

}

}相關(guān)地址:

http://spark.apache.org/docs/2.0.0/sql-programming-guide.html

總結(jié)

以上是生活随笔為你收集整理的spark指定hive字段_Spark2.0集成Hive操作的相关配置与注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。