hadoop网盘的最终效果见下面,可以实现简单的文件上传、删除、下载功能,不同用户可以登录到自己的页面进行管理。
一、准备的安装包资源
(1)hadoop1.1.2安装包
(2)bootmetro一个CSS开元框架,用来提高web前端的开发效率
(3)mysql的Jdbc驱动包
(4)上传组件
(5)mysql安装包(我的电脑是x64,x86系统的请下载对应版本即可)
二、搭建hadoop集群环境
教程见(2)虚拟机下hadoop1.1.2集群环境搭建
三、mysql5.6安装和eclipse上的配置
(1)安装教程网上很多,这里就不详细列举,大家到网上搜索即可。
A、安装好后,把mysql安装文件夹下的bin目录的路径添加到PATH环境变量里。
B、然后打开cmd,输入mysqld,开启mysql服务。
C、创建hadoop数据库
打开cmd,输入:mysql -uroot -hlocalhost -p
然后会提示输入密码:密码默认为空,所以直接回车就可以进入Mysql命令行。
接下来输入:create database hadoop;就创建成功
我们输入:show databases; 来查看
(2)在eclipse上配置mysql
A、首先打开eclipse,创建web工程。
B、把mysql-connector-java-commercial-5.1.25.jar包复制到在WEB-INF/lib下。
C、链接hadoop数据库
在Window菜单栏下打开Open Perspertive,选择 Database Development。
然后再Database Connections文件夹下邮件选择New ..;
然后再URL上填上刚刚创建的hadoop数据库;
点击 Test Connection,测试链接成功。
四、fileupload控件实现文件的上传
(1)首先将commons-fileupload-1.3.1.jar和commons-io-2.4.jar复制到WEB-INF/lib目录下。
(2)在WebContent/下创建inedx.jsp文件用于上传文件。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<form class="form-inline" method="POST" enctype="MULTIPART/FORM-DATA" action="UploadServlet" >
<div style="line-height:50px;float:left;">
<input type="submit" name="submit" value="上传文件" />
</div>
<div style="line-height:50px;float:left;">
<input type="file" name="file1" size="30"/>
</div>
</form>
</body>
</html>
然后再创建一个UploadServlet处理上传的文件。
package com.controller;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class UploadServlet
*/
public class UploadServlet extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
File file ;
int maxFileSize = 50 * 1024 *1024; //50M
int maxMemSize = 50 * 1024 *1024; //50M
ServletContext context = getServletContext();
String filePath = context.getInitParameter("file-upload");
System.out.println("source file path:"+filePath+"");
// 验证上传内容了类型
String contentType = request.getContentType();
if ((contentType.indexOf("multipart/form-data") >= 0)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存中存储文件的最大值
factory.setSizeThreshold(maxMemSize);
// 本地存储的数据大于 maxMemSize.
factory.setRepository(new File("c:\\temp"));
// 创建一个新的文件上传处理程序
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大上传的文件大小
upload.setSizeMax( maxFileSize );
try{
// 解析获取的文件
List fileItems = upload.parseRequest(request);
// 处理上传的文件
Iterator i = fileItems.iterator();
System.out.println("begin to upload file to tomcat server</p>");
while ( i.hasNext () )
{
FileItem fi = (FileItem)i.next();
if ( !fi.isFormField () )
{
// 获取上传文件的参数
String fieldName = fi.getFieldName();
String fileName = fi.getName();
String fn = fileName.substring( fileName.lastIndexOf("\\")+1);
System.out.println("<br>"+fn+"<br>");
boolean isInMemory = fi.isInMemory();
long sizeInBytes = fi.getSize();
// 写入文件
if( fileName.lastIndexOf("\\") >= 0 ){
file = new File( filePath ,
fileName.substring( fileName.lastIndexOf("\\"))) ;
//out.println("filename"+fileName.substring( fileName.lastIndexOf("\\"))+"||||||");
}else{
file = new File( filePath ,
fileName.substring(fileName.lastIndexOf("\\")+1)) ;
}
fi.write( file ) ;
System.out.println("upload file to tomcat server success!");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
}catch(Exception ex) {
System.out.println(ex);
}
}else{
System.out.println("<p>No file uploaded</p>");
}
}
}
然后再web.xml下设置上传的路径:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>TestHadoop</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>UploadServlet</display-name>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>com.controller.UploadServlet</servlet-class>
</servlet>
<context-param>
<description>Location to store uploaded file</description>
<param-name>file-upload</param-name>
<param-value>
D:\apache-tomcat-6.0.41\webapps\data
</param-value>
</context-param>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/UploadServlet</url-pattern>
</servlet-mapping>
</web-app>
我们测试一下是否可以上传,我现在将上传(1)Centos6.5下hadoop1.1.2环境搭建(单机版).docx文件;
我们到
D:\apache-tomcat-6.0.41\webapps\data
可以看到文件已经上传成功。
分享到:
相关推荐
基于hadoop的网盘应用
Hadoop是Apache的一款开源框架,使用java语言编写,可以通过编写简单的程序来实现大规模数据集合的分布式... Hadoop 采用的是Apache v2协议,Hadoop基于Google发布的MapReduce论文实现,并且应用了函数式编程的思想。
应用部署服务器:SpringBoot内置Tomcat插件 Node服务器:Node v10.15.3 数据库:Mysql v5.5.59 缓存服务:Redis v2.8.9 代码仓库管理系统:GitHub 服务器环境:处理器Core i5以上 2.2 基本处理流程 企业网盘...
Hadoop——一种分布式编程框架 第1章 Hadoop简介 1.1 为什么写《Hadoop 实战》 1.2 什么是Hadoop 1.3 了解分布式系统和Hadoop 1.4 比较SQL 数据库和Hadoop 1.5 理解MapReduce 1.5.1 动手扩展一个简单程序 ...
资源名称:颠覆大数据分析 基于StormSpark等Hadoop替代技术的实时应用 内容简介:Vijay Srinivas Agneeswaran 博士,1998 年于SVCE 的马德拉斯分校获得计算机科学与工程专业的学士学位,2001 年获取了印度理工学院...
管理Hadoop 1478.1 为实际应用设置特定参数值 1478.2 系统体检 1498.3 权限设置 1518.4 配额管理 1518.5 启用回收站 1528.6 删减DataNode 1528.7 增加DataNode 1538.8 管理NameNode和SNN 1538.9 ...
基于SpringCloud+Hadoop+Vue的企业级网盘系统设计与实现(含毕业论文资料+优秀毕业设计) 应用组成 前端:vue-projectManage 后台:mycloud-admin 提供前端服务:mycloud ps:springcloud实现 文件在线预览服务:file...
毕业设计,基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统,被评为优秀毕业设计,包含毕业论文、查重报告等 2.1 运行环境 编程语言:Java、Mybatis、Spring、SpringBoot、SpringCloud、Node、Vue 开发环境...
基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统+优秀本科毕业设计+论文.zip总体设计,运行环境: 编程语言:Java、Mybatis、Spring、SpringBoot、SpringCloud、Node、Vue 开发环境:Windows 10 + Mysql 开发...
企业网盘系统的使用者分为企业普通员工和企业管理员,所以具体流程是不一样的。 企业普通员工进入本系统前台主界面后看到的是首页数据,系统右上角有用户的头像和系统公告通知。在首页顶部的位置有个欢迎用户功能,...
1、基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统源码+项目说明(本科毕设).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业...
第四章 数据湖基于Hadoop、Spark的实现 第五章 Delta Lake - 数据湖核心的增强 第六章 Delta Lake - Quickstart 第七章 Delta Lake 操作 第八章 Delta Lake - 理论 第九章 企业数据湖应用案例分析 第十章 基于AWS的...
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 从零开始讲解大数据业务及数据采集和迁移需求,以案例驱动的方式讲解基于Sqoop构建高性能的分布式数据迁移和...
采用Kudu技术,Kudu是开源的运行在Hadoop平台上的列式存储系统,拥有Hadoop生态系统应用的常见技术特性,运行在一般的商用硬件上,支持水平扩展,高可用。 基于高德地图API打造自有商圈库,方便管理,更新,基于商圈库...
111计算器系统的组成—硬件部分1.1计算机系统介绍aip,网盘文件,永久连接 1.1.2计算器系统的组成—软件部分11计算机系统介绍zip 1.2.1鲲鹏生态介绍1.2鲲鹏处理器及关键硬件特性介绍,zip 天1.2.2鲲鹏处理器介绍1.2...
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 从零开始讲解大数据调度系统构成,集成大数据计算任务构建大数据工作流,基于Oozie构建实现企业级自动化任务...
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 从零开始讲解大数据分布式计算的发展及Impala的应用场景,对比Hive、MapReduce、Spark等类似框架讲解内存式计算...
从实际企业需求角度出发,引入Hue的实际开发应用场景,基于Hue构建统一化的大数据集中式开发管理平台,并基于Hue构建可视化分析 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化...
基于Hadoop技术的医院大数据分析平台自下而上 分为三个部分,分别为:数据层、大数据釆集与存储、数 据分析与展示。 数据层针对不同系统进行分析,制定系统数据采集 范围与目标,收集医院在日常管理和医疗工作中...
基于SpringCloud+Hadoop+Vue的企业级网盘系统设计与实现 【2019届毕业设计】,【优秀毕业设计】,【华东交通大学】 一、应用组成 前端:vue-projectManage 后台:mycloud-admin 提供前端服务:mycloud ps:spring...