से एचडीएफएस फ़ोल्डर हटाएं किनारे नोड पर चल रहे जावा ऐप में, यदि यह मौजूद है, तो मुझे एक hdfs फ़ोल्डर को हटाना होगा। मुझे मैप्रिडस जॉब (स्पार्क के साथ) चलाने से पहले फ़ोल्डर में आउटपुट करने से पहले ऐसा करने की ज़रूरत है।जावा
मैंने पाया मैं विधि
org.apache.hadoop.fs.FileUtil.fullyDelete(new File(url))
इस्तेमाल कर सकते हैं लेकिन, मैं केवल यह स्थानीय फ़ोल्डर (चला रहे कंप्यूटर पर अर्थात फ़ाइल यूआरएल) के साथ काम कर सकते हैं। hdfs://hdfshost:port
जा रहा है HDFS namenode आईपीसी के साथ
url = "hdfs://hdfshost:port/the/folder/to/delete";
: मैं की तरह कुछ का उपयोग करने की कोशिश की। मैं इसे मैड्रिड के लिए उपयोग करता हूं, इसलिए यह सही है। हालांकि यह कुछ भी नहीं करता है।
तो, मुझे किस यूआरएल का उपयोग करना चाहिए, या कोई और तरीका है?
नोट: here प्रश्न में सरल परियोजना है।
Configuration conf = new Configuration();
conf.set("fs.hdfs.impl",org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
conf.set("fs.file.impl",org.apache.hadoop.fs.LocalFileSystem.class.getName());
FileSystem hdfs = FileSystem.get(URI.create("hdfs://<namenode-hostname>:<port>"), conf);
hdfs.delete("/path/to/your/file", isRecusrive);
तुम मेरे लिए
बिल्कुल सही, यह काम करता है। इसके अलावा मैं उम्मीद करता हूं कि मैं अन्य मानक फाइल सिस्टम संचालन करने के लिए 'hdfs' का उपयोग कर सकता हूं। –
@Juh_ yup आप उपरोक्त से 'hdfs' के साथ बहुत कुछ कर सकते हैं - फाइलें, सूची फाइलें, हटाएं इत्यादि आदि – Tucker
ऐसा लगता है कि डिलीट विधि अब बहिष्कृत है। –