前言

补充说明

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操作的相关配置与注意事项相关推荐

  1. Servlet3.0 || IDEA与tomcat的相关配置

    好处:         * 支持注解配置.可以不需要web.xml了. * 步骤:         1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml       ...

  2. 2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置

    目录 一.VirtualBox 虚拟机的安装 1. VirtualBox 的下载和安装 2. 设置 VirtualBox 存储文件夹 3. 在 VirtualBox 创建虚拟机 二.Linux 操作系 ...

  3. carbondate mysql_CarbonData集成Hive、Spark

    硬件准备: 系统:CentOS 7.6(1810) CPU:4核 内存:16G 软件准备: 注意: 在carbondata-1.6.1中,有组件版本限制,具体为: hadoop支持到2.7.2 hiv ...

  4. 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...

  5. Hive 1.1.0 某些字段的查询结果为NULL

    现象查询fct_traffic_navpage_path_detl的2015-01-19 分区显示结果如下: Hive 1.1.0 返回结果如下,可见最后一个字段为NULL 87FQEZT1UEDXJ ...

  6. 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. ...

  7. hive值乘以0.01保留一位小数_Hive窗口函数01-SUM、MIN、MAX、AVG

    Hive窗口函数sum.min.max.avg入门 1. 数据说明 现有 hive 表 cookie1, 内容如下: hive> select * from cookie1; cookie1 2 ...

  8. hue集成mysql报错_hue集成hive访问报database is locked

    这个问题这应该是hue默认的SQLite数据库出现错误,你可以使用mysql postgresql等来替换 hue默认使用sqlite作为元数据库,不推荐在生产环境中使用.会经常出现database ...

  9. spark3 本地读hive 1.1.0版本,解决版本兼容问题

    Spark3 读 hive 1.1.0 遇到的问题 Exception in thread "main" org.apache.spark.sql.AnalysisExceptio ...

最新文章

  1. Redis简介、特性、优势、应用场景和nosql介绍
  2. (转)I,P,B帧和PTS,DTS的关系
  3. 为什么多数企业选择托管SD-WAN,而不是自行组建?—Vecloud微云
  4. axure 如何设置选项联动_Axure下拉框级联操作
  5. 用jfreechart在JSP页面显示点状分布图+分割线(转载:http://blog.csdn.net/ami121/article/details/2450945)
  6. AI应用开发实战 - 手写识别应用入门
  7. PyTorch基础(part7)--CNN
  8. Do not wait until the conditions are perfect to begin. Beginning makes the conditions perfect(转)...
  9. Mybatis中的updateByPrimaryKeySelective()和updateByPrimaryKey()
  10. Java面试题超详细讲解系列之七【MySQL篇】
  11. python自动搜索最佳超参数之GridSearchCV函数
  12. BAT专家详解勒索病毒冲击波:勒索物联网时代的开端
  13. 什么是TOGAF?TOGAF初学者指南
  14. ArduinoUNO实战-第一章-LED闪烁实验
  15. Android学习笔记-隐藏app图标
  16. 小程序笔记 -- 封装函数
  17. 去除字符串中所有的空格
  18. crmeb 易联云k4小票打印机相关配置说明
  19. ireport4.5在JVM中添加新字体解决方案(Font ‘標楷體‘ is not available to the JVM. See the Javadoc for more details.)
  20. 我国实战攻防演练的发展现状

热门文章

  1. 工作上,我到底想要什么呢?
  2. PC机I/O端口分配列表
  3. java ssh连接 如何不使用密码_如何在java中为ssh连接设置密码
  4. 在线地图插件forarcmap_QGIS基础篇插件安装(在线地图纠偏)
  5. 3.11 程序示例--逻辑运算-机器学习笔记-斯坦福吴恩达教授
  6. 2021/6/18~19 每天学习python 30分钟 -了解python - python的基本变量概述
  7. DFTug - Getting Started(下篇)
  8. ubuntu12.10 64位编译Android4.1
  9. 老司机又开车(来不及解释,快上!)之秒懂单片机指针!
  10. 【DIY】不到20元,升级热水器加装远程wifi控制功能,esp8266远程红外控制热水器启动...