我想使用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
答案 0 :(得分:3)
路径必须是HDFS中的目录。
例如,如果要将文件保存在HDFS中根myNewFolder
路径下名为/
的文件夹中。
使用的路径为hdfs://namenode_ip:port/myNewFolder/
执行spark作业时,将创建此目录myNewFolder
。
为dfs.datanode.data.dir
中的hdfs-site.xml
提供的datanode数据目录用于存储您在HDFS中存储的文件块,不应该作为HDFS目录路径引用。