TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上
% N( P" _, Q* {上传:& r* \- \( {6 t$ u
- /** 8 d* z0 j3 m, s( [( L3 O0 ~9 |
- *
. A. N) R7 o4 t, L7 u' T/ b5 U - * 上传控制类,上传页面跳转到这里
9 _7 I* e/ S. z" W1 @2 ~* `) V - *
; T. |5 R( `' R8 Y4 |$ {- C, z: l - * @author 科帮网
N' J& z- d$ C( g2 D } - * @version [版本号, 2012-08-02] ! w) O& V9 k) o( @1 p+ D
- * @see [相关类/方法] + {( o/ `7 R3 I r: s, T8 Q: e% I
- * @since version 1.0$ O. K, p5 r% y- m9 ^) m' V5 V) V' K
- */
: k) W: E' j" ^3 g+ C9 D+ c - public class UploadHDFSServlet extends HttpServlet {7 P! |1 i+ }/ h3 W c0 e5 U' K
- 8 q# a" |% l) s' P
- /** *5 a9 S9 M: u! w% U, O, \9 a) k5 h
- * * 该方法负责上传控制处理页面 * ! i- ]* _6 U. p. B# q g0 p' x, p
- * @param request 客户端到服务器的请求消息
& C' A/ ^- L) p. C) `9 p- C( w - * @param response 服务器返回给页面的消息! g4 F5 F; P+ J @2 ~3 @5 Q9 q
- * @throws ServletException ! ~$ [: ]5 v. v6 C# ?& r
- * @throws IOException
; e# [5 `% B" q% ] - */
3 z) P( o' U7 r+ _0 n - public void doPost(HttpServletRequest request, HttpServletResponse response)
8 Q) B* R3 U! ]0 R7 h6 J" `% Y+ W( U - throws ServletException, IOException {
- g! O2 _) C! l0 T4 m: C" Q- r6 H - boolean isMultipart = ServletFileUpload.isMultipartContent(request);* W7 I, k, R- L) l. k( l& f1 K
- if(!isMultipart){: y# M; K. f* Y: B, s
- }else{
5 q# ^$ ^& [; j4 Q2 I - FileItemFactory factory = new DiskFileItemFactory();
8 Z. Y0 k5 L: K" a& R% ] - ServletFileUpload upload = new ServletFileUpload(factory);
# S- d/ q$ A# B- O6 E - try {
c" n% l. }6 \* u3 Y9 R2 | - List items = upload.parseRequest(request); ( Y9 W4 [# x, R
- Iterator iter = items.iterator();
: G$ d6 B: Y/ ] - while(iter.hasNext()){8 o. M2 h* q% }3 l
- FileItem item = (FileItem)iter.next();% J2 ~+ k( F. Z" l# d- @% m
- if(item.isFormField()){
- D8 i# ]- l( a! P/ \" j2 H - String name = item.getFieldName();
" U6 H; l, W! h* c. E0 m - System.out.println(name);
: ?6 n3 }, _; `/ l Q, r - }else{
7 i+ j: i7 C; m1 T2 i N8 r( ` y. K - //表单名字2 X' R0 z; `+ N& K$ ]0 Y. i. Z
- String fileName = item.getName();
; Z. K7 Y5 Z6 N4 [. g/ G - InputStream uploadedStream = item.getInputStream();
/ F6 T8 }( S$ }- | - HDFSOperation hdfsOperation = new HDFSOperation();$ G6 p( U5 {1 D, w
- # t# K( u* O, m6 A& [+ c+ \$ ?3 ~
- String hdfsPath = dfs.HDFSConfig.getHDFSPath() + fileName;
8 }, ]8 }+ d6 c) f0 k' b - boolean flag = hdfsOperation.upLoad(uploadedStream, hdfsPath); $ T3 E+ Z1 \( w, w4 m! t* T
- " j" I1 t1 A% B- Y" I$ q0 Q9 n
- if(flag){) O# a+ F$ \4 u7 q: [! ~8 M, g2 x* R; @
- response.sendRedirect("success.jsp");* g. \: C8 F; E5 g) E: V* m9 ~1 o' j
- }else{
/ e& O! u- b8 X- B - response.sendRedirect("failure.jsp");& v3 ~8 I4 q* r* F
- }
$ D! y+ L9 b6 @0 j h) Y - }3 |1 K% h! x5 |2 D0 ?4 H. b
- }& k3 k' f4 R9 X1 k8 v1 o7 G
-
7 ~8 i4 e) \5 ] - } catch (Exception e) { 0 ~2 w0 m: \" J9 k# g6 r
- e.printStackTrace();1 o! r- Y/ K4 Y! {. J; v2 P2 T
- }$ _( ^0 j9 r1 E" n
- } 2 \ \5 T8 G1 P( N6 _
- # F+ C+ f# @( ], b
- }
- k* w- j& }' ^1 W5 A/ F0 r - 8 K2 m5 {) U1 n* ^
- }
复制代码 配置:% D$ s) h& c3 z+ |. D8 e8 o
- <configuration>
1 d$ m0 r; ^' R; h - <property>$ `6 e# r$ n1 o. q6 W- L
- <name>fs.default.name </name>
[/ R/ w5 C+ S - <value>hdfs://10.6.12.101:8888</value>. ]3 U( g. x* a8 r% T& z c
- </property>
) ^2 r. ^5 h2 g) S" K8 U - <property>6 K1 }2 H' s9 e( P0 t9 {
- <name>hadoop.tmp.dir</name>" G2 t4 \, F% x: V* j
- <value>/home/hadoopuser/tmp</value>
( h6 P& h0 P# ]5 g, V - </property>
" s( w) e( P5 K - </configuration>
复制代码 源码下载地址:点击下载
- H( J- F2 ]# m3 l! C* W" @: j J( B& G: L
4 f. y l. o2 P7 |3 W. {3 F2 c% Q! c
# W8 A0 Q1 x$ h' L8 F" U |
|