TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上
. W7 l) _) G# G$ q8 a8 I! k上传:: g! K' l/ H6 s
- /** ; ~6 ]: s1 I! a% P# i; c7 O) H
- *
/ e' e" [" |1 I$ U) L - * 上传控制类,上传页面跳转到这里& t0 ^3 ~7 S5 H0 h1 n) K
- *
0 R7 x& b: ? G' e - * @author 科帮网
+ E- a9 e i. N! c - * @version [版本号, 2012-08-02] ! X$ B7 w, m( T. ]% G0 l; i
- * @see [相关类/方法]
% \2 C% Y8 k& x5 l- d0 X. e4 U - * @since version 1.00 N( ^& r6 v8 S& b
- */
' z: c$ P1 ], Z - public class UploadHDFSServlet extends HttpServlet {
5 N. K/ {, o! l# v7 M9 \$ Q7 g
: Z7 p! @. Z% `- /** *
$ |7 z7 P$ ?1 W7 j* L W - * * 该方法负责上传控制处理页面 * 3 ~. P8 k; g$ r/ a: b
- * @param request 客户端到服务器的请求消息/ i, M$ B5 {5 \, L( N( X
- * @param response 服务器返回给页面的消息) W0 T- v4 j' R9 F. F
- * @throws ServletException ~7 T/ s! f, @" M
- * @throws IOException
8 j y+ Q5 j5 H# u& f* V: J - */
& a% [+ ]$ `3 |* M - public void doPost(HttpServletRequest request, HttpServletResponse response)
- n# Q6 U' W3 D" u - throws ServletException, IOException {" N# T9 b; U5 {( A% c, ~7 E
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);+ e M2 A' l& P5 O7 Q4 f' e$ ?$ l
- if(!isMultipart){
9 t0 ]2 u( m/ O, E& _) n - }else{ I+ h2 p' S7 o8 v& V7 r+ L
- FileItemFactory factory = new DiskFileItemFactory();% R* G ?6 C, W
- ServletFileUpload upload = new ServletFileUpload(factory);) \2 K, A% ]" ~$ P5 _2 w' u! P
- try {$ ]8 J7 q0 X+ ?7 r5 u
- List items = upload.parseRequest(request); 6 E' f, V0 e( k; O A) G8 C3 a
- Iterator iter = items.iterator();
, e" w1 e2 e% } - while(iter.hasNext()){
* K& F- p1 L( x8 w) _3 @ - FileItem item = (FileItem)iter.next();, I2 n r* r& g$ s4 U6 q
- if(item.isFormField()){
' V6 |( x* u9 q$ y9 n - String name = item.getFieldName();
7 `; r3 C' a: R! C2 n/ ~! t - System.out.println(name);# T& i' @6 l! V$ x
- }else{
( ?3 B* N. H5 ^ - //表单名字7 c. F* a- D' W5 u: s. H' T- o
- String fileName = item.getName();
# ]- S3 i8 k5 u0 E - InputStream uploadedStream = item.getInputStream();
2 v4 t1 M# c [. X! y. e0 y - HDFSOperation hdfsOperation = new HDFSOperation();. V) |7 { j9 M; }3 r9 l" q/ Z
- ( b% \* v' ^% z% \+ ~* a
- String hdfsPath = dfs.HDFSConfig.getHDFSPath() + fileName;! U+ f+ L5 u! G; m: l
- boolean flag = hdfsOperation.upLoad(uploadedStream, hdfsPath);
/ K; ~) G1 d& }9 X% D8 G# Y1 A: b - 9 W( D; s' d+ [0 f8 M3 V
- if(flag){7 k3 l) p6 P4 B; I) p$ |
- response.sendRedirect("success.jsp");
' u& h8 Y% N0 p - }else{
1 M) s: M/ ^2 b8 I8 Y - response.sendRedirect("failure.jsp");! B& v5 R( |. D0 c8 e5 e
- }6 d/ u( Z% _1 ~ R- ^5 b0 U' t
- }
) |, s+ X7 Z* C - }
' y' N/ \ O; t, ]" F5 T -
4 c6 M. f8 B" q# G6 N - } catch (Exception e) {
2 _0 _9 P. r& O5 M - e.printStackTrace();8 {! O) g5 N6 j& e* W
- }
. W& |1 B0 y( d - }
+ |+ c1 g' m1 U0 R - " ]1 d+ {- w7 F% F* h' C w8 L
- }
; G7 W, i4 q& [* F0 L
3 _$ _' x, H! v, V- }
复制代码 配置:
6 Y/ _( A: V& W7 _- <configuration>% ?) R- o( m, |1 K+ x( Z! R3 q' H- P
- <property>
2 |+ y) z8 ^7 N# ^7 \ - <name>fs.default.name </name>& |4 F8 Z4 f( I6 I4 P. \# ^, ]
- <value>hdfs://10.6.12.101:8888</value> X# o7 ?( Y. k1 u& E/ f; a
- </property>6 {& R/ M: ~+ ^/ e
- <property>
' z7 X9 h. i! ^6 Y - <name>hadoop.tmp.dir</name>
; ^7 p$ j6 P( O5 w( q4 A; b: D6 z - <value>/home/hadoopuser/tmp</value>
1 O) v O$ Z j. S6 L0 [ - </property>0 C$ _( h7 @2 Q+ v+ K4 C( E8 k
- </configuration>
复制代码 源码下载地址:点击下载) ?5 a7 k6 i E9 }! \4 v+ U1 N8 U
! j7 l5 c/ |9 K- J) J5 g8 u$ h( n& w2 b7 U8 {9 C
/ P8 {9 o& P4 K' X3 v4 ~
|
|