TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上- c) s9 e7 c1 U: K) q
上传:* P/ i% l) L1 S, a5 ?7 w
- /**
! R% {4 u: N: L5 R, r7 u% a - *
: l! p) [) Y5 g: s9 ^' C) i - * 上传控制类,上传页面跳转到这里1 _5 {4 T/ S: K- E9 ?: x V
- * : C- |1 u, v& p
- * @author 科帮网+ Q8 p7 Y4 e) n% \) d
- * @version [版本号, 2012-08-02]
* v* N5 V" s5 T# }2 S2 }+ A - * @see [相关类/方法] & o" p+ ~/ H" f7 X& m! b; Y
- * @since version 1.0
& M5 m9 b( k8 e" P4 G - */
' K% ^/ L) h6 b, w6 p' x. | - public class UploadHDFSServlet extends HttpServlet {: [: F. H i& _, C
- " i! `; t C; o9 Z/ h, d$ z
- /** *
3 |. l7 l5 u0 F- g - * * 该方法负责上传控制处理页面 * # R t" Z4 c# V
- * @param request 客户端到服务器的请求消息 p2 |9 |8 ]/ X0 Q [! P3 a
- * @param response 服务器返回给页面的消息/ e# K9 B7 x) w5 W
- * @throws ServletException
3 g0 }8 B4 L1 f& ]1 E - * @throws IOException , `# @/ {) |4 |
- */- v+ |# G0 j% R
- public void doPost(HttpServletRequest request, HttpServletResponse response)+ D4 {9 A+ e! y& M% X) K% s7 Y0 d
- throws ServletException, IOException {9 ~% ]+ e/ v$ v0 o" J) Z5 i" k2 A
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);! ?5 Q. [3 V( O6 u3 _
- if(!isMultipart){
& C# a- y5 _- S: G7 _ - }else{ 7 Z. l3 w; D* J M3 m, F
- FileItemFactory factory = new DiskFileItemFactory();7 @1 |, v' _8 s
- ServletFileUpload upload = new ServletFileUpload(factory);
$ R# O' c8 t# ~0 L* D$ z- N- {" ?4 p - try {
: y, @8 Y1 Z& L, r, ^9 f2 K - List items = upload.parseRequest(request); " S2 E9 K) b$ y( c
- Iterator iter = items.iterator();
/ z: ~: I$ d/ O& `8 E1 v - while(iter.hasNext()){
: K9 z7 D6 [9 e7 ~) a" g, [ - FileItem item = (FileItem)iter.next();
3 ^+ r+ Z$ k, s4 d - if(item.isFormField()){
7 J9 ?+ z4 h0 b+ f. } - String name = item.getFieldName();
7 i8 t2 k/ Q7 A, ?; E8 i1 E- H. O" R - System.out.println(name);, Q2 Y% |& p# _& ^. `# \
- }else{
8 Z# [( Y0 B. @" D- l1 d% a6 v - //表单名字$ m- Q4 g2 I# ^- u
- String fileName = item.getName();& Z( j' V; m4 ^3 S! n; t! C( r" o
- InputStream uploadedStream = item.getInputStream();1 [# M+ r; o c) I$ T
- HDFSOperation hdfsOperation = new HDFSOperation();
1 I; { V9 X8 H, g1 e2 h; f - + ^! s& b# K6 }0 D* ~
- String hdfsPath = dfs.HDFSConfig.getHDFSPath() + fileName;6 j+ [! `" X4 i! d2 _4 U
- boolean flag = hdfsOperation.upLoad(uploadedStream, hdfsPath);
2 N X, G5 t# r9 ?# u2 J; r( F8 T. m - $ i! r6 I/ C4 ^7 L4 ]! F* [
- if(flag){! J# t: h; @2 `0 }8 r
- response.sendRedirect("success.jsp");
u$ P) m3 ^# |5 C - }else{
- ~$ t' R9 \" I: h x; ` - response.sendRedirect("failure.jsp");0 Q+ y1 }6 {' T2 J' F
- }
4 Q9 J; g! J- t# k4 j - }
* q1 i4 {* i) ~9 g$ M2 C' C% y4 T - }
p4 H0 z* n3 P1 r. d4 ?# p, B - ( t' x. U" s, u2 { V! }* d" ?
- } catch (Exception e) { : H$ ~5 \+ Q1 d- O
- e.printStackTrace();
4 u# S/ m; X, N5 N3 P0 X+ o' d { - }
* H: ?2 \, ^5 U. B, d- A/ n6 u - } ' Q% H2 n8 T/ p% O% |) r
- # ]* p( _, ^" n
- }
1 Y5 W8 C7 m& l9 h- r( Z, r - 2 z" M7 B" M5 h$ w! R1 u
- }
复制代码 配置:# n" v8 L! s w7 b# v
- <configuration>
; e" M) V% C0 O4 I7 W, y. m, S - <property>
) D* r3 y5 j: M" y' d - <name>fs.default.name </name>$ o- g5 N$ h- H( f: K& l
- <value>hdfs://10.6.12.101:8888</value>, Z* Z4 {" {& H. ~+ H2 R; ]
- </property>" L4 b% L$ K* p6 Q
- <property> X) s: d3 W8 G& S
- <name>hadoop.tmp.dir</name>
$ s$ k' k, H9 P - <value>/home/hadoopuser/tmp</value>
4 G9 p: h3 y0 |, ~( V7 S - </property>' w z9 {0 @# ?! g4 j0 M
- </configuration>
复制代码 源码下载地址:点击下载
7 G2 X$ e' _/ B* P; }" v9 i
6 i1 s* @; e/ y/ [6 _/ W: t: M$ d0 [" @7 S0 f2 f7 O( i
2 }- x4 u, C! i$ A2 D8 i' Y8 u! h
|
|