自己制作音乐的软件免费,上海seo怎么优化,企业所得税怎么算2021,西安优秀的集团门户网站建设费用背景
有个比较大的技术侧需求: 将数据从 HDFS 迁移到 s3。当然在真正迁移之前#xff0c;还需要验证迁移到 s3 的数据#xff0c;和上层查询器#xff08;hive、presto 之间的兼容性#xff09;
这里我们对一张业务表的数据做个简单的迁移测试
验证
数据迁移
为了让 h…背景
有个比较大的技术侧需求: 将数据从 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.keys3_key
fs.s3a.secret.keys3_secret
fs.s3a.endpoints3服务端地址
fs.s3a.connection.ssl.enabledfalse因为公司内部 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
LOCATIONs3a://bucket_name/data/db_name/table_name;其他配置
1、ranger 权限配置
在 ranger 上集成 hive 插件后从 hive 权限首页能看到将包含 url、库表、hiveservice 和 udf 四项权限配置。需要在 ‘url’ 配置中添加用户权限
2、presto、trino 配置
访问 s3 数据需要额外加上以下配置
hive.s3.aws-access-keys3_key
hive.s3.aws-secret-keys3_secret
hive.s3.endpoints3服务端地址
hive.s3.ssl.enabledfalse