首页 > 其他分享 >hive 创建 s3 外表

hive 创建 s3 外表

时间:2024-12-10 23:32:48浏览次数:10  
标签:fs name s3 hive 外表 key s3a

背景

有个比较大的技术侧需求: 将数据从 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

标签:fs,name,s3,hive,外表,key,s3a
From: https://www.cnblogs.com/smiecj/p/18598352

相关文章

  • jQuery和CSS3炫酷3D旋转画廊特效插件
    这是一款效果非常炫酷的jQuery和CSS33D旋转画廊特效插件。第一个DEMO是一个简单的例子,使用CSS3来制作3d旋转效果,然后用js来控制前后导航按钮。第二个DEMO是第一个DEMO的升级版,它增加了图片标题、查看图片、键盘控制等其它功能。在线演示下载 HTML结构这个3D画廊的HTML结......
  • textillate-jQuery和css3文字动画特效库
    textillate.js是一款效果炫酷的jQuery和css3文字动画特效库插件。它通过结合其它一些动画库来制作各种CSS3文字动画特效。在线演示下载 如何使用基本的html结构如下:<h1class="tlt">MyTitle</h1>在页面的头部引入jQuery和jquery.textillate.js文件。......
  • mongodb数据同步到hive
    背景用户需求:需要将mongodb的数据同步到hive表,共2亿+条数据,总数据量约30G查阅一些博客后,大致同步方法有以下几种手动+离线对于比较小的数据,可以先通过mongoexport将数据导出到本地json文件,再将json直接上传到hdfs,创建hive表关联到这个文件即可这种方式非......
  • 使用css3实现小车行驶的动画效果
    <!DOCTYPEhtml><html><head><title>CarAnimation</title><style>body{background-color:#f0f0f0;}.container{width:800px;height:200px;margin:50pxauto;border:1pxsolid#ccc;position:relative......
  • 使用css3制作雪花效果
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>SnowfallEffect</title&......
  • 0元试用!NXP S32K312 新品系列核心板免费体验
    NXPS32K312是一颗汽车通用型MCU,可应用在汽车和工业等领域,包括车身、域控制器、以及电气化等应用。此次大大通联合世平集团推出基于NXPS32K312系列核心板免费试用活动,我们将招募10位试用者来体验!无论您是学生、电子爱好者、还是资深工程师,我们都欢迎您来参加试用,体验......
  • 启动hive出现Error 拒绝连接
    解决方法:首先启动两个服务再连接:这是前台服务,会占用两个独立的窗口,再复制第三个窗口连接hive[root@hadoop102hive]$bin/hive--servicehiveserver2[root@hadoop202hive]$hive--servicemetastore最后在进行jdbc连接[root@hadoop102hive]$bin/beeline-ujdb......
  • java批量修改hive_sql文件
    java批量修改hive_sql文件场景:需要批量迁移sql代码,有几百个sql文件按需要处理,一个个处理的非常费时费力修改要求:1:注释删除分区脚本--ALTERTABLEtest_db.clauseDROPpartition(pt_day='${hivevar:runDate}');2:新增清空表脚本truncatetabletest_db.claus......
  • jQuery和css3全屏弹出式导航菜单特效插件
    这是一款效果非常酷的jQuery和css3全屏弹出式导航菜单特效插件。 在线预览 下载HTML结构html结构使用一个<header>作为wrapper。里面放logo、登录/注册按钮和用于触发全屏导航菜单的触发按钮。全屏导航菜单放置在header外面,为它使用easier的CSStransformation效果。<......
  • 6UCPCI板卡设计方案:8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平
    基于双TMS320C6678+XC7K420T的6UCPCIExpress高速数据处理平台 1、板卡概述板卡由我公司自主研发,基于6UCPCI架构,处理板包含双片TIDSPTMS320C6678芯片;一片Xilinx公司FPGAXC7K420T-1FFG1156芯片;六个千兆网口(FPGA两个,DSP四个);DSP与FPGA之间RapidIOX4......