java - 使用Java Servlet在HDFS内创建目录

标签 java hadoop servlets

我正在构建可以像Hadoop Web UI一样从HDFS创建和删除目录和文件的Web应用程序,但是第一步失败了。我什至无法在HDFS中创建目录。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.net.URI;

// Extend HttpServlet class
public class Saurab extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String hdfsUri = "hdfs://saurab:9000/";
        String dirName = "ekbana113";
        FileSystem hdfs = null;
        Configuration con = new Configuration();

        try {
            con.addResource(new Path("/home/saurab/hadoopec/hadoop/etc/hadoop/core-site.xml"));
            con.addResource(new Path("/home/saurab/hadoopec/hadoop/etc/hadoop/hdfs-site.xml"));

            hdfs = FileSystem.get(URI.create(hdfsUri), con); //hdfs is null, I don't know why ?
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            hdfs.mkdirs(new Path(hdfsUri + "/" + dirName)); // Null pointer exception
        } catch (IOException e) {
            e.printStackTrace();
        }
}
}

我关注了this question
我正在使用tomcat服务器启动我的Web应用程序。 Hadoop已启动并正在运行。我创建了一个war文件,并将该warfile放在/opt/tomcat/webapps/中。然后我做了saurab:8080/servlet-name/mapper-url这是正确的做法,还是我做错了什么?

最佳答案

您的Servlet没有@WebServlet批注。您创建了web.xml吗?如果不是,则应将@WebServlet批注添加到servlet或创建WEB-INF / web.xml并在其中编写URL映射。另外,您应该访问http://saurab:8080/warfile-name/mapped-url

如果您的war文件名为test1.war,并且在@WebServlet(urlPatterns = { "/test2" })之前添加了public class Saurab extends HttpServlet {,则可以访问http://saurab:8080/test1/test2

关于java - 使用Java Servlet在HDFS内创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45443051/

相关文章:

java - 对齐 JTextArea 底部

java - JAVA_HOME 环境变量存在的原因是什么?

java - 为什么上传的图片在 IE 中不显示?

javascript - 使用 jqGrid 编辑回调发送额外参数

java - 需要一个关于 Java 队列的简单答案

java - CachedRowSet 上的左外连接

hadoop - 在版本1上构建mesos hadoop

hadoop - 如何使用 Ambari 通过浏览器访问 hdfs-site.xml 和 core-site.xml?

java - 原因和 java.lang.NullPointerException 错误修复

java - Guice 和非单例 Servlet