TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上: T+ i% q# G1 j5 w: o7 t
上传:% B/ \8 g8 ?5 s* P
- /** 0 U" \) T K* b
- *
9 `1 c. T0 I9 r2 n1 c9 X - * 上传控制类,上传页面跳转到这里
: }, m5 t: d; s1 j - * 5 y" A: H, A: S! @: Y
- * @author 科帮网9 x" h e1 h1 {1 R
- * @version [版本号, 2012-08-02]
* i( r; ?* E1 ?$ g0 y4 M, w9 k - * @see [相关类/方法]
6 O% t: C; d. }# R0 c: B- l - * @since version 1.0
6 D& K( o) A+ h5 N - */# i: G" S" a! R, N/ z- B6 T
- public class UploadHDFSServlet extends HttpServlet {+ c2 B% ]$ f, \* u/ Z- ]
+ \; u+ B: m6 m, q3 g- /** *
- ]8 {/ t3 |8 s0 ^) V - * * 该方法负责上传控制处理页面 * # R9 K# u0 v; P! ?
- * @param request 客户端到服务器的请求消息$ |. V E0 E6 Z7 Z, y* c9 I, X
- * @param response 服务器返回给页面的消息; _: G8 ^. ~7 a4 N" z0 l
- * @throws ServletException
$ l# d+ G7 `/ X% J0 W; g0 m+ Y - * @throws IOException ) E G$ h$ `* H* N- J3 R
- */
: Z3 O/ h1 W9 f/ Y - public void doPost(HttpServletRequest request, HttpServletResponse response)1 }1 }, s. Q6 `9 Z0 g
- throws ServletException, IOException {
8 s# o- l, G2 r& I- [ - boolean isMultipart = ServletFileUpload.isMultipartContent(request);
8 Z I8 M& u+ c" O) D0 b - if(!isMultipart){
l4 h7 Y, Q- D, I; O - }else{
3 v- n9 \- s1 ]0 k5 N e - FileItemFactory factory = new DiskFileItemFactory();0 M8 J; _/ j. Y/ n4 t7 n
- ServletFileUpload upload = new ServletFileUpload(factory);
8 q, F7 g9 Y6 m1 T( A1 [ - try {* m5 u8 k! @. t! u7 Y
- List items = upload.parseRequest(request); % K6 @! q$ m. U7 C
- Iterator iter = items.iterator();
|. z8 _2 T4 p+ b) { - while(iter.hasNext()){
" n' e) I& @3 h7 M - FileItem item = (FileItem)iter.next();) ?* x1 l- A" ^( Y( I
- if(item.isFormField()){
" l8 o3 I3 e- K1 M, H* X - String name = item.getFieldName();) \6 t0 y" ]6 G0 c& ?+ O5 L% `
- System.out.println(name);- d5 }- ~, N) m
- }else{# \! Z8 P/ K0 Q5 d
- //表单名字6 ]2 k9 j! L# S. B+ ?/ |& h: U V
- String fileName = item.getName();
3 P2 j& w( L& N* d x - InputStream uploadedStream = item.getInputStream();
; q! n! E9 ~" D {$ l* B( x - HDFSOperation hdfsOperation = new HDFSOperation();# u* J3 @' H- ~! r+ U
- 6 V1 M) M& H- `, H) D3 K( n
- String hdfsPath = dfs.HDFSConfig.getHDFSPath() + fileName;) c2 f$ J" B# Y) b' W$ x1 g" u
- boolean flag = hdfsOperation.upLoad(uploadedStream, hdfsPath); : y, k2 f; Y$ V R7 c1 c' p w
- + f u7 ^7 n: f/ S3 v D
- if(flag){
% \5 N$ p5 ^+ ~7 O: a/ o! j4 y - response.sendRedirect("success.jsp");& X3 v" D8 l/ f* N& _ |
- }else{
: N: Q) J6 S4 P1 q - response.sendRedirect("failure.jsp");8 [; v7 h+ ^8 l& a) N+ h" ~
- }" Q! H: R1 k# j/ u. D
- }8 {9 ~% z1 k7 W1 V: v; I7 O4 H( ^, h" X2 z
- }0 R, r) s) H' ?- P; E# m
- 7 e- V; `' G7 z/ x3 ?
- } catch (Exception e) {
6 ?4 k d) ]' {' a! t+ ] t' M - e.printStackTrace();' Z; n- B3 {$ ^# Q2 ~/ W' q$ |
- }
$ s+ D. Y2 b# O* M S - }
6 [* D9 z0 g7 l& ], M% N - : m y$ x' {% O8 v
- } b# S8 |; B7 m
: x- f1 z7 t+ E- F9 G- }
复制代码 配置:
% s$ h# ]7 K/ v& o) ~- <configuration>
" Q" ~# L- O5 K) B8 k3 v7 _ - <property>- k! S5 Z. Z$ e% y. {5 u
- <name>fs.default.name </name>
9 V! K: o# I. A. h1 D - <value>hdfs://10.6.12.101:8888</value>
& B9 @/ D& m9 q) ?- C - </property>+ Y M) H- V% N- v6 g8 s
- <property>& C3 ^0 Y2 H( w' {7 G
- <name>hadoop.tmp.dir</name>, j ~4 H8 ^% s- g H8 B
- <value>/home/hadoopuser/tmp</value>; o# B2 @: q. e2 l' Z: H$ g1 f
- </property>
! D: D2 ?+ ^ R% t* e - </configuration>
复制代码 源码下载地址:点击下载: U6 v* B. O( I5 K
4 @# y5 S6 i$ A
5 i k% [$ T; M( T2 H
( G: s3 }' E% T% U |
|