【问题标题】:Copy files from Hadoop multiple directories to edge node folder将文件从 Hadoop 多个目录复制到边缘节点文件夹
【发布时间】:2020-06-22 14:40:04
【问题描述】:

我在hadoop中有多个目录如下

/env/hdfsdata/ob/sample/partfile..
/env/hdfsdata/ob/sample_1/partfile..
/env/hdfsdata/ob/sample_2/partfile..

我是 hadoop 和 shell 脚本的新手,正在寻找一种将示例目录 (sample*) 中存在的文件复制到边缘节点文件夹位置的方法,假设 sample 是文件名的前缀,文件应命名如下/p>

sample.txt
sample_1.txt
sample_2.txt

一旦将文件复制到 edgenode,就必须在 hadoop 中删除相应目录的位置。我曾尝试使用通配符列出目录,然后使用 shell 脚本和 cat 命令处理这些目录,但面临找不到此类目录的问题。

【问题讨论】:

  • 我想在这里粘贴您的代码将有助于其他人了解您的尝试和使用方法,他们将能够提出建议。
  • 每个文件夹只有一个零件文件吗?
  • @Snigdhajyoti 是的,我正在使用 spark 写入 hadoop 文件夹。将只有一个文件,另一个将是成功的
  • 建议以您尝试过的内容为起点更新帖子,成员不会为您编写脚本.... 对如何修改文件名更改的基本理解将几乎相同执行HDFS...

标签: bash shell hadoop hdfs


【解决方案1】:

使用getmerge 从多个文件中创建一个文件

#!/bin/bash

dl() {
    FILENAME=$1
    BASE_DIR='/env/hdfsdata/ob'
    hadoop fs -getmerge "${BASE_DIR}/${FILENAME}/*" "${FILENAME}.txt"
}

FILENAME='sample'
dl "${FILENAME}"  # sample
for i in `seq 2`; do 
   dl "${FILENAME}_${i}"  # sample_1, sample_2
done 

hadoop 和 shell 脚本的新手

你可以使用 Java/Python/etc 来做同样的事情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多