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
相关推荐
王小王-1233 小时前
基于 Hadoop + Flask 的电动汽车数据分析与可视化系统设计与实现
hadoop·数据分析·flask·电动汽车·新能源汽车数据分析·新能源汽车销量分析·新能源汽车销售分析
云器科技4 小时前
螳螂科技:从组装到统一,如何用云器 Lakehouse 完美替代“MC+DW+ADB”三件套?
数据库·数据仓库·人工智能
王小王-1234 小时前
基于机器学习与Hadoop的心脏病数据分析与可视化设计与实现
hadoop·机器学习·数据分析·心脏病预测
知识分享小能手4 小时前
Hadoop学习教程,从入门到精通, Hadoop 3.x 高可用集群 — 知识点详解(6)
大数据·hadoop·学习
王小王-12321 小时前
基于商品评价的评论情感分析与可视化系统
hive·情感分析·商品评价分析·主题分析·商品评论分析
知识分享小能手1 天前
Hadoop学习教程,从入门到精通, ZooKeeper 分布式协调服务 — 全面知识点与案例代码(5)
hadoop·分布式·zookeeper
Nefu_lyh1 天前
【Hive】 八、Hive 计算引擎:MapReduce / Tez / Spark 对比与选型
hive·spark·mapreduce
知识分享小能手2 天前
Hadoop学习教程,从入门到精通, MapReduce分布式计算框架 — 完整知识点与代码案例(4)
hadoop·学习·mapreduce
白日与明月2 天前
Hive子查询中的ORDER BY陷阱:为什么排序“消失”了?
数据仓库·hive·hadoop
段一凡-华北理工大学2 天前
工业领域的Hadoop架构学习~系列文章24:adoop工业应用总结与展望 - 技术路线图与最佳实践
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁