1. 程式人生 > 其它 >eclipse+maven+web服務,實現對hdfs的目錄瀏覽展示

eclipse+maven+web服務,實現對hdfs的目錄瀏覽展示

eclipse+maven+web服務,實現對hdfs的目錄瀏覽展示

1、將建立好的web專案轉為maven專案,以便下載jar包(不要直接建立Maven的web專案,會缺少檔案)

滑鼠右鍵選中專案——>Configure——>Convert to Maven Project

2、在pom.xml中檢視JDK版本,如果不是你想要的版本,可進行更新修改

<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
 </build>

隨後選中專案,右鍵——>Maven——>Update Project更新預設JDK(此時JDK以及變成你指定的版本)

3、在pom.xml新增依賴下載jar包

<dependencies>
     <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.9.2</version>
        </dependency>
    
</dependencies>

4、建立WebTest.java,編寫java類檔案,用於存取資料

public class WebTest {
	List<String> names = new ArrayList<String>();//存放獲取的目錄連結
	String dir = "hdfs://192.168.80.128:9000/";//地址
	
	public void setListFileAndFloder(){
		try {
			Configuration conf = new Configuration();//載入配置檔案
			FileSystem fs = FileSystem.get(URI.create(dir),conf);//獲取檔案系統例項
			FileStatus[] status = fs.listStatus(new Path("/"));//待獲取目錄
			
			for (int i = 0; i < status.length; ++i) {
				if (status[i].isFile()) {//檔案
					names.add(status[i].getPath().getName());//獲得目錄下資料夾的名稱
					System.out.println(status[i].getPath().toString());
				}else if (status[i].isDirectory()) {//資料夾
					names.add(status[i].getPath().getName());//獲得目錄下檔案的名稱
					System.out.println(status[i].getPath().toString());
				}
			}
			fs.close();			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("失敗");
		}
	}
	
	public List<String> getListFileAndFloder(){//獲取目錄列表
		return names;
	}
}

5、建立test.jsp檔案,修改編碼格式為UTF-8,防止出現亂碼;引入剛才建立的WebTest.java檔案;引入List依賴包

<%@ page language="java" contentType="text/html; UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="hadoop_web.WebTest" %>
<%@ page import="java.util.List" %>

6、編寫表格程式碼,用於顯示(下為整個jsp檔案程式碼)

<%@ page language="java" contentType="text/html; UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="hadoop_web.WebTest" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>成功了歐耶</title>
</head>
<body>
<h1>測試一下成功莫得</h1>
<!-- 建立一個物件,呼叫物件獲取目錄下的所有檔名 --> 
<% 
	WebTest webtest = new WebTest();
	webtest.setListFileAndFloder();
	List<String> listFlie = webtest.getListFileAndFloder();
%>
<!-- 用表格將所有的檔名稱顯示出來 -->
<table border="3">
	<%for(int i=listFlie.size()-1;i>=0;i--){ %>
	<tr>
		<td>
			<%= listFlie.get(i).toString() %>
		</td>
	</tr>
	<% } %>
</table>
</body>
</html>

7、啟動hadoop叢集

8、執行eclipse中的Tomact,然後執行jsp檔案,即可成功