【完美解决】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 ...
随机推荐
- codeforces Flipping Game 题解
版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/.未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...
- mysql 表名区分大小写
原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /etc/my.cnf:2.在[mysqld]节点下,加入一行: lowe ...
- redis 哈希数据类型简单操作(实现购物车案例)
这里不累赘如何安装redis和php redis扩展,主要熟悉调用redis哈希数据类型 简单方法操作如下 1:hSet 2:hGet 4:hDel 5:hGetAll 4:hExists 5:hI ...
- ESlint 语法检测配置说明
部分vue-cli脚手架创建的默认eslint规则: 代码末尾不能加分号 ; 代码中不能存在多行空行 tab键不能使用,必须换成两个空格 代码中不能存在声明了但未使用的变量 关闭eslint 这里只说 ...
- Spring(十七)之表单处理
表单处理在实际开发中,非常常见,比如登录.注册或者新增.修改等等. 希望本示例对于初学者有一定的提升和帮助 该表单实例,主要说明MVC,相当于前台表单提交,提交相当于一个Http请求,这个请求通过Co ...
- HashMap和Hashtable的详细区别
1.Hashtable是线程安全,HashMap是非线程安全 HashMap的性能会高于Hashtable,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用 ...
- rabbitmq+topic+java
可参照github代码:https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/java/EmitLogTopic.java 1. 新建m ...
- HTML中IMG标签总结
一.Img标签有两个重要的属性: 1.src 属性:图片的地址 2.alt 属性:图片不显示是现实的文字 二.Img标签是行级元素: img.input属于行内替换元素.height/width/ ...
- 【读书笔记】The Swift Programming Language (Swift 4.0.3)
素材:Language Guide 初次接触 Swift,建议先看下 A Swift Tour,否则思维转换会很费力,容易卡死或钻牛角尖. 同样是每一章只总结3个自己认为最重要的点.这样挺好!强迫你去 ...
- Webstorm设置代码提示
下载路径: https://github.com/virtoolswebplayer/ReactNative-LiveTemplate 本插件可以配合Webstorm设置代码提示. Mac下安装 We ...