使用代碼(java, scala) 寫入hdfs - java寫入hdfs

java創建文件並寫入hdfs

      在網上找了好幾個java寫入hdfs的,都是用IOUtils.copy()寫入的,最後找到了不是用IOUtils.copy()寫入的,趕緊自己整理一下。

import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; 

import java.io.*;
import java.net.URI;
import java.net.URISyntaxException;

public class testCreate {

    public static void main(String[] args) 
    	throws URISyntaxException, IOException, InterruptedException {
		
		FileSystem fileSystem=FileSystem.get(
        	new URI("hdfs://172.0.0.1:9000"), 
        	new Configuration(),"root"
        );
        try {
            OutputStream output = fileSystem.create(new Path("/test/t1"));
            // 使用\t作爲分隔符
            output.write("1\t1".getBytes("UTF-8"));
            output.write("\n".getBytes("UTF-8"));//換行
            fileSystem.close();
            output.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

      你都會用java了,肯定也會用scala… 嘿嘿。

java寫入hdfs - 追加寫

      如果不能使用創建寫,得追加寫入,那怎麼辦呢?
      除了第19行,其他代碼都不變。

	OutputStream output = fileSystem.append(new Path("/test/t1")); 

      你都會用java了,肯定也會用scala… 嘿嘿。

pom.xml

      貼一下pom.xml

	<properties>
	    <hadoop.version>2.6.0</hadoop.version>
	</properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
    </dependencies>

      
      
      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章