|
|
目录
# q! L& H, g! g& G6 N; e0 j- c2 v$ a# p! v! H" `; ?$ `3 q4 C
概念了解
3 E& Y3 D- U" _7 g2 U' d) }集群服务器规划3 w) h& D. q# Q; ~$ m( z
软件安装步骤概述* Y' b2 P {& K$ ]: {- ~
Hadoop安装
6 P# U0 ~, C3 t1 O( j1、规划8 S- n% T3 z, b+ ]" w- t) r
2、上传解压缩) V7 |: F/ I3 J& L
3、修改配置文件8 j" c, X$ a' |8 S% w r6 }9 ~ N7 V
4、把安装包分别分发给其他的节点* U1 `: i- a) S0 K0 R6 O
5、配置Hadoop环境变量
% M, x' ^/ ?$ W0 \* n1 m g6、查看hadoop版本: s: n+ |7 J( q* j7 x
7、Hadoop初始化* o4 m% l6 B, f: F4 \( N/ D
8、启动
+ p9 J1 B y3 y9 X9、查看4台服务器的进程: f) V) _( m7 E% o1 e
10、启动HDFS和YARN的web管理界面+ q( ?" K" L" l) a
Hadoop的简单使用
& G4 L5 Z; F. j8 P6 M创建文件夹3 h: i. c$ D( G# K0 i9 o+ V
查看创建的文件夹
, _8 P( K, S: J; Y t" G上传文件
- Y9 x7 p8 L7 V+ q- t下载文件
6 x& G$ L% {8 U运行一个mapreduce的例子程序: wordcount+ {' e& L# \4 w- _
$ d, k2 Y& a' A6 k) i3 O* C j, h
8 F4 a. \4 G6 l* ^) z, o正文) ]$ G: a: g4 s. V4 c! j% c4 h# W5 a
9 A" J0 I$ W9 d3 T. J
回到顶部
; p2 W- t' ~$ }& X. x4 O* F8 D概念了解' `$ ^; F% u$ b. k! a" B, u4 l
主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构。& H: A& n) O4 U S
; |, A; I R7 \; ^# W# Z主从结构分类:0 {3 U% h/ o+ a+ w1 X9 O/ J- q# @
& S. K/ f V1 S7 Z' P
1、一主多从% W0 [/ L- Z1 ~9 v' x9 a+ p' L
3 v- o; F" Z y: A3 m" k2、多主多从' j. c, R/ q: p; C
) `7 ]+ F- K7 I0 @% p4 y' ?0 ?Hadoop中的HDFS和YARN都是主从结构,主从结构中的主节点和从节点有多重概念方式:
: k! o6 Z4 b* w4 s% E j y2 Q9 `' {- a
1、主节点 从节点
- P' ~% ?4 }6 E# n' N O3 U9 [; u$ ^5 {7 ]; z4 e8 k; h
2、master slave
& d( a3 q' o8 o) y& g% U+ h: [
8 [& k6 s6 v* n6 |" U [; |, v3、管理者 工作者5 k, `, f+ s$ d! K7 z
1 h- |, a# W9 W9 [4、leader follower
( }2 U. ^' T h: L2 Q' C& |- o8 D+ W( N* E M7 N; w
Hadoop集群中各个角色的名称:
! v7 w$ I7 H6 F, _1 x5 f7 o2 Q2 H: ^8 F; H" J
服务 主节点 从节点" N Q% m2 }( `) V) j1 x
HDFS NameNode DataNode
* Q g7 L* x7 f/ | ~2 ~YARN ResourceManager NodeManager3 v9 I# F4 c* Y" H8 z7 p
回到顶部
* l5 _: P2 |2 r5 N集群服务器规划. E) {: H+ |2 }8 c# _, Q+ T9 \2 I; }0 I
使用4台CentOS-6.7虚拟机进行集群搭建# ^2 s. n5 m5 @. P) C7 r9 ?
* V! [3 t3 s' g6 S* P
- L+ r. h4 H+ O% x/ B* c7 @' K4 C
* I% ?! e$ F, P/ B6 M9 p
回到顶部: c, V$ ]' \0 X
软件安装步骤概述0 u' s3 M+ j! C4 f; C% {: U( X
1、获取安装包8 d6 E* j# t O8 B7 e* {. A
) _/ k( z- }( ?. p W3 P2、解压缩和安装0 p: m" F8 u$ T* B& K. b
7 ?5 a; x$ v' ]' k; ^3 ^; Q
3、修改配置文件. R ]$ m8 ^* q" D6 E
% n( G q: J5 C% t' m- k
4、初始化,配置环境变量,启动,验证+ Y( c' e2 V& B( b( t
& I( F' D7 f& ^1 y$ G0 K回到顶部
( s$ D/ n, ?: z, b& z; f( iHadoop安装' f; e; ]1 Y" y7 Z
1、规划
- |7 c/ x8 W5 N- I2 l规划安装用户:hadoop# g" ~! y$ U& c( O, c
- w' ^! `8 n0 {
规划安装目录:/home/hadoop/apps
( j" [. G v4 F% |: O
4 B4 e9 a8 X. M: O规划数据目录:/home/hadoop/data
1 T# L4 H8 p A4 g3 N6 Q( w
+ H3 `4 b# l6 \$ M" Z注:apps和data文件夹需要自己单独创建) ]7 | a/ H. `* J& O6 G8 T& t
, w' L) Q$ q+ s8 T% a
2、上传解压缩
" \5 Z& d- n- ]( |+ y4 c注:使用hadoop用户
7 J* q. ?6 x- \
7 K/ Q* L1 Q1 ~, m6 ^[hadoop@hadoop1 apps]$ ls- T2 F7 e6 d; |+ i! L1 i
hadoop-2.7.5-centos-6.7.tar.gz+ ~9 K8 E/ d g+ b0 @
[hadoop@hadoop1 apps]$ tar -zxvf hadoop-2.7.5-centos-6.7.tar.gz
. y& m/ `8 Z: Q* Q. R3、修改配置文件. x4 B0 I/ D+ N, Y8 L
配置文件目录:/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
! ]1 S% s! k0 Z/ B) z* Z7 q- N7 P1 Y2 X! ^% J
# `( P; q; `) x: a
4 ]3 S( V* q3 l8 WA. hadoop-env.sh @" l, \) j# G" s9 J3 _! U
[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
$ q5 Q, y# h: }* t7 B! v修改JAVA_HOME
& n; M4 q" e( P
- M- B) M+ ]2 s/ v6 p6 D2 U. g$ k; fexport JAVA_HOME=/usr/local/jdk1.8.0_73
9 m) T o& N+ K7 s$ e. d W: o9 O+ h6 Q, P
4 d1 v) A2 K( A3 z- S) r$ D
B. core-site.xml
! V0 `9 ^9 m- a( `5 P) j5 N) ?5 {0 B
( L M3 ?* E3 P% V6 D( C[hadoop@hadoop1 hadoop]$ vi core-site.xml
- ~7 d. B/ I/ P; o o! a1 Qfs.defaultFS : 这个属性用来指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口,也可以指定为一个namenode服务(这个服务内部可以有多台namenode实现ha的namenode服务) A. Y2 r$ z8 c5 @# r7 F, g; F1 Q; E
9 s: F) `: V: V, {: w; p" S2 L+ U
hadoop.tmp.dir : hadoop集群在工作的时候存储的一些临时文件的目录
! N$ h& D" T/ z
( Y7 d8 m9 Y2 i5 d; n复制代码" r: n) d& o7 j9 f$ u4 O
<configuration>: l$ N+ i8 x; p3 p% t* e/ d1 @
<property>0 o3 Q. |! D! u7 j
<name>fs.defaultFS</name>
+ P7 d' Q9 Y4 |4 w5 O5 ` <value>hdfs://hadoop1:9000</value>1 K. \3 f& w, } y7 i+ `6 V
</property>4 h. r( a& `7 W
<property>. H# `2 C1 T7 L8 X* z8 y
<name>hadoop.tmp.dir</name>% G5 v8 W5 g# j. F) i
<value>/home/hadoop/data/hadoopdata</value>
s9 u! g' }; s5 Z% I </property>
+ r$ Q, ?+ p" `</configuration>
( C9 J& m) |& I( C0 _复制代码
1 a8 b( G; b& @5 q- x+ [' x1 n* ?( j m( f& N
) k* t2 P% A8 M: a& x. YC. hdfs-site.xml) a5 a. [: t: j0 y0 l! O
- V+ G- Z( A) o) v" @- W7 v" P[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml , U9 j" T' ^6 i( B/ k/ U) |
dfs.namenode.name.dir:namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据。
( H# w# u! D7 ?+ Z) B9 C6 F9 n, ] ?6 A7 f% E4 F; x
dfs.datanode.data.dir: datanode数据的存放地点。也就是block块存放的目录了。
( b' d2 C v3 r9 Y: p9 S* o! X4 c" t+ d4 f
dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,默认配置是3。
9 G8 ?0 G8 ?8 Y/ k
& K- l$ H: {! F' t0 Bdfs.secondary.http.address:secondarynamenode 运行节点的信息,和 namenode 不同节点
% V2 G8 R4 i. R0 j" b8 M6 o8 E& z$ M& N! Z, q5 }. S
复制代码' ]0 ^, n8 `, T
<configuration>- E6 _! T; ^6 X$ Y7 h* _
<property>
; F6 ?# o& q' C <name>dfs.namenode.name.dir</name>
( [2 t% z* x/ V+ H) o <value>/home/hadoop/data/hadoopdata/name</value>; H, L8 g7 E. _) r6 `
<description>为了保证元数据的安全一般配置多个不同目录</description>
0 g( K& m7 g) ], g2 ~1 Y) ? </property>
# Y& O( L# ^" N) I4 ]3 y. d
& Y! P$ M2 ~6 N& G& b8 e <property>0 {" ?- p2 {; k' K1 x. a
<name>dfs.datanode.data.dir</name>' G5 s9 H) E: S: j% A2 M3 U, h3 z) V" ]
<value>/home/hadoop/data/hadoopdata/data</value>
, {: n4 y/ ?3 t' t4 a3 N8 q" L <description>datanode 的数据存储目录</description>! ^ g3 b- w6 \8 }. Q: `
</property>
( _+ ?) E: k" Q! |" a0 Z, o% F7 e) m& ]% E
<property>
! p0 ]# x" v. S <name>dfs.replication</name>
- a, }) X5 C3 m' u9 N; r% h, e <value>2</value>" u& M# K; B- Y5 h
<description>HDFS 的数据块的副本存储个数, 默认是3</description>4 n5 N: d+ Z% ~+ M' g
</property>% f6 Y% G4 B9 }4 g
w- _( j2 d) @6 B. o3 L <property>* u" ]8 j/ `. M, r) Y
<name>dfs.secondary.http.address</name>
: C* Q3 e: i3 u; A8 j7 U) F8 _ <value>hadoop3:50090</value>
8 {/ Y) D3 f# ~" ^4 B <description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>7 X: R7 f+ h: V" l7 D& [, a
</property>/ g/ j: E1 p' s) I g
</configuration>& u2 S* w0 E q% C6 V+ u
复制代码3 ~: M8 y) j$ f! ^
% w) S D" F: z3 k
# O1 w+ K% k/ ~# v/ o* z* _D. mapred-site.xml
* I# q/ \9 e# y0 u
3 |) p. Z4 {/ N[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml' u6 u/ m4 d0 l2 l3 }
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml% B( u* O5 n! R6 O1 w" C; |6 ~# [
mapreduce.framework.name:指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 。; q0 U; q+ O2 f
' s; i: c0 |7 U' p
复制代码* l, Y* m: K+ u/ ^3 ^
<configuration>3 c4 f/ t7 ~7 y, H
<property>
2 c- }; w; [% }' i6 X <name>mapreduce.framework.name</name>$ G8 H! t, _' D. u$ v
<value>yarn</value>2 u( F3 ?5 l' a! V! a
</property>
- t) U7 W9 d1 u6 K' w( T: x</configuration>3 x0 l1 R; u9 |" w; d4 V0 Z
复制代码
% @- a' I' T" E7 Z: d& D% E J% H* I; c: v9 V7 ]' E
$ S, ~2 d+ b, A& U* S; LE. yarn-site.xml
( x: D3 O! E. ?8 f3 B
: `- Q, k# ~; D- [[hadoop@hadoop1 hadoop]$ vi yarn-site.xml 3 E0 `6 H2 W8 u6 t& n8 N* z
yarn.resourcemanager.hostname:yarn总管理器的IPC通讯地址
+ ^, m Z9 Z% \- G
7 j! n2 M1 w# K! {) q yarn.nodemanager.aux-services:
W- Z, R( i2 \7 i5 C: w/ r# i! b* e) `! z& _- N4 o, K
复制代码
0 d2 J0 {4 s, J9 |% |<configuration>
6 E5 c7 i" a- F' ]1 y Z3 F
, D; V$ h# p% d' v, ?<!-- Site specific YARN configuration properties -->
1 t1 l6 R& W$ e+ E+ D* C2 w' L9 G, H1 Q. x$ e$ A. W
<property>
. v2 K5 p+ m8 O7 n/ h/ W2 M <name>yarn.resourcemanager.hostname</name>4 I) v' n3 D( }4 ~1 a7 c( H% t
<value>hadoop4</value>: z+ P* P) b- H8 A! h5 g% t6 x
</property>- @( Y x6 X, t8 q# Q
2 F4 q1 X2 T8 C <property>% _! i$ q* R$ `# ?
<name>yarn.nodemanager.aux-services</name>0 _( z) c7 C- g, J) l" W0 A* q1 ^- B
<value>mapreduce_shuffle</value>
& W2 f/ K% B- ~2 B' _7 d <description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
/ u ?( @3 n8 I B" z </property>
% F' Y, k- i; B. j+ W! a' [5 S. W$ \" S0 t5 ^9 u' c
</configuration>* x* i/ w: X/ @, e
复制代码
$ [( `" A8 f0 W5 T+ j6 W5 e( k0 X7 f1 d8 J' X# _! X
+ a8 g# v: c$ {2 BF. slaves; Z) i9 s2 j' E5 K2 c L7 j0 {
, x1 l ^3 E3 a" }% B5 h9 W
[hadoop@hadoop1 hadoop]$ vi slaves ' C9 c. e: S* o; _
hadoop1
/ c+ @$ ~/ N5 o4 s1 Qhadoop2( [& e! a+ Z6 I8 o) O) j
hadoop34 u* {, g* d2 u
hadoop4" U' w5 V3 ]. B9 ]
4 x, I* b5 c5 t- n( V ~5 i
0 D) M) G& Y* m# F* ]4、把安装包分别分发给其他的节点
% m3 H- S6 x1 ~重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致6 u1 Q/ D/ _1 G; w) q& o$ R
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致7 b5 l' P _) r
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
7 k; u; W- f' g7 A% A
7 l2 O- ?* p7 H0 i# R5 ?[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop2:~/apps/5 [0 G( q! z+ J% l
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop3:~/apps/' ?, f* C7 z% z' K9 t9 ]$ Y
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop4:~/apps/
- ?, k: p0 ^. z* Q+ K注意:上面的命令等同于下面的命令
0 z& h; a. Y3 ~# H4 l' }2 ~
( T: X0 l [! ?; D[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop@hadoop2:~/apps/4 R- w0 v5 I7 e8 [2 f9 E
5、配置Hadoop环境变量/ ?* B- h) _9 q- ^. F$ d9 i
千万注意:
# Z" t( X( w7 h" u% k9 S* K. [
8 _: R! r, X4 H V2 t. r9 m1、如果你使用root用户进行安装。 vi /etc/profile 即可 系统变量
( N$ l. `& X+ X9 l7 y4 F6 {4 U/ P! w0 F' n; c( v2 P
2、如果你使用普通用户进行安装。 vi ~/.bashrc 用户变量) f# j5 h8 ~7 M, v. f9 Z2 _
7 L5 s5 Q. `/ C6 o[hadoop@hadoop1 ~]$ vi .bashrc; T2 G q1 x7 |
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5' m$ K; T9 E. g8 u. i
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
3 P5 O5 \$ D! ~% y; l* c
" M% U% j7 H6 \* ^$ C0 ?# U
* m2 Y, _6 ^% V# V% v/ G; w% `使环境变量生效- \. w" N3 Y4 A t, K% O; X- |
4 F6 H& N% _9 g) A# ~2 g3 ~[hadoop@hadoop1 bin]$ source ~/.bashrc
% U4 S! o9 q% K0 t4 M0 C6、查看hadoop版本
' p% a1 A3 ]: A" g! }5 u复制代码
5 F- d Y# c6 k1 K[hadoop@hadoop1 bin]$ hadoop version
) S( |! i% ]. ~0 w5 f: T2 vHadoop 2.7.5
8 }7 \# A* ?* N- m3 D4 pSubversion Unknown -r Unknown
# }8 j, S3 ?) x1 d5 HCompiled by root on 2017-12-24T05:30Z
; G) S$ _. s% eCompiled with protoc 2.5.0
( t; U3 V$ T+ {9 \, s: sFrom source with checksum 9f118f95f47043332d51891e37f736e96 q5 a/ L" Y; |" ^! P
This command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar' ~9 @4 ]) S% P) a: a/ F/ i
[hadoop@hadoop1 bin]$
) m2 D) E5 ^& z: x6 J; F! q复制代码
- [/ [, r1 {4 `# P1 E+ f G
( \% w) o z9 I
6 v% h- [2 q s n7、Hadoop初始化
- J) |8 G$ g E8 c注意:HDFS初始化只能在主节点上进行4 {' m6 y9 E" m3 M k) n
) z6 n9 e( X8 g o/ R2 M/ L
[hadoop@hadoop1 ~]$ hadoop namenode -format& g2 _$ i; u1 w4 o* k' H
View Code
' ]1 x4 J4 @% ^ `5 T& K% _& C9 Y1 @0 g9 h8 k' W( i5 I
7 f$ C- H! k/ C( Q. j
8、启动2 M, r* t, C* z
A. 启动HDFS5 X$ h. Q$ J; h( K; L* |4 x
) z0 n. |+ s; H; g+ e9 j
注意:不管在集群中的那个节点都可以
; }: z5 B" y4 }) _
/ k5 u1 t+ `' M5 M4 a复制代码. e) ?! D \# _' B
[hadoop@hadoop1 ~]$ start-dfs.sh7 w; s' |. Y( a% }% h9 g
Starting namenodes on [hadoop1]& ]' t7 T% i/ n5 d6 h
hadoop1: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop1.out/ R8 {. [6 D5 K4 v8 F2 k
hadoop3: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop3.out* V9 e& h+ X3 g' x6 U
hadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out
* r7 o# _% h* ~" C/ F" Shadoop4: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop4.out
& s( q8 G9 q. h& _; A* Qhadoop1: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop1.out
" D: A6 a/ {0 e/ d% O5 x$ YStarting secondary namenodes [hadoop3]$ _* A; G. y1 v
hadoop3: starting secondarynamenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-secondarynamenode-hadoop3.out
7 M( K/ h/ h A6 [8 f8 B[hadoop@hadoop1 ~]$
7 B* j$ f1 \1 k% A复制代码& M( J0 S0 H0 {7 c
3 Y. i$ U/ T+ F I( E# x. \* n2 E
C! y& Z2 ]' e2 n3 OB. 启动YARN' l) s# ?! b, k4 j* y& z& i# q
/ p/ B6 ?: O1 d- D
注意:只能在主节点中进行启动
; z8 i% \& }3 z$ `* K+ O; x0 [5 {2 j
' u: h' z) l7 Z" R3 G复制代码
7 E/ ?( n" b5 u[hadoop@hadoop4 ~]$ start-yarn.sh% X" X1 S, k% g1 t0 S& M8 X3 Z
starting yarn daemons
) r& \4 o1 h4 r4 b$ K% ]starting resourcemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-resourcemanager-hadoop4.out
/ o, @% [5 T f3 {+ J$ R! H. Q% ghadoop2: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop2.out. m% T- h' B5 m# J, j8 m7 N* @
hadoop3: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop3.out
. d/ U# ?( g% S' ?hadoop4: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop4.out
' O8 u$ M; r* u& l, q4 A6 f% t" ghadoop1: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop1.out
' n2 `1 A# w* z[hadoop@hadoop4 ~]$: r- g& z+ s6 S! Q/ Z! Y2 K9 V0 G
复制代码
( k4 ]; m5 M- ]( x& a, X2 Z' B& _
2 N* }3 B, M5 `# j" `
9、查看4台服务器的进程6 R W' R0 a [5 K
hadoop1
" D2 m& F7 q- ]% H# W# z! |
- A) D+ K8 x* ?% x
: R" S+ i' @4 {6 A6 H9 h" [ G; H, Z$ A0 b+ P; a( @' o
hadoop2% P2 b& a( {! }8 j6 r
3 E( g/ c: ?0 {1 n6 y, O4 V' [
$ H" g2 Y1 d+ T4 I3 M3 s
: L7 Z/ }: v9 K5 M8 J
hadoop3/ J$ j r' f' J. p: c! W& u) ]3 T- B
/ c% s9 _0 S$ @4 G1 l( F
/ Q" D% G1 ^$ t& d/ K0 D% }( K, b7 S9 t8 `6 s, Q
hadoop47 {1 e. U p( n l" q/ L
1 B; a) M. S3 I. P0 x" d' @: j
& g0 X/ W7 t" R2 v: v# u$ S: }9 o- p, g
10、启动HDFS和YARN的web管理界面
# Q; f0 x4 j2 S6 O+ q1 GHDFS : http://192.168.123.102:50070
% P' N9 H+ R% t' |8 v% z# P; AYARN : http://hadoop05:8088
2 g- c3 ^% S* f* ~
v" @5 a) `! O6 G疑惑: fs.defaultFS = hdfs://hadoop02:9000% i- j$ a4 N7 \# ~7 G6 l' I% x1 K
! {$ l4 b% h6 D, z" x9 z9 |
解答:客户单访问HDFS集群所使用的URL地址
' p- x' u1 H% X4 ^# f1 \5 a+ ^% c9 I6 n/ y8 X# s2 C
同时,HDFS提供了一个web管理界面 端口:500702 w& X- \% Z% H/ {1 ~; |2 F
0 [& j, H; {+ t3 aHDFS界面 r* |" j# R; ^9 C' M/ X$ |# r V
' Z; ^, N( `& m: d' M! ?" J& e: |* b5 M
点击Datanodes可以查看四个节点8 U$ q/ ?* _& N. H# ~
* l- \- Z" t0 q' i+ \
8 E% H' e* I$ |0 w" ~. J
- a+ S3 X) \$ D: r5 R: L/ F: B! X
YARN界面. |( w* t+ P# h8 i
6 ?$ c' C' D& {" s# g" E8 v8 q8 P, @& f; r d. G2 F* K# v5 X) J1 r6 n
点击Nodes可以查看节点
" G1 L4 w3 k) j
1 `) f& G+ p( g- H9 Q D7 e0 X8 X, P1 [5 m7 B
% V+ f& U1 b: W2 q9 \' O回到顶部
: q5 A- J. O+ k. D5 W. h( tHadoop的简单使用
& p1 R' {8 y% y+ [/ G创建文件夹
/ ?% u, D0 }2 B8 M' o$ P$ i在HDFS上创建一个文件夹/test/input6 U% e" Z) x/ n2 P. o: v
5 W$ O5 B+ X4 e3 n$ w( `2 _& C[hadoop@hadoop1 ~]$ hadoop fs -mkdir -p /test/input
0 g2 b! ?: [0 ]/ ?* |8 B查看创建的文件夹
* `7 w3 Q; d$ h* a, P7 C* x! K复制代码
6 x J" y1 A6 l: v[hadoop@hadoop1 ~]$ hadoop fs -ls /
% ]. t( C1 h4 ^' \. oFound 1 items, }1 Z; f6 P- a( ~0 d
drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test$ l8 K; k9 l7 }
[hadoop@hadoop1 ~]$ hadoop fs -ls /test( R# s9 a4 F) v1 ~2 g+ d
Found 1 items( V- h, ]8 R( u% y1 M1 O' q R
drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test/input' @! g/ t' V& ]0 j
[hadoop@hadoop1 ~]$
3 F! ? \* `# ]复制代码) K. ^9 u, z% L& m4 o
5 k* o, O! W4 k: _- F, L% B: F* G0 q
i$ y! u2 S$ E* E1 v% w
上传文件
+ W# J2 r4 T! K) ^+ M6 f/ W0 |创建一个文件words.txt# k8 g- x. n+ D
$ F; N- I. F% ~3 h3 h[hadoop@hadoop1 ~]$ vi words.txt$ ^+ k2 s" @- n$ g
hello zhangsan
1 J& C) ~/ {( D- I2 Khello lisi
, `! U* B3 Y$ _- t% T7 i7 P& Nhello wangwu
% E2 i) N6 F% N上传到HDFS的/test/input文件夹中* N: }" L9 {0 f$ Z0 j
5 m. x! X8 s2 O1 C- f[hadoop@hadoop1 ~]$ hadoop fs -put ~/words.txt /test/input
/ b$ ?+ N8 C) M. L- r& U: W) M! } 查看是否上传成功* l. p% R' P% F$ }' j( T0 q$ C8 {$ A2 E
- A- I7 o( C5 K2 d# n: Y[hadoop@hadoop1 ~]$ hadoop fs -ls /test/input* Z8 Q# h3 o8 w" A1 \
Found 1 items. C9 e0 M) s5 R, @+ p
-rw-r--r-- 2 hadoop supergroup 39 2018-03-03 11:37 /test/input/words.txt
+ Q9 o; u$ [9 c0 s9 n9 ?" b- b[hadoop@hadoop1 ~]$
2 y s& N; M( p4 y* S1 `) O
% @4 ]* M! s1 J. @# R
# ]8 X" R2 i# T, W% t- E下载文件
+ f% i$ T3 q3 a/ b O将刚刚上传的文件下载到~/data文件夹中
t, d4 t* _; F y- ]
: T9 ~9 L) P/ e2 `0 b$ }[hadoop@hadoop1 ~]$ hadoop fs -get /test/input/words.txt ~/data
, h1 T' e8 O9 k查看是否下载成功
' v! Q$ M& ~$ A, W( U5 k% d6 c& C' W1 L$ W, R/ v) \
[hadoop@hadoop1 ~]$ ls data
1 a0 ^' W# G+ \hadoopdata words.txt
6 S% _/ L4 |4 k1 h[hadoop@hadoop1 ~]$ 9 z- b7 r; v* j7 X+ B% B
: C5 k+ }8 ^6 y8 ~* T: g
, F% M; J) s# V0 u; ~# p
运行一个mapreduce的例子程序: wordcount9 k( ]2 }5 ], S7 T. H
[hadoop@hadoop1 ~]$ hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /test/input /test/output9 S5 v3 z( {3 Y$ ~) p& j. r! k
" T2 o P8 q1 w( |% r2 O
! f' U6 E& v5 r2 N( `! d9 p
在YARN Web界面查看 }/ |/ C& h" b0 h# G D
3 C. P3 o0 F, C5 u! i8 |# ]+ G a6 _' c
) `+ H( d3 c+ w9 @* p5 O
' h5 O5 R4 t' i, G& _2 [: `* F- k1 o6 e" L% b
查看结果
( I/ |, ^" j; X! m: w& c$ t) f/ ]9 A6 J+ W
复制代码
f" j9 S% b+ Z" e4 m5 Y9 o1 n[hadoop@hadoop1 ~]$ hadoop fs -ls /test/output- z% I0 s" c8 X0 e
Found 2 items
, Q- ?$ m4 P! v+ C- ?7 k) K Q5 S-rw-r--r-- 2 hadoop supergroup 0 2018-03-03 11:42 /test/output/_SUCCESS
( E% E6 J; h6 f) M-rw-r--r-- 2 hadoop supergroup 35 2018-03-03 11:42 /test/output/part-r-00000# L0 {" _6 C( o+ Z! {
[hadoop@hadoop1 ~]$ hadoop fs -cat /test/output/part-r-00000
$ H3 I/ ]1 A; ~; n4 [) Phello 3
+ U! L- M2 a5 L) z4 _lisi 1% Y! p6 O) a8 }) g
wangwu 14 F$ T: m# e# Y3 v2 g: b
zhangsan 1. o$ X, O9 i9 D- z9 K i
[hadoop@hadoop1 ~]$ 2 }' v9 J6 J+ X2 t8 {" [! _
复制代码
, x5 r3 C$ _5 a% k
7 G5 u! m5 d; `1 j6 ]2 ^3 g1 C4 D' n6 O
|
|