我想从windows服务器将文件写入hdfs。hadoop集群在linux上。我试着到处搜索我得到的java代码,可以使用“HadoopJAR”运行有人能帮助我理解如何从windows运行hdfs文件并编写java代码吗?windows box需要什么?即使是一个适当的链接也可以。
f0brbegy1#
只需编写一个简单的java程序,并像普通的.jar文件一样运行它。在项目中,您需要导入hadoop库。这是一个maven项目的工作示例(我在集群上测试了它):
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>
只需在程序中使用以下命令:java-jar名称jarfile.jar当然,您需要使用包名和namenode ip地址编辑代码。
1条答案
按热度按时间f0brbegy1#
只需编写一个简单的java程序,并像普通的.jar文件一样运行它。
在项目中,您需要导入hadoop库。
这是一个maven项目的工作示例(我在集群上测试了它):
请记住将依赖项放在pom.xml中,以及为主类构建清单文件的说明:
只需在程序中使用以下命令:
java-jar名称jarfile.jar
当然,您需要使用包名和namenode ip地址编辑代码。