将数据从HDFS发送到特定计算机

时间:2018-07-02 10:17:42

标签: apache-spark hadoop hdfs distributed-computing

我在HDFS中存储了一个大文件,在最后一列中有一个机器地址,我想将每一行发送到ap地址并将其存储在文本文件中(在本地文件系统上而不是HDFS上)可以吗我找不到在spark或hadoop中执行此操作的方法。

输入文件示例:

attr1  attr2 ..attrN  192.168.40.5
attr1  attr2 ..attrN  192.168.40.19

1 个答案:

答案 0 :(得分:0)

我找不到使用hadoop或spark的方法,因为您无法告诉那些框架将数据发送到哪里,但是我找到了一种获取所需结果的方法,步骤如下所示:

  1. 将字符串RDD转换为key / val RDD,其中密钥为ip,然后按密钥分组。
  2. 将每个项目保存在HDFS上的单独文件中(此link会有所帮助)
  3. 创建一个Python脚本,该脚本使用parallel ssh来执行hadoop fs -copyToLocal,并为每台计算机提供适当的参数