hive 创建 s3 外表

背景

有个比较大的技术侧需求: 将数据从 HDFS 迁移到 s3。当然在真正迁移之前,还需要验证迁移到 s3 的数据,和上层查询器(hive、presto 之间的兼容性)

这里我们对一张业务表的数据做个简单的迁移测试

验证

数据迁移

为了让 hdfs 指令能直接操作 s3 的数据,参考 Using DistCp with Amazon S3

先在 hdfs-site 中添加配置 fs.s3a.access.key 、 fs.s3a.secret.key 、 fs.s3a.endpoint 和 fs.s3a.connection.ssl.enabled 四个配置

复制代码
fs.s3a.access.key=s3_key
fs.s3a.secret.key=s3_secret
fs.s3a.endpoint=s3服务端地址
fs.s3a.connection.ssl.enabled=false(因为公司内部 s3 服务没开 ssl)

重启 hdfs 使得配置生效后,通过 distcp 将 hdfs 数据搬到 s3

复制代码
hadoop distcp hdfs://emr/data/db_name/table_name s3a://bucket_name/data/db_name/table_name

如上,我们尽量保证了迁移后数据的路径和原路径保持一致

通过 s3cmd 确认数据是否搬过来了:

复制代码
s3cmd ls s3://bucket_name/data/db_name/table_name/

查询验证

新建 hive 外表并指向 s3 路径:

(注意:s3 路径一定要正确,否则建表和查询数据都不会报错,但查出的数据为空)

复制代码
CREATE EXTERNAL TABLE `db_name`.`table_name`(
  `id` bigint COMMENT '',
  ...)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION
  's3a://bucket_name/data/db_name/table_name';

其他配置

1、ranger 权限配置

在 ranger 上集成 hive 插件后,从 hive 权限首页能看到将包含 url、库表、hiveservice 和 udf 四项权限配置。需要在 'url' 配置中添加用户权限

2、presto、trino 配置

访问 s3 数据需要额外加上以下配置:

复制代码
hive.s3.aws-access-key=s3_key
hive.s3.aws-secret-key=s3_secret
hive.s3.endpoint=s3服务端地址
hive.s3.ssl.enabled=false
相关推荐
B站计算机毕业设计超人12 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
B站计算机毕业设计超人12 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城12 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark
王九思12 天前
Hive Thrift Server 介绍
数据仓库·hive·hadoop
土拨鼠烧电路12 天前
笔记11:数据中台:不是数据仓库,是业务能力复用的引擎
数据仓库·笔记
Asher050912 天前
Hive核心知识:从基础到实战全解析
数据仓库·hive·hadoop
xhaoDream12 天前
Hive3.1.3 配置 Tez 引擎
大数据·hive·tez
yumgpkpm12 天前
AI视频生成:Wan 2.2(阿里通义万相)在华为昇腾下的部署?
人工智能·hadoop·elasticsearch·zookeeper·flink·kafka·cloudera
Asher050912 天前
Hadoop核心技术与实战指南
大数据·hadoop·分布式