将数据从 hdfs 发送到特定机器

Send data from hdfs to specific machines

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

输入文件示例:

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

我没有找到使用 hadoop 或 spark 的方法,因为你无法告诉那些框架将数据发送到哪里,但我找到了一种方法来获得我想要的结果,步骤如下像这样:

  1. 将字符串RDD转成key/valRDD,key为ip,然后key分组
  2. 将每个项目保存在 HDFS 上的单独文件中(这 link 会有所帮助)
  3. 创建一个 python 脚本,使用 parallel ssh 执行 hadoop fs -copyToLocal 并为每台机器设置适当的参数