如何用spark保存HDFS中的数据?

时间:2017-01-31 09:59:11

标签: hadoop apache-spark hdfs spark-streaming

我想使用Spark Streaming从Kafka检索数据。现在,我想将数据保存在远程HDFS中。我知道我必须使用saveAsText函数。但是,我不知道如何指定路径。

如果我这样写,那是否正确:

myDStream.foreachRDD(frm->{
    frm.saveAsTextFile("hdfs://ip_addr:9000//home/hadoop/datanode/myNewFolder");
});

其中ip_addr是我的hdfs远程服务器的IP地址。     /home/hadoop/datanode/是我安装hadoop时创建的DataNode HDFS目录(我不知道是否必须指定此目录)。和,     myNewFolder是我要保存数据的文件夹。

提前致谢。

Yassir

1 个答案:

答案 0 :(得分:3)

路径必须是HDFS中的目录。

例如,如果要将文件保存在HDFS中根myNewFolder路径下名为/的文件夹中。

使用的路径为hdfs://namenode_ip:port/myNewFolder/

执行spark作业时,将创建此目录myNewFolder

dfs.datanode.data.dir中的hdfs-site.xml提供的datanode数据目录用于存储您在HDFS中存储的文件块,不应该作为HDFS目录路径引用。