EMR集群迁移自建Hadoop(元数据及HDFS数据)

1.背景

老集群采用的腾讯emr集群,使用过程中磁盘扩容成本费用高且开源组件兼容性存在问题,因此决定采用自建hadoop集群,需要将emr的元数据和hdfs基础数据迁移过来。

EMR版本:3.1.2

自建Hadoop版本:3.1.3

2.集群迁移步骤

2.1 数据迁移

bash 复制代码
nohup hadoop distcp -i -p hdfs://emrhdf存储地址/usr/hive/warehouse/* hdfs://自建hadoop集群地址/usr/hive/warehouse/ >/data/temp.log 2>&1 &
# distcp即dist分布式,cp复制。用于在集群内部及集群之间复制数据。即分布式复制。
# 使用例子:
使用distcp.bytes.per.map控制map数量,mapreduce.job.queuename指定队列,mapreduce.job.name指定job名称
hadoop distcp -Ddistcp.bytes.per.map=1073741824 -Dmapreduce.job.queuename=hive -Dmapreduce.job.name=cpdata hdfs://cloudcluster/apps/hive/warehouse/db/data hdfs://xxxx:8020/user/hive/warehouse/db/data

2.2 元数据迁移

2.2.1 建表语句导出

bash 复制代码
[root@hadoop101 module]# vim exportHive.sh
#!/bin/bash
hive -e "use databashe;show tables" >tables.txt
cat tables.txt | while read eachline
do
hive -e "use databashe;show create table $eachline" >>tablesDDL.txt
echo ";" >> tablesDDL.txt
done

2.2.2 替换不合适的内容

bash 复制代码
Bash
#创建数据库后,tablesDDL.txt文本中,在最上方加上use databashe;
[root@hadoop101 module]# sed -i "s#HDFS85410#mycluster#g" tablesDDL.txt
#方法二:sed -i "s/原字符串/新字符串/g" grep 原字符串 -rl 所在目录
#代码示例:
sed -i "s#xxxx:8020#xxxx#g" 'grep mahuinan -rl ./'

2.2.3 表定义语句复制到另一个集群

bash 复制代码
Bash
scp -P 12898 hadoop@xxx:/data/tablesDDL.txt /data

2.2.4 运行文件

bash 复制代码
SQL
[root@hadoop101 module]# hive -f tablesDDL.txt

2.2.5 修复分区

bash 复制代码
[root@hadoop101 module]# vim msckPartition.sh
#!/bin/bash
hive -e "use databashe;show tables">tables.txt
cat tables.txt |while read eachline
do
hive -e "use databashe;MSCK REPAIR TABLE $eachline"
done
[root@hadoop101 module]# chmod +777 msckPartition.sh
[root@hadoop101 module]# ./msckPartition.sh
相关推荐
张人玉几秒前
LiveCharts WPF MVVM 图表开发笔记
大数据·分布式·wpf·livecharts
建投数据13 分钟前
建投数据再度获评国家级“高新技术企业”
大数据·人工智能
中电金信16 分钟前
中电金信助力200+金融机构同步迁移SWIFT ISO20022标准
大数据·人工智能
山沐与山35 分钟前
【Flink】Flink编程模型:DataStream与DataSet
大数据·flink
面向Google编程35 分钟前
Flink源码阅读:如何生成ExecutionGraph
大数据·flink
飞凌嵌入式1 小时前
AIoT出海背景下,嵌入式主控的国际认证之路与价值思考
大数据·人工智能·嵌入式硬件·区块链·嵌入式
longxibo1 小时前
【Ubuntu datasophon1.2.1 二开之三:解决HDFS安装后,启动失败:sudo: unknown user hdfs】
linux·ubuntu·hdfs
面向Google编程2 小时前
Flink源码阅读:状态管理
大数据·flink
面向Google编程2 小时前
Flink源码阅读:Checkpoint机制(下)
大数据·flink