hive,将hdfs数据传输到本地系统并返回

pqwbnv8z  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(380)

我是hadoop管理新手:)
我有一个apachehadoop2.4.1集群,有8个节点,使用了16tbdfs(在任何xml文件中都找不到复制因子),hive0.13有一个mysql元存储。
目标:将集群上的数据备份到nfs驱动器,卸载集群,安装其他发行版(cloudera、hortonworks)并将数据从nfs驱动器重新加载到此新集群。
有两个配置单元表,分别是956gb(约90亿行)和32gb(几百万行)以及其他一些较小的表。
关注/疑问:
如何在nfs驱动器上备份整个集群?目前,我有一台安装了nfs驱动器的独立机器(不是集群的一部分)
最糟糕的方法是将表导出到csv/tsv文件到nfs驱动器,并在新集群准备就绪时将其加载到新集群中,但是将这些大表导出到csv/tsv会让我感到不舒服,但我想不出其他方法
根据我的理解,distcp在hdfs级别工作,所以我不确定是否可以使用它来更快地从hdfs复制到nfs和nfs到新的hdfs。这是因为我还需要备份配置单元元数据,然后使其与新发行版一起工作,这可能是不可能的
我应该如何进行这个迁移,或者至少是从hdfs到nfs的数据传输?

jjjwad0x

jjjwad0x1#

我们遵循以下步骤:
创建新的hadoop集群
使用distcp将数据复制到新群集
删除旧群集
如果这不是一个选择
编写shell脚本,可以使用hadoopfs-get复制数据
确保应用逻辑时,可以使用nohup以hdfs目录或文件模式作为参数并行运行相同的shell脚本

polkgigr

polkgigr2#

使用 Hadoop fs -get 命令将文件传输到nas。假设nas安装在其中一个hadoop节点上。对于配置单元元数据运行 "SHOW CREATE TABLE tablename" 命令获取可以在新集群中运行的create语句。
尽管上述步骤符合你的目的。建议使用distcp直接将数据从现有集群复制到新集群。和配置单元ddl脚本

相关问题