配置Hive使用MySql存储元数据 2018-7-24 作者: 张子阳 分类: 大数据处理 默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。...Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。 本文假设你已经单机安装、配置好了MySql和Hive。...的数据库(也可以在hive-site.xml中将其修改为其他名字)。...这个时候,可以登录到mysql,删除掉hive_metastore数据库,然后执行一下下面的命令,重新初始化一下元数据库: # schematool --dbType mysql --initSchema...MySql来存储Hive元数据的配置。
默认情况下,Hive的元数据是存储到Derby中的,这是Apache的一个纯Java编写的小巧数据库,类似于Sqlite。...但是这样就会出现一个情况:Derby是单例的,当你在一个终端打开了hive时,在另外一个终端打开hive命令行会报错。所以使用MySQL来存储元数据能够解决这个问题,并且也更方便迁移和备份。...Hive的metastore 的MySQL数据库的字符集格式问题。...2、配置MySQL后,第一次打开hive的时候Cli无响应: 这个问题查阅了很多资料并没有找到更加详细的信息,但是经过DEBUG初步判断还是MySQL数据库的问题,导致Hive第一次启动时无法正常完成Metastore...的数据表的初始化,按照上述第三步,在启动Hive前初始化下数据表即可:使用 schematool -dbType mysql -initSchema 命令进行初始化。
Hive可以将结构化的数据映射为一张数据表 而默认hive进行存储的数据库是derby 启动我们的hadoop服务 当我们安装好hive后,要将mysql-connector-java-xx.jar...的文件包放到hive目录下的lib文件夹下: ?...这时候我们还需要配置相关的文件才能激活mysql数据库,我们到conf目录下的hive-site xml,设定几个mysql的相关部分: mysql用户名称: ?...启动完本机的mysql后,输入hive --service metastore开启mysql元数据库服务 最后输入hive即可: ?
Hive的数据存储 从表(Table)、外部表(External Table)、分区(Partition)和桶(Bucket)。...每一个Table在Hive中都有一个相应的目录存储数据。...删除表时,元数据与数据都会被删除。...它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异。...、复合类型、用户自定义函数UDF、查询优化和权限控制)(非常好) http://www.cnblogs.com/zlslch/p/5660205.html Hive的元数据存储 Single User
本文将介绍如何在 Hive 中进行元数据更新的相关操作。什么是 Hive 元数据在 Hive 中,元数据是指描述数据的数据,包括表的结构、分区信息、数据存储路径等。...元数据由 Hive 的元数据库(Metastore)管理,用于跟踪和管理数据库和表的元信息。通过元数据,用户可以了解数据的组织方式、存储位置以及表之间的关系等重要信息。Hive 元数据更新方式1....,用于跟踪和管理存储在 Hive 中的数据组织、结构和位置等重要元信息。...元数据存储Hive 的元数据存储在一个独立的元数据存储库中,通常来说,Hive 默认使用关系型数据库(如 MySQL、PostgreSQL)作为元数据存储后端。...这个元数据存储库中包含了关于数据表、分区、列、属性、表关系等信息。2. 元数据管理元数据在 Hive 中由元数据库(Metastore)进行管理,元数据库负责存储、维护和查询元数据信息。
Hive中所有的数据都存储在HDFS中,没有专门的数据存储格式(可支持Text、SequenceFile、ParquetFile、RCFILE等)。...只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。 Hive中包含以下数据模型: DB、Table、External Table、Partition、Bucket。...db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹 table:在hdfs中表现所属db目录下一个文件夹 external table:与table类似...,不过其数据存放位置可以指定任意路径 partition:在hdfs中表现为table目录下的子目录 bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件 https://www.cnblogs.com
前面我所用的表hive_table其实用hive查询时查得还是hdfs上的数据,那我们用mysql到底是存储的什么,元数据到底是什么?...元数据其实是数据的类型和我们用hive怎么拆分这个表的信息的合集,比如说我去查看我的mysql上的元数据到底长什么样 (1)先进入hive数据库(此数据库事先已经创建好,在hive的配置文件中我们已经设置好...(2)进入hive数据库 ? (3)查看此数据库里面的表 ? DBS表是一个关键的表,查看它: ? 这里就可以看见这份数据在hdfs中的位置 TBLS表 ? ?
Hive支持的存储数据的格式主要有:TEXTFILE(行式存储) 、SEQUENCEFILE(行式存储)、ORC(列式存储)、PARQUET(列式存储)。 列式存储和行式存储 ?...一个orc文件可以分为若干个Stripe 一个stripe可以分为三个部分 indexData:某些列的索引数据 rowData :真正的数据存储 StripFooter:stripe的元数据信息...Parquet文件是以二进制方式存储的,所以是不可以直接读取的,文件中包括该文件的数据和元数据,因此Parquet格式文件是自解析的。...通过该值和文件长度可以计算出元数据的偏移量,文件的元数据中包括每一个行组的元数据信息和该文件存储数据的Schema信息。...除了文件中每一个行组的元数据,每一页的开始都会存储该页的元数据,在Parquet中,有三种类型的页:数据页、字典页和索引页。
hive2、hive3、hive4 的元数据全部合并到 hive1 的元数据 Mysql 中,然后就可以在 hive1 中处理 hive2、hive3、hive4 中的数据。...,进行元数据迁移; 迁移过程控制在十分钟之内,以减少对迁移方的业务影响; 元数据合并的难点 hive 的元数据信息(metastore)一般是通过 Mysql 数据库进行存储的,在 hive-1.2.1...版本中元数据信息有 54 张表进行了存储,比如存储了数据库名称的表 DBS、存储表名称的表 TBLS 、分区信息的 PARTITIONS 等等。...文件中中配置源和目的数据库的 JDBC 配置项 执行元数据迁移命令 hive-tools 会在迁移元数据之前首先检查源和目的元数据库中重名的 hive db,终止元数据迁移操作并给出提示 执行删除重名数据库命令...再次执行执行元数据迁移命令 检查元数据迁移命令窗口日志或文件日志,如果发现元数据合并出错,通过对目的数据库进行执行删除指定 hive db 的命令,将迁移过去的元数据进行删除,如果没有错误,通过 hive
Atlas 部署之后就可以导入 Hive 元数据,这部分工作由 Atlas 组件 Hook 来完成。...初次导入 Hive 元数据需要通过执行 shell 脚本来完成,然后,Atlas 就可以自动同步增量元数据信息了。下面我介绍一下如何完成这些工作。...初次导入 Hive 元数据 看了很多教程,按图索翼进行操作时,遇到了各种错误,还好,最后我成功了,成功的感觉真的很棒。...到这里,准备工作就做完了,依次启动 hadoop、zookeeper、hbase、hive、atlas 之后,即可执行 import-hive.sh 脚本,尝试导入 Hive 元数据,如果还有报错,对症分析或者联系我...自动同步增量元数据 Atlas Hook 可以实现自动同步增量元数据,只需要你启动 Kafka 集群即可。
概念 MetaSore 是 Hive 元数据存储的地方。Hive 数据库、表、函数等的定义都存储在 Metastore 中。根据系统配置方式,统计信息和授权记录也可以存储在此处。...配置参数 参数说明 hive.metastore.local 本地或远程元数据存储。...hive.metastore.uris 远程元数据存储的 Thrift URI。元数据服务客户端通过该配置连接远程元数据。...javax.jdo.option.ConnectionURL 元数据存储的 JDBC 连接 URL javax.jdo.option.ConnectionDriverName 元数据存储的 JDBC 驱动类...javax.jdo.option.ConnectionUserName 元数据存储数据库用户名 javax.jdo.option.ConnectionPassword 元数据存储数据库密码 hive.metastore.warehouse.dir
Hive是什么: 由Facebook开源,最初用于解决海量结构化的日志数据统计问题 是一个构建在Hadoop之上的数据仓库,可以对已经在存储(HDFS)中的数据进行结构化的映射。...并提供了一个命令行工具和JDBC驱动程序来连接并操作Hive Hive定义了一种类SQL查询语言:HQL(类似SQL但不完全相同),使用SQL方便了分布式存储中大型数据集的读取、写入和管理 通常用于进行离线数据处理...、ORC、Parquet等)以及自定义函数 为什么要使用Hive: 简单、容易上手,提供了类似SQL查询语言HQL,只要有SQL基础就能上手 为超大数据集设计的计算/存储扩展能力(MR计算,HDFS存储...) 统一的元数据管理,可与Presto/Impala/SparkSQL等共享数据 Hive体系架构图: ?...默认是使用derby这种内嵌数据库来存储在Hive中创建的表、列、分区等元数据信息,但在生产环境中肯定不会使用内嵌数据库,而是将元数据存储在外部的数据库中,例如MySQL。
Hive数据存储: Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以自由组织Hive中的表,只需要在创建表的时候告诉Hive数据中的分隔符(列分隔和行分隔),Hive就可以解析数据...hive的数据都存储在HDFS,我们这地方讲的存储主要只Hive中的数据模型存储。...: 在HDFS上对应相应的数据存储目录,通过hive的配置文件hive-site.xml的hive.metastore.warehouse.dir属性来配置。...table: 每个表在hive中都是Database路径下的一个存储目录。...Partition: 在hive中,表中的每个partition对应于表下的一个子存储目录 Buckets: 每个Buckets对应一个存储文件。
此次博主为大家带来的是Hive的数据存储格式。 Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET。 1. 列式存储和行式存储 ? ...rowData:真正的数据存储 StripFooter:stripe的元数据信息 1.Index Data:一个轻量级的index,默认是每隔1W行做一个索引。...Parquet格式 Parquet文件是以二进制方式存储的,所以是不可以直接读取的,文件中包括该文件的数据和元数据,因此Parquet格式文件是自解析的。 ...通过该值和文件长度可以计算出元数据的偏移量,文件的元数据中包括每一个行组的元数据信息和该文件存储数据的Schema信息。...除了文件中每一个行组的元数据,每一页的开始都会存储该页的元数据,在Parquet中,有三种类型的页:数据页、字典页和索引页。
Hive的数据存储格式 Hive支持的存储数的格式主要有:TEXTFILE(行式存储) 、SEQUENCEFILE(行式存储)、ORC(列式存储)、PARQUET(列式存储)。...列存储的特点: 因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个字段的数据类型一定是相同的,列式存储可以针对性的设计更好的设计压缩算法。.../myhive.db/log_orc; 2.8 M /user/hive/warehouse/log_orc/123456_0 3、Parquet 1)创建表,存储数据格式为parquet create.../myhive.db/log_orc_snappy ; 3.8 M /user/hive/warehouse/log_orc_snappy/123456_0 3、上一节中默认创建的ORC存储方式,导入数据后的大小为...原因是orc存储文件默认采用ZLIB压缩。比snappy压缩的小。 4、存储方式和压缩总结: 在实际的项目开发当中,hive表的数据存储格式一般选择:orc或parquet。
元数据是基础,这篇文章值得一读。 本文介绍Hive元数据库中一些重要的表结构及用途,方便Impala、SparkSQL、Hive等组件访问元数据库的理解。...1、存储Hive版本的元数据表(VERSION) 该表比较简单,但很重要。...2、Hive数据库相关的元数据表(DBS、DATABASE_PARAMS) DBS:该表存储Hive中所有数据库的基本信息,字段如下: 表字段 说明 示例数据 DB_ID 数据库ID 1 DESC 数据库描述...文件存储信息相关的元数据表 主要涉及SDS、SD_PARAMS、SERDES、SERDE_PARAMS,由于HDFS支持的文件格式很多,而建Hive表时候也可以指定各种文件格式,Hive在将HQL解析成...通过GRANT语句对数据库授权后,将会在这里存储。 IDXS 索引表,存储Hive索引相关的元数据 INDEX_PARAMS 索引相关的属性信息 TBL_COL_STATS 表字段的统计信息。
初始化元数据信息,在数据库derby中生成Shema数据 schematool -dbType derby -initSchema 获取元数据Schema信息 schematool -dbType...derby -info 将元数据Schema信息升级到当前版本,upgradeSchemaFrom参数指定旧的hive版本 schematool -dbType derby -upgradeSchemaFrom...将hive元数据信息迁移到spark目录中 schematool -moveDatabase db1 -fromCatalog hive -toCatalog spark 将Hive数据库和表迁移到...Spark中 # 在spark中创建对应数据库newdb,用于接收hive迁移来的数据库 beeline ......db1 -toDatabase newdb Hive Schema Tool解决Hive元数据问题十分方便,而且还支持数据迁移到Spark,当真是一款运维利器。
知识储备 Hive指定表的存储路径: hive可以在创建表的时候通过location指定表的存储路径,若不指定localtion则文件默认存储在hive-site.xml配置文件中hive.metastore.warehouse.dir...此外,Hive的分区表还可以指定分区的存储路径。通过如下语句可以给分区指定: 1. 添加分区并指定location。...可能有以下几个原因希望将部分数据存储到cos上: 历史数据一般很少修改,很适合放在cos上(读取性能更优),且cos比hdfs更经济。 hdfs的存储的数据太多容易导致datanode进程挂掉。...into test partition (b=1) values (3); 发现此处插入的数据仍存储在hdfs上 “Moving data to directory hdfs://HDFS3758/hive...查询分区数据 select * from test where b = 1; 缺陷 insert操作可以成功执行,但数据依然存储在表的location指向的目录下; load操作无法执行 Failed
一、存储格式行存储和列存储 行存储可以理解为一条记录存储一行,通过条件能够查询一整行数据。 列存储,以字段聚集存储,可以理解为相同的字段存储在一起。...二、Hive文件存储格式 TEXTFILE Hive数据表的默认格式,存储方式:行存储。 可以使用Gzip压缩算法,但压缩后的文件不支持split。...结合了行存储和列存储的优点: RCFile 保证同一行的数据位于同一节点,因此元组重构的开销很低 像列存储一样,RCFile 能够利用列维度的数据压缩,并且能跳过不必要的列读取 数据追加:RCFile不支持任意方式的数据写操作...:用户可以对最终生成的Hive表的数据通常也需要压缩。...SequenceFile压缩率最低,查询速度一般,将数据存放到sequenceFile格式的hive表中,这时数据就会压缩存储。三种压缩格式NONE,RECORD,BLOCK。是可分割的文件格式.
前一篇文章说了怎样搭建 Hive 环境,但是 Hive 使用的是默认 Derby 数据库作为元数据库,今天说说怎样把 Hive 的元数据库从默认的 Derby 改成 PostgreSQL 数据库。...安装 PostgreSQL 因为这里是侧重 Hive 的配置,所以安装和配置 PostgreSQL 的步骤就省略了。...配置 Hive 使用 PostgreSQL 编辑 ${HIVE_HOME}/conf/hive-site.xml文件,如果文件不存在,创建之。 初始化PostgreSQL $ bin/schematool -dbType postgres -initSchema 测试 $ bin/hive...hive> show databases; OK default Time taken: 0.067 seconds, Fetched: 1 row(s) hive> show tables; OK
领取专属 10元无门槛券
手把手带您无忧上云