大数据接私活200元,做个简易的HDFS浏览器
Posted Maynor学长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据接私活200元,做个简易的HDFS浏览器相关的知识,希望对你有一定的参考价值。
大数据接私活200元,做个简易的HDFS浏览器(一)
需求
接到一个单子说是用制作一个简单的HDFS浏览器。
功能包括:基于HDFS的文件浏览、上传和下载。
需求分析
用到的技术包括Java、HDFSAPI、tomcat的配置等
代码实现
项目架构:
Controller层代码:
@Controller
@RequestMapping("/hdfs")
public class hdfsController
private hdfsService hdfsService;
public hdfsService getHdfsService()
return hdfsService;
@Resource
public void setHdfsService(hdfsService hdfsService)
this.hdfsService = hdfsService;
@RequestMapping("/delete")
public String toDelete(@RequestParam(value="path",required=false) String path)
throws IOException
hdfsService.delete(path);
return "success";
@RequestMapping(value="/ls",method=RequestMethod.GET)
public ModelAndView home(@RequestParam(value="path",required=false) String path, HttpServletRequest request, HttpServletResponse response)
throws Exception
ModelAndView model = new ModelAndView();
if (StringUtils.isEmpty(path))
path = "/";
List<hdfsBean> hdfsFiles =hdfsService.ls(path);
model.addObject("file", hdfsFiles);
model.setViewName("/ls");
return model;
@RequestMapping("/download")
public String toDownload(@RequestParam(value="path",required=false) String path)
throws IOException
hdfsService.download(path);
return "success";
@RequestMapping(value="/upload")
public String upLoad(HttpServletRequest request, HttpServletResponse response)
throws IllegalStateException, IOException
//解析器解析request的上下文
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//先判断request中是否包涵multipart类型的数据,
if(multipartResolver.isMultipart(request))
//再将request中的数据转化成multipart类型的数据
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multiRequest.getFileNames();
while(iter.hasNext())
MultipartFile file = multiRequest.getFile(iter.next());
if(file != null)
String FileName = file.getOriginalFilename();
System.out.println(FileName);
CommonsMultipartFile cf= (CommonsMultipartFile)file;
DiskFileItem fi = (DiskFileItem)cf.getFileItem();
File inputFile = fi.getStoreLocation();
hdfsService.createFile(inputFile, "hdfs://192.168.88.100:8020/upload/"+FileName);
return "success";
前端部分页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page isELIgnored="false" %>
<%String ref = request.getHeader("REFERER");%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HDFS文件管理器</title>
</head>
<body>
<table>
<tr>
<td>文件名</td>
<td>文件大小 </td>
<td>拥有者 </td>
<td>权限 </td>
<td>时间 </td>
<td> 操作</td>
</tr>
<c:forEach var="file" items="$file">
<tr>
<td><a href="$pageContext.request.contextPath/hdfs/ls.do?path=$file.fileName" style="color:#666666;text-decoration:none;">
$file.fileName</a></td>
<td> $file.fileSize</td>
<td> $file.owner</td>
<td> $file.permission</td>
<td> $file.modificationTime</td>
<td><a href="$pageContext.request.contextPath/hdfs/delete.do?path=$file.fileName" style="color:#666666;text-decoration:none;"
class="button border-dot button-little" onclick="return confirm('确认删除?')" >
删除 </a>
<a href="$pageContext.request.contextPath/hdfs/download.do?path=$file.fileName" style="color:#666666;text-decoration:none;">
下载</a></td>
</tr>
</c:forEach>
<input type="button" value="返回" onclick="javascript:window.location='<%=ref%>'" >
</table>
</body>
</html>
效果演示
HDFS简易Web浏览器
总结
比较轻松的需求,主要是之前做过类似的小项目直接拿来用即可。
如果想要接Java和大数据方面私活的,有赚零花钱想法的,可以点下方的小卡片与我联系。
以上是关于大数据接私活200元,做个简易的HDFS浏览器的主要内容,如果未能解决你的问题,请参考以下文章