首页 > 其他分享 >Hadoop集群迁移(元数据及HDFS数据)

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

时间:2023-12-24 17:33:21浏览次数:32  
标签:HDFS tables Hadoop hive 集群 module 2.2 txt 数据

1.背景

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

2.集群迁移步骤

2.1 数据迁移

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 建表语句导出

[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
#创建数据库后,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
scp -P 12898 hadoop@xxx:/data/tablesDDL.txt /data

2.2.4 运行文件

SQL
[root@hadoop101 module]# hive -f tablesDDL.txt

2.2.5 修复分区

[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

标签:HDFS,tables,Hadoop,hive,集群,module,2.2,txt,数据
From: https://www.cnblogs.com/tuoluzhe8521/p/17924614.html

相关文章

  • 数据库(DDL)学习历程一
    数据定义语言(DDL)数据库操作【1】数据库的创建语法:createdatabase<数据库名>;样例:createdatabasestudy;【2】数据库的展示showdatabases;【3】数据库的删除语法:dropdatabase<数据库名>样例:dropdatabasestudy;【4】数据库的使用语法:use<数据库名>样例:usestu......
  • 无涯教程-PostgreSQL - 更新数据(Update)
    PostgreSQLUPDATE查询用于修改表中的现有记录,您可以将WHERE子句与UPDATE查询一起使用来更新选定的行,否则,将更新所有行。使用WHERE子句的UPDATE查询的基本语法如下-UPDATEtable_nameSETcolumn1=value1,column2=value2....,columnN=valueNWHERE[condition];您可以使用......
  • 数据结构习题24/12/24
    这道题目可以考虑,如果前缀是一样的长度,那么只需要两个链表同时向后检索,直到找到一样的元素为止。所以应该先找到两个链表的长度,然后将较长的一个链表的多出来的前缀部分删掉,也就不去看这一部分。因为后缀都是一样的,所以长度的差异只可能来自前缀。解决代码:typedefstructNode{......
  • 企业计算机服务器中了babyk勒索病毒怎么办,babyk勒索病毒解密数据恢复
    在数字化的今天,网络安全威胁不断增加,给企业的生产生活带来了严重影响,使得企业不得不重视数据安全问题。近日,云天数据恢复中心接到企业求助,企业的计算机服务器中了babyk勒索病毒,导致企业所有计算机系统瘫痪,无法正常工作,严重影响了企业正常业务开展。Babyk勒索病毒是babuk勒索家族,该......
  • 无涯教程-PostgreSQL - 插入数据(Insert)
    PostgreSQLINSERTINTO语句允许将新行插入表中,一个查询可以一次插入一行或几行。INSERTINTO语句的基本语法如下-INSERTINTOTABLE_NAME(column1,column2,column3,...columnN)VALUES(value1,value2,value3,...valueN);在这里,columnN,column1,columnN是要在其中插入数......
  • 数据库选型(结构化数据)
     (一)从应用方向、数据体量、用户访问量三个方面考虑应用方向,以事务为主还是以分析为主数据体量,以分析为主,最大数据数据量多少、中位数多少;以事务为主,每秒插入量多少,一天的数据量多少用户操作类型,事务提交,需要实时响应,充分考虑并发;分析统计类操作,实时性要求相对低一些。(二)场景示......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • 无涯教程-PostgreSQL - 创建数据库
    本章讨论如何在PostgreSQL中创建新数据库,PostgreSQL提供了两种创建新数据库的方式-使用SQL命令CREATEDATABASE。使用createdb一个命令行可执行文件。使用CREATE命令该命令将从PostgreSQLShell提示符创建数据库,但是您应该具有创建数据库的适当特权。CREATEDATABASE语句......
  • 无涯教程-PostgreSQL - 删除数据库
    在本章中,无涯教程将讨论如何在PostgreSQL中删除数据库。删除数据库有两个选项-使用DROPDATABASE,这是一个SQL命令。使用dropdb是命令行可执行文件。使用DROP命令此命令删除数据库,它删除数据库的目录条目,并删除包含数据的目录,它只能由数据库所有者执行,当您或其他任何人连接到......