【完美解决】Spark-SQL、Hive多 Metastore、多后端、多库
【完美解决】Spark-SQL、Hive多 Metastore、多后端、多库
【完美解决】Spark-SQL、Hive多 Metastore、多后端、多库
SparkSQL 支持同时连接多种 Metastore,包括Atlas2(PB),Hive 0.12+几种格式。用户可以在一条SQL语句中操作来自多个 Metastore 的表。
配置 Metastore
按照正常的使用方式配置 conf/hive-site.xml
比如配置访问 mysql:
|
执行 spark-sql:
|
可以看到已经可以正常访问 mysql 了。
添加一个 Metastore
添加一个新的 metastore 需要在 conf/ 中新增加一个配置文件,比如 hive-site2.xml(文件名无限制),里边配置新的metastore,实例内容如下:
|
然后启动 spark-sql 客户端:
|
费元星的hive-site.xml 配置:
<configuration>
<!--如果没有配置说明,等于耍流氓 by feiyuanxing-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://IP:prot/app/ns/df</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>hdfs://IP:prot/app/ns/df/tmp/hive-${user.name}</value>
<description>Scratch space for Hive jobs</description>
</property>
<property>
<name>hive.security.authorization.enabled</name>
<value>false</value>
</property>
<!-- -->
<property>
<name>hive.metastore.client.connect.retry.delay</name>
<value>-1</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.thrift.framed.transport.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.use.combined</name>
<value>true</value>
</property>
<!-- 连接mysql -->
<property>
<name>metaclient.config.mysql</name>
<value>hive-site-mysql.xml</value>
</property>
<property>
<name>metaclient.alias.mysql</name>
<value>mysql.mysql</value>
</property>
<property>
<name>metaclient.config.hive</name>
<value>hive-site-hive.xml</value>
</property>
<property>
<name>metaclient.alias.hive</name>
<value>hive.hive</value>
</property>
</configuration>
跨 Metastore 操作
经过上边两步配置,当前系统中一共存在两个 metastore: mysql 和 hive2. 而且我们通过为 hive2 中的 default 数据指定别名为 default2 避免了命名冲突的问题,那么现在就可以同时操作两个数据库中的表了。比如:
|
【完美解决】Spark-SQL、Hive多 Metastore、多后端、多库的更多相关文章
- Caused by: java.sql.SQLException: Failed to start database 'metastore_db' with class loader org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1@d7c365, see the next exception for details.
解决方法:https://stackoverflow.com/questions/37442910/spark-shell-startup-errors 异常: 18/01/29 19:04:27 W ...
- Spark SQL Hive Support Demo
前提: 1.spark1.0的包编译时指定支持hive:./make-distribution.sh --hadoop 2.3.0-cdh5.0.0 --with-yarn --with-hive - ...
- 基于Git的数据库sql文件的管理——完美解决团队sql操作协同问题
目录 基于Git的数据库sql文件的管理--完美解决团队sql操作协同问题 1.产生背景 2.之前没用Git管理数据库出现的问题 2.1 用同一个库调试带来的问题 3.解决方案 3.1 Sql文件的创 ...
- local模式运行spark-shell时报错 java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':
先前在local模式下,什么都不做修改直接运行./spark-shell 运行什么问题都没有,然后配置过在HADOOP yarn上运行,之后再在local模式下运行出现以下错误: java.lang. ...
- Spark SQL -- Hive
使用Saprk SQL 操作Hive的数据 前提准备: 1.启动Hdfs,hive的数据存储在hdfs中; 2.启动hive -service metastore,元数据存储在远端,可以远程访问; 3 ...
- spark sql/hive小文件问题
针对hive on mapreduce 1:我们可以通过一些配置项来使Hive在执行结束后对结果文件进行合并: 参数详细内容可参考官网:https://cwiki.apache.org/conflue ...
- 小记---------spark组件与其他组件的比较 spark/mapreduce ;spark sql/hive ; spark streaming/storm
Spark与Hadoop的对比 Scala是Spark的主要编程语言,但Spark还支持Java.Python.R作为编程语言 Hadoop的编程语言是Java
- 解决Spark读取Hive分区表出现Input path does not exist的问题
假设这里出错的表为test表. 现象 Hive读取正常,不会报错,Spark读取就会出现: org.apache.hadoop.mapred.InvalidInputException: Input ...
- Spark记录-org.apache.spark.sql.hive.HiveContext与org.apache.spark.sql.SQLContext包api分析
HiveContext/SQLContext val hiveContext=new HiveContext(new SparkContext(new SparkConf().setAppName(& ...
- Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder': —— windows 开发环境使用spark 无法访问hdfs 问题解决
## 错误: ## 解决方案: 下载 hadoop 的可执行tar包,解压放在windows 本地,并配置环境变量. 在 解压后的文件夹的bin目录下放入两个文件: winutils.exe, had ...
随机推荐
- mxnet导入图像数据
图像的标签在一个json文件中. %matplotlib inline import json import gluonbook as gb import mxnet as mx from mxnet ...
- Redis配置文件(2)SNAPSHOTTING快照/APPEND ONLY MODE追加
redis.conf文件 1.Save a. save 秒钟 写操作次数 RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件, 默认 是1分钟内改了1万次, 或5 ...
- 显示mac电脑中隐藏的文件和文件夹
显示mac电脑中隐藏的文件和文件夹的办法:打开电脑,cd到相应的文件夹,输入以下命令,为显示隐藏的文件和文件夹 defaults write com.apple.finder AppleShowAll ...
- 关于 Vue.js+Element-UI 日期控件 日期范围选择
理想效果 : 也就是说前面时间框的时间能选的范围应该小于等于后面的时间框; 后面时间框能选的范围应该大于等于前面的时间框; 示例代码 : 页面: <el-form-item label=&quo ...
- 支持向量机通俗导论(理解SVM的三层境界)[转]
作者:July .致谢:pluskid.白石.JerryLead.说明:本文最初写于2012年6月,而后不断反反复复修改&优化,修改次数达上百次,最后修改于2016年11月.声明:本文于201 ...
- 第26章 FMC—扩展外部SDRAM
本章参考资料:<STM32F76xxx参考手册2>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于SDR ...
- 关于SQL优化这些你了解吗?
目录树 背景 优化点 前提必备知识 优化之一 - 从数据库设计方面考虑 优化之二 - 从SQL语句优化方面考虑 优化之三 - 读写分离与分库分表 背景 在当今这个互联网的时代无非要解决两大难题,其一是 ...
- tomcat端口被占用如何解决
有时候我们在eclipse中启动项目时,Tomcat服务器会报错,显示8080.8009.8005这几个端口被占用,此时你用debug启动项目时会发现不管用,console控制台什么信息也没有,此时产 ...
- iOS11、iPhone X、Xcode9 适配指南
更新iOS11后,发现有些地方需要做适配,整理后按照优先级分为以下三类: 1.单纯升级iOS11后造成的变化: 2.Xcode9 打包后造成的变化: 3.iPhoneX的适配 一.单纯升级iOS11后 ...
- MySql is marked as crashed and should be repaired问题
在一次电脑不知道为什么重启之后数据库某表出现了 is marked as crashed and should be repaired这个错误,百度了一下,很多都是去找什么工具然后输入命令之类的,因为 ...