栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Sqoop拉取数据到hive数据库的Parquet格式分区表

Sqoop拉取数据到hive数据库的Parquet格式分区表

Sqoop拉取数据到hive数据库的Parquet格式分区表

问题

sqoop拉取语句查询结果 解决

Hcatalogsqoop使用Hcatalog参数参数解释

问题

在使用sqoop拉取数据到hive数据库时,如果hive中的表是parquet格式的分区表,那么虽然显示拉取数据成功,但查询数据时会出问题

sqoop拉取语句
/opt/cloudera/parcels/CDH/bin/sqoop import  
--username xxxx 
--password 'xxx' 
--connect "jdbc:oracle:thin:@255.255.255.255:1521/db"  
--bindir /var/log/sqoop_bin/ 
--table oracle.tablename 
--hive-database hive_dbname 
--hive-table hive_tablename 
--as-parquetfile 
--fields-terminated-by '001' 
--lines-terminated-by 'n' 
--hive-drop-import-delims 
--null-string '\N' 
--null-non-string '\N' 
-m 1
查询结果
ERROR: File 'hdfs://nameservice1/user/hive/warehouse/xxxxxx/part-m-00000' has an invalid version number: N1

This could be due to stale metadata. Try running "refresh xxxxx".
解决

使用Hcatalog参数拉取数据

Hcatalog

HCatalog是一个用于Hadoop的表和存储管理服务,它使用户使用不同的数据处理工具Pig、MapReduce和Hive时更容易读写数据。HCatalog的“表抽象”向用户展示了Hadoop分布式文件系统(HDFS)中的数据相关的视图,并确保用户无需担心他们的数据被存储在哪里或以什么格式存储,例如:RCFile格式,文本文件,或SequenceFiles。

HCatalog支持以任何可以编写SerDe(序列化器-反序列化器)的格式读写文件。默认情况下,HCatalog支持RCFile、CSV、JSON和SequenceFile格式。要使用一个自定义的格式,你必须提供InputFormat和OutputFormat以及SerDe。

sqoop使用Hcatalog参数
/opt/cloudera/parcels/CDH/bin/sqoop import  
--username xxxx 
--password 'xxx' 
--connect "jdbc:oracle:thin:@255.255.255.255:1521/db"  
--bindir /var/log/sqoop_bin/ 
--table oracle.tablename 
--hcatalog-database hive_dbname 
--hcatalog-table hive_tablename 
--hcatalog-partition-keys dt 
--hcatalog-partition-values '20220114' 
--fields-terminated-by '001' 
--lines-terminated-by 'n' 
--hive-drop-import-delims 
--null-string '\N' 
--null-non-string '\N' 
-m 1
参数解释
--table                      源库中的表名
--hcatalog-database          Hive中的库名
--hcatalog-table             Hive库中的表名,需要抽取的表
--hcatalog-partition-keys    分区字段
--hcatalog-partition-values  分区值
--fields-terminated-by       字段间的分隔符
--lines-terminated-by        表示行尾的字符
--hive-drop-import-delims    当导入到hive中时,去掉字符串字段中的'n'、'r'、'1'
--null-string                指定当字符串字段为空时的字符
--null-non-string            指定当非字符串字段为空时的字符
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/707137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号