spark指定hive字段_Spark2.0集成Hive操作的相关配置与注意事项
前言
补充说明
Hive中metastore(元数据存储)的三种方式:内嵌Derby方式
Local方式
Remote方式
[一]、内嵌Derby方式这个是Hive默认的启动模式,一般用于单元测试,这种存储方式有一个缺点:在同一时间只能有一个进程连接使用数据库。
配置文件 hive-site.xml 中jdbc URL、驱动、用户名、密码等的配置信息
执行初始化命令:schematool -dbType derby -initSchema
查看初始化后的信息: schematool -dbType derby -info
配置完成后就可在shell中以CLI的方式访问hive 进行操作验证。
[二]、Local方式以本地Mysql数据库为例:创建好用户:hive;database:hive。
配置文件 hive-site.xml 中jdbc URL、驱动、用户名、密码等属性值配置信息
ps:需要把数据库的驱动包copy到目录 /lib 中
如果是第一次需要执行初始化命令:schematool -dbType mysql -initSchema
查看初始化后信息 schematool -dbType mysql -info
初始化后查看mysql中表情况:show tables;
配置完成后就可在shell中以CLI的方式访问hive 进行操作验证。
[三]、Remote方式以Postgres数据库(192.168.174.200)为例:创建好用户:hive;database:hive_meta。Remote方式需要分别配置服务端和客户端的配置文件:
服务端的 hive-site.xml 中jdbc URL、驱动、用户名、密码等属性值配置如下:
ps:需要把Postgres的驱动包copy到目录 /lib 中
如果是第一次需要执行初始化命令:schematool -dbType mysql -initSchema
客户端中配置内容修改如下:
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 服务端启动命令:
hive --service metastore -p
如果不加端口默认启动:hive --service metastore,则默认监听端口是:9083 ,注意客户端中的端口配置需要和启动监听的端口一致。服务端启动正常后,客户端就可以执行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” 版,可应用到任意 Hadoop 版本
Pre-build for Hadoop 2.7 and later: 基于 Hadoop 2.7 的预先编译版,需要与本机安装的 Hadoop 版本对应。可选的还有 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文件顶部添加以下内容
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
根据实际情况进行相应修改
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、另外也可以设置一下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
在文件顶部添加以下内容:
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数据
*
*/
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();
}
}相关地址:
http://spark.apache.org/docs/2.0.0/sql-programming-guide.html
spark指定hive字段_Spark2.0集成Hive操作的相关配置与注意事项相关推荐
- Servlet3.0 || IDEA与tomcat的相关配置
好处: * 支持注解配置.可以不需要web.xml了. * 步骤: 1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml ...
- 2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置
目录 一.VirtualBox 虚拟机的安装 1. VirtualBox 的下载和安装 2. 设置 VirtualBox 存储文件夹 3. 在 VirtualBox 创建虚拟机 二.Linux 操作系 ...
- carbondate mysql_CarbonData集成Hive、Spark
硬件准备: 系统:CentOS 7.6(1810) CPU:4核 内存:16G 软件准备: 注意: 在carbondata-1.6.1中,有组件版本限制,具体为: hadoop支持到2.7.2 hiv ...
- 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...
- Hive 1.1.0 某些字段的查询结果为NULL
现象查询fct_traffic_navpage_path_detl的2015-01-19 分区显示结果如下: Hive 1.1.0 返回结果如下,可见最后一个字段为NULL 87FQEZT1UEDXJ ...
- Hudi 0.11.0 + Flink1.14.4 + Hive + Flink CDC + Kafka 集成
Hudi 0.11.0 + Flink1.14.4 + Hive + Flink CDC + Kafka 集成 一.环境准备 1.1 软件版本 Flink 1.14.4Scala 2.11CDH 6. ...
- hive值乘以0.01保留一位小数_Hive窗口函数01-SUM、MIN、MAX、AVG
Hive窗口函数sum.min.max.avg入门 1. 数据说明 现有 hive 表 cookie1, 内容如下: hive> select * from cookie1; cookie1 2 ...
- hue集成mysql报错_hue集成hive访问报database is locked
这个问题这应该是hue默认的SQLite数据库出现错误,你可以使用mysql postgresql等来替换 hue默认使用sqlite作为元数据库,不推荐在生产环境中使用.会经常出现database ...
- spark3 本地读hive 1.1.0版本,解决版本兼容问题
Spark3 读 hive 1.1.0 遇到的问题 Exception in thread "main" org.apache.spark.sql.AnalysisExceptio ...
最新文章
- Redis简介、特性、优势、应用场景和nosql介绍
- (转)I,P,B帧和PTS,DTS的关系
- 为什么多数企业选择托管SD-WAN,而不是自行组建?—Vecloud微云
- axure 如何设置选项联动_Axure下拉框级联操作
- 用jfreechart在JSP页面显示点状分布图+分割线(转载:http://blog.csdn.net/ami121/article/details/2450945)
- AI应用开发实战 - 手写识别应用入门
- PyTorch基础(part7)--CNN
- Do not wait until the conditions are perfect to begin. Beginning makes the conditions perfect(转)...
- Mybatis中的updateByPrimaryKeySelective()和updateByPrimaryKey()
- Java面试题超详细讲解系列之七【MySQL篇】
- python自动搜索最佳超参数之GridSearchCV函数
- BAT专家详解勒索病毒冲击波:勒索物联网时代的开端
- 什么是TOGAF?TOGAF初学者指南
- ArduinoUNO实战-第一章-LED闪烁实验
- Android学习笔记-隐藏app图标
- 小程序笔记 -- 封装函数
- 去除字符串中所有的空格
- crmeb 易联云k4小票打印机相关配置说明
- ireport4.5在JVM中添加新字体解决方案(Font ‘標楷體‘ is not available to the JVM. See the Javadoc for more details.)
- 我国实战攻防演练的发展现状
热门文章
- 工作上,我到底想要什么呢?
- PC机I/O端口分配列表
- java ssh连接 如何不使用密码_如何在java中为ssh连接设置密码
- 在线地图插件forarcmap_QGIS基础篇插件安装(在线地图纠偏)
- 3.11 程序示例--逻辑运算-机器学习笔记-斯坦福吴恩达教授
- 2021/6/18~19 每天学习python 30分钟 -了解python - python的基本变量概述
- DFTug - Getting Started(下篇)
- ubuntu12.10 64位编译Android4.1
- 老司机又开车(来不及解释,快上!)之秒懂单片机指针!
- 【DIY】不到20元,升级热水器加装远程wifi控制功能,esp8266远程红外控制热水器启动...