0
我的Java代码中有一些hadoop文件系统操作(例如:hdfs mkdir
)。当我尝试使用java -cp
运行java程序时,该目录在linux本地文件系统中创建。所以我用hadoop jar命令运行程序,并在hdfs中创建目录。现在我打算使用hadoop jar命令运行整个java程序。我想知道,通过读取本地文件夹的文件或执行Runtime.getRuntime().exec(some linux command);
以下时使用Hadoop jar命令特别是会不会有任何问题,如果代码为我的HDFS的片段文件操作我可以使用hadoop jar命令来运行普通的java程序吗?
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
boolean res = fs.mkdirs(directory path);
显然,如果我使用hadoop jar命令,我不能指定外部相关jar。请注意,我没有任何地图缩减代码,我只是有一些hdfs文件操作。 –
是的,在Hadoop环境下运行时,也可以使用外部相关的罐子。它可以用不同的方式完成。您可以创建一个包含所有依赖项的超级jar包,也可以在每个节点中分配相关jar,并在$ HADOOP_CLASSPATH变量中定义路径。 –
我正在尝试不同的解决方案,因为我没有管理权限。我不想构建一个胖的jar,因为它会增加我的部署jar,并且会是多余的。有没有可以在我的新配置()对象中指定配置的方式,以便我可以直接写入HDFS? –