Spark无法读取hive 3.x的表数据】的更多相关文章

通过Ambari2.7.3安装HDP3.1.0成功之后,通过spark sql去查询hive表的数据发现竟然无法查询 HDP3.0 集成了hive 3.0和 spark 2.3,然而spark却读取不了hive表的数据,准确来说是内表的数据. 原因hive 3.0之后默认开启ACID功能,而且新建的表默认是ACID表.而spark目前还不支持hive的ACID功能,因此无法读取ACID表的数据. 请看:https://issues.apache.org/jira/browse/SPARK-153…
Exception: Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "BoneCP" plugin to create a ConnectionPool gave an error : The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH…
Spark SQL读取数据Oracle的数据时,发现number类型的字段在读取的时候精度丢失了,使用的spark版本是Spark2.1.0的版本,竟然最后经过排查和网上查资料发现是一个bug.在Spark2.1.2以上的版本解决了这个问题. number类型的数据通过spark sql的jdbc读取的时候回变成DecimalType的类型.同时精度不会丢失,在2.1.2版本之前读取过来是IntType类型的. Spark issues列表: 通过JDBC读取Oracle数据打印的DataFra…
hive编程指南中有个employees表,默认的分隔符比較繁杂,编辑起来不太方便(普通编辑器编辑的控制字符^A等被当成字符串处理了,没有起到分隔符的作用). 收集的解决方式例如以下: http://www.myexception.cn/software-architecture-design/1351552.html http://blog.csdn.net/lichangzai/article/details/18703971 切记,简单的文本编辑器编辑例如以下的内容,分隔符是没被识别的,^…
背景: 场景需求1:使用spark直接读取HBASE表 场景需求2:使用spark直接读取HIVE表 场景需求3:使用spark读取HBASE在Hive的外表 摘要: 1.背景 2.提交脚本 内容 场景需求1:使用spark直接读取HBASE表 编写提交脚本: export SPARK2_HOME=/var/lib/hadoop-hdfs/spark--bin-hadoop2. export HBASE_LIB_HOME=/opt/cloudera/parcels/CDH/lib/hbase $…
[Spark][Hive][Python][SQL]Spark 读取Hive表的小例子$ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive hive> > CREATE TABLE IF NOT EXISTS customers( > cust_id string, > name string, > country string > ) > ROW FORMAT DELIMITED FIELDS TERMI…
假设这里出错的表为test表. 现象 Hive读取正常,不会报错,Spark读取就会出现: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://testcluster/user/hive/warehouse/.... 在hive中执行desc formatted test;然后找到hdfs存储路径.然后hdfs dfs -ls <your table path>会发现,报错的路径确实…
R通过RJDBC包连接Hive 目前Hive集群是可以通过跳板机来访问 HiveServer, 将Hive 中的批量数据读入R环境,并进行后续的模型和算法运算. 1. 登录跳板机后需要首先在Linux下进行配置 从root权限切换到bzsys用户,才能够通过验证读取Hive.首先需要配置Hadoop的临时环境变量CLASSPATH路径 su bzsys export CLASSPATH=$CLASSPATH:/etc/hadoop/conf 2. 下载并安装RJDBC包 Linux下直接运行R的…
### 读取hive的表结构,生成带comment的视图建表语句 # 读取配置文件中的表并进行遍历 grep -v '^#' tablesFile|while read tableName do status= viewName=$(echo ${tableName}|sed "s/^dwd_/dwd_cms_out_l_/i"|sed "s/^dws_/dws_cms_out_l_/i"|sed "s/^ads_/ads_cms_out_l_/i&quo…
spark可以通过读取hive的元数据来兼容hive,读取hive的表数据,然后在spark引擎中进行sql统计分析,从而,通过spark sql与hive结合实现数据分析将成为一种最佳实践.配置步骤如下: 1.启动hive的元数据服务 hive可以通过服务的形式对外提供元数据读写操作,通过简单的配置即可  编辑 $HIVE_HOME/conf/hive-site.xml,增加如下内容:<property><name>hive.metastore.uris</name>…
Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive-hbase-handler.jar工具类 : hive-hbase-handler.jar在hive的lib包中而不是在hbase的lib中,hive0.6版本以后: 创建hive表的同时创建hbase表,删除 hive表的同时也会删除对应的hbase表. 参见官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegr…
简要介绍了SparkSQL与Hive on Spark的区别与联系 一.关于Spark 简介 在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题. 架构 Spark的架构如下图所示,主要包含四大组件:Driver.Master.Worker和Executor. Spark特点 Spark可以部署在YARN上 Spark原生支持对HDFS文件系统的访问 使用Scala语言编写 部署模型 单机模型:主要用来开发测试.特点:Driver.Mast…
本博文的主要内容如下: Hive文件存储格式 Hive 操作之表操作:创建外.内部表 Hive操作之表操作:表查询 Hive操作之表操作:数据加载 Hive操作之表操作:插入单表.插入多表 Hive语法结构:where 查询.all 和 distinct 选项.基于 Partition 的查询.基于 HAVING 的查询. LIMIT 限制查询. GROUP BY 分组查询. ORDER  BY 排序查询.SORT BY 查询.DISTRIBUTE BY 排序查询.CLUSTER BY 查询 H…
由于我Spark采用的是Cloudera公司的CDH,并且安装的时候是在线自动安装和部署的集群.最近在学习SparkSQL,看到SparkSQL on HIVE.下面主要是介绍一下如何通过SparkSQL在读取HIVE的数据. (说明:如果不是采用CDH在线自动安装和部署的话,可能需要对源码进行编译,使它能够兼容HIVE. 编译的方式也很简单,只需要在Spark_SRC_home(源码的home目录下)执行如下命令: ./make-distribution.sh --tgz -Phadoop-2…
思想是通过调用hive -e命令,然后解析返回的结果. 以下的hive.lsp文件是一个样例,提供了读取本地hive数据库名称.表名,表结构和依据hive表的创建语句生成相应的MySQL的创建语句. 最新代码參考我在gitlab.com上的开源项目: https://gitlab.com/newlisp/armory.git ;; hive.lsp ;; @module hive ;; @description hive module provides some features for man…
开始直接在 CDH Pyspark 的环境里面运行 Ipython . spark = SparkSession \ .builder \ .master('yarn') \ .appName('md_day_dump_users') \ .enableHiveSupport() \ .getOrCreate() In [3]: spark.sql('show databases').show()+------------+|databaseName|+------------+| defaul…
1.背景: 控制上游文件个数每天7000个,每个文件大小小于256M,50亿条+,orc格式.查看每个文件的stripe个数,500个左右,查询命令:hdfs fsck viewfs://hadoop/nn01/warehouse/…….db/……/partition_date=2017-11-11/part-06999 -files -blocks; stripe个数查看命令:hive --orcfiledump viewfs://hadoop/nn01/warehouse/…….db/tab…
使用的是idea编辑器 spark sql从hive中读取数据的步骤:1.引入hive的jar包 2.将hive-site.xml放到resource下 3.spark sql声明对hive的支持 案例: def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession .builder() .appName(s"${this.getClass.getSimpleName}") .master(…
[分桶概述] Hive表分区的实质是分目录(将超大表的数据按指定标准细分到指定目录),且分区的字段不属于Hive表中存在的字段:分桶的实质是分文件(将超大文件的数据按指定标准细分到分桶文件),且分桶的字段必须在Hive表中存在.   分桶的意义在于: 可以提高多表join的效率(因为通过分桶已经将超大数据集提取出来了.假如原数据被分了4个桶,此时2表join的时候只需要读取符合条件的一个分桶,则理论上效率可提升4倍) 加速数据抽样的效率(理由同上,只需要按照指定规则抽取指定分桶的数据即可,不需要…
在一个监控相关的Java项目中,需要读取windows系统的注册表,搜索到使用 JRegistery 可以解决.代码如下: /** * @author digdeep@126.com */ public class RegstryUtil { //"HKEY_LOCAL_MACHINE" public static final RegistryKey LOCALMACHINE = RegistryKey.getRootKeyForIndex(RegistryKey.HKEY_LOCAL…
视图中头部添加 @using System.Collections; 循环读取哈希表数据 <ul id="AccessView" class="sys_spec_text"> @foreach (DictionaryEntry item in (ViewBag.FieldsValues as Hashtable)) { <li title="@item.Value"> <a id="@item.Key&qu…
insert overwrite table store select t.p_key,t.sort_word from ( select p_key, sort_word , row_number()over(distribute by p_key sort by sort_word) as rn from store) t ; Hive上一个典型表内除重的写法, p_key为除重依据, sort_word 为排序依据,一般为时间   rn为排名. 这里就留下第一名 注意hql 方言中, 表的…
概要: 计算HIVE BI库下每天数据表总大小及增量 输出: 总大小:xxxG 日同比新增数据量:xxxG 周同比新增数据量:xxxG 月同比新增数据量:xxxG 总表数:xxx 日新增表数:xxx 周新增表数:xxx 月新增表数:xxx 最大的20张表: ...... 表数据增量TOP20: ...... 代码: bi_report.sh #!/bin/bash GIGA=1000000000 content="\n" prefix='bi' today=`date -d"…
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭…
原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关配置 1主机名更改以及主机和IP做相关映射 更改主机名 做主机和IP的关系映射 2ssh免登录 3防火墙关闭 4时间配置 5快捷键设置可选 6整体环境变量设置 二Hadoop的环境搭建 1JDK配置 2hadoop配置 21 文件准备 22 环境配置 23 修改配置文件 231 修改 core-si…
一 概述 就像我们所了解的sql一样,Hive也是一种数据仓库,不同的是hive是在hadoop大数据生态圈中所用.这篇博客我主要介绍Hive的简单表运用. Hive是Hadoop 大数据生态圈中的数据仓库,其提供以表格的方式来组织与管理HDFS上的数据.以类SQL的方式来操作表格里的数据. Hive的设计目的是能够以类SQL的方式查询存放在HDFS上的大规模数据集,不必开发专门的MapReduce应用. Hive本质上相当于一个MapReduce和HDFS的翻译终端,用户提交Hive脚本后,H…
4.大表join小表优化 和join相关的优化主要分为mapjoin可以解决的优化(即大表join小表)和mapjoin无法解决的优化(即大表join大表),前者相对容易解决,后者较难,比较麻烦. 首先介绍大表join小表优化.以销售明细表为例来说明大表join小表的场景. 假如供应商进行评级,比如(五星.四星.三星.二星.一星),此时因为人员希望能够分析各供应商星级的每天销售情况及其占比. 开发人员一般会写出如下SQL: select  seller_star, count(order_id)…
文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. SELECT * FROM table_name ORDER BY rand() LIMIT 5; rand在手册里是这么说的: RAND() ,RAND(N) :返回在范…
1.内部表 内部表Load数据有两种方式:① Load data ***:②hdfs dfs -put ****.这是因为在Metastore文件,即mysql的hive数据库的“SDS”表中,保存着Hive表对应的hdfs路径信息. 内部表在Load数据时,如果使用LOCAL关键字,Hive会把本地文件系统中的数据文件复制到Hive的 /warehouse 目录.反之,则是将HDFS上的数据文件剪切到 /warehouse 目录. Hive在Load数据时,并不检查目录中的文件是否符合表所声明…
1. 封装链接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class DBhelp { public static final String url = "jdbc:mysql://***:3306/databas…