복붙노트

[HADOOP] 읽기 / Windows 서버에서 HDFS에 파일을 작성

HADOOP

읽기 / Windows 서버에서 HDFS에 파일을 작성

나는 윈도우 서버에서 HDFS에 파일을 작성합니다. 하둡 클러스터는 리눅스에 있습니다. 나는 모든 곳에서 연구를 시도 나는 "하둡 항아리"를 사용하여 실행할 수있는 자바 코드를 가지고

누군가 내가 창문에서 HDFS 파일 쓰기 자바 코드를 실행할 수있는 방법을 이해하는 데 도움이 수 있습니까? 윈도우 상자에 무엇이 필요합니까? 심지어 적절한 링크 할 것입니다.

해결법

  1. ==============================

    1.당신은 간단한 자바 프로그램을 코딩하고 정상적인 .jar 파일처럼 실행하기 만하면됩니다.

    당신은 간단한 자바 프로그램을 코딩하고 정상적인 .jar 파일처럼 실행하기 만하면됩니다.

    이 프로젝트에서는 하둡 라이브러리를 가져와야합니다.

    이것은 (내 클러스터에서 그것을 테스트) 작동 예를 받는다는 프로젝트입니다 :

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataOutputStream;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    
    public class WriteFileToHdfs {
    
        public static void main(String[] args) throws IOException, URISyntaxException {
    
            String dataNameLocation = "hdfs://[your-namenode-ip]:[the-port-where-hadoop-is-listening]/";
    
            Configuration configuration = new Configuration();
            FileSystem hdfs = FileSystem.get( new URI( dataNameLocation ), configuration );
            Path file = new Path(dataNameLocation+"/myFile.txt");
    
            FSDataOutputStream out = hdfs.create(file);
            out.writeUTF("Some text ...");
            out.close();
    
            hdfs.close();
    
        }
    
    }
    

    당신의 pom.xml 메인 클래스의 매니페스트 파일을 구축 할 수있는 명령에 종속성을 넣어 기억 :

    <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
            <mainClass>your.cool.package.WriteFileToHdfs</mainClass>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>2.6.1</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>            
              <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>${mainClass}</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
          </plugins>
        </build>
    

    그냥 점심 명령으로 프로그램 :

    물론 당신은 당신의 패키지 이름과 네임 노드의 IP 주소를 사용하여 코드를 편집해야합니다.

  2. from https://stackoverflow.com/questions/33455888/reading-writing-files-to-hdfs-from-windwos-server by cc-by-sa and MIT license