|
|
目录& q; e( ?* L: E) L- X4 [, p
/ j( B ?7 E$ k
概念了解
2 F+ P1 M. Y1 x, q* F8 |+ h3 c( E; N9 h) k集群服务器规划
7 V" L! ~: B- i/ K7 p* k' G软件安装步骤概述
7 ^! z6 G5 K# aHadoop安装. h# W: A" n2 N$ F
1、规划3 v. I2 V& B; \. h
2、上传解压缩
l, v$ H* Z; I: v: ^3、修改配置文件
9 `% A, P! i6 L. L4、把安装包分别分发给其他的节点
. b& R# ]1 z9 x% `1 i4 s5、配置Hadoop环境变量6 c0 Y3 s3 \; ?8 F$ p( l+ d2 [0 t
6、查看hadoop版本
/ ~: r' L" m$ I! O5 y% p* X7、Hadoop初始化
" I) ~2 P8 w# z) E- H# T8、启动: t+ M- H9 M4 N- M
9、查看4台服务器的进程2 E" b& m7 p+ T8 ]
10、启动HDFS和YARN的web管理界面
* B3 a; V( T; j! |7 F+ oHadoop的简单使用
+ U) Q j2 J0 B% q2 _3 A创建文件夹2 A0 m$ w- N) A- }# D( O: q H- ^
查看创建的文件夹) L/ R) M- A) B+ M% E+ ~: N
上传文件) a* j5 p4 m# O! S$ s( v1 x+ G5 [8 i
下载文件
: Y# a4 P/ M: G" N% W运行一个mapreduce的例子程序: wordcount
' f1 S& c+ X f* U* @/ Z8 l1 X3 M# r2 g( E+ M2 f9 s
* s- q! G5 q$ B2 X$ g! J' J+ K2 j
正文
" t) J. o) G2 h, n. A+ F+ x" d" q8 Q( L2 J% ?
回到顶部0 _# r0 `- }) `( ~0 k' z
概念了解+ [5 g6 P" H: i% j- F7 d
主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构。% f9 f; p0 [+ z/ n x' H# {8 [
1 B4 g) q, D/ k% b& t主从结构分类:
; V4 J+ f& p: n- |" L5 {; B6 ~& T1 U/ @; x; f. T+ s) C; }) m
1、一主多从& z0 E( U# n& S
% L7 P2 R7 G. `0 k- `8 @
2、多主多从
, H1 X, X7 x4 p# X9 J9 G' W8 k+ D% H" M% p
Hadoop中的HDFS和YARN都是主从结构,主从结构中的主节点和从节点有多重概念方式:
7 s0 F* U6 V; P6 \# m" Q8 d6 I9 r* O7 ]% H
1、主节点 从节点1 t8 D- S$ N+ I4 y/ Z
% ]( A+ W- d) U; C6 e+ E1 X7 q; r: t2、master slave! i0 n9 B: W( d! n3 m: U( b- s
* Z1 ^0 p/ C H/ h6 ~9 _3、管理者 工作者) O0 N3 u! S: D/ g, D
: a; c8 `( i- v; z4、leader follower' i& k. K: Z& g2 U
\0 S3 M" n: Q( bHadoop集群中各个角色的名称:7 p1 _, n$ n+ K2 Z7 t g
) B q' d ] V服务 主节点 从节点3 I. E1 x P) u! `. U: m
HDFS NameNode DataNode
3 y: ~ ~- W% _& e& aYARN ResourceManager NodeManager% P5 m) ~: u8 B" x
回到顶部4 q1 ~! k! n+ ]/ T: R3 g7 L
集群服务器规划
e- z% f" Q6 w- @' X) E使用4台CentOS-6.7虚拟机进行集群搭建7 R, o" H" `, \, y4 S8 N" Y
( |& G/ Z* C! z. M% t6 ^
0 W5 {$ ]' [: H3 f9 f& ?) e5 @' K+ U1 E" t" U" u" s* L% H
回到顶部9 Y: ]3 L4 f" @0 o% A7 p" x! q
软件安装步骤概述* I2 s$ f9 j5 s3 g( e
1、获取安装包
1 j, m- d) O5 z& R2 g
" M0 r) p* v# n' T( r" Q5 r. L; \2、解压缩和安装9 \6 ?6 n% [/ f" |6 h c
. d+ T( C8 m T6 S
3、修改配置文件
! O" Z+ @- A& b) r) [) Y3 o
6 r$ N* @2 D, X( t5 g( u3 ~, |4、初始化,配置环境变量,启动,验证
. d' l/ }* F J: R2 a& H2 r t& T: l4 d9 z# z! b, @+ j' ]/ i
回到顶部 {, l' G+ _/ o- x1 l1 \
Hadoop安装; z2 P$ V6 m8 m% m* ~/ t9 A
1、规划6 m6 }5 f" P" R! X4 V* E6 Y/ `
规划安装用户:hadoop
: l4 j9 e, K( c9 Z3 x6 P& R9 x1 f, w& {% U* H
规划安装目录:/home/hadoop/apps1 ^& A# T' S" ^/ t* ?
9 V5 F/ F6 Z2 Q) F0 C1 S
规划数据目录:/home/hadoop/data
* ^6 N; s4 X0 |' P* M. Z* J2 T' G/ p- n/ [+ H3 c, ^
注:apps和data文件夹需要自己单独创建
4 s% q( V5 ? V) O3 v2 T
7 \: B9 h8 M t' K) Y2 {2、上传解压缩
/ j+ [4 _8 L$ r8 T注:使用hadoop用户3 z9 R' c& @9 l
: P. ~' }- B; A- s5 x
[hadoop@hadoop1 apps]$ ls2 C2 _* y$ ~ ?- @, ]7 ]
hadoop-2.7.5-centos-6.7.tar.gz
$ _* ^. }- B2 F3 w- S6 a[hadoop@hadoop1 apps]$ tar -zxvf hadoop-2.7.5-centos-6.7.tar.gz 0 s% \7 f1 e7 i$ \+ E! y
3、修改配置文件
0 [- E9 Y# a; R" i4 c7 l) c配置文件目录:/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
) u9 s4 |, y$ c( \2 I9 Z
# P. Y/ v! G) ~ c! w- ]. h% Y0 ~8 l3 B8 u. L
% F ]+ B6 V' [A. hadoop-env.sh
2 i# p# p6 Q. W, F X1 ?4 s/ ~% w. j! Y[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
7 T$ r4 v5 |! t9 H! [' w修改JAVA_HOME
* `( ?' x& u' [4 ?4 R. j2 O( v# C& E v7 `4 h$ }' Z
export JAVA_HOME=/usr/local/jdk1.8.0_73 s: M T0 q$ B/ g4 T& I
" F; M9 H4 |$ P4 W- G: t" D, h# S
; A* a# }5 R% t1 c' q
B. core-site.xml
# I& L: M! n: _' m/ \. t; H7 k- w3 K+ r
[hadoop@hadoop1 hadoop]$ vi core-site.xml + q* F( l/ D, o- r& t$ g0 h
fs.defaultFS : 这个属性用来指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口,也可以指定为一个namenode服务(这个服务内部可以有多台namenode实现ha的namenode服务) f) B# V0 q# \( t4 R' A# j, c: a" ~) m
. |' h& n3 R8 ~- ~9 l% d% Z( |! y
hadoop.tmp.dir : hadoop集群在工作的时候存储的一些临时文件的目录
1 Z) s' }+ Z) v5 P* w: \; z8 r4 r. _( I, h2 F4 S
复制代码: g! Q$ X9 H# ^3 ~
<configuration>
4 \8 {5 n4 x9 A" X <property>
& e( g5 M$ n) I+ q7 Z7 K <name>fs.defaultFS</name>
1 _ V( }1 I5 R- W6 Y# Z <value>hdfs://hadoop1:9000</value>
7 I& _! i: T% s) f: m </property>+ n9 r3 [& W# [1 n+ E' O
<property>
; Q& W c6 B6 q& s5 Z <name>hadoop.tmp.dir</name>
$ M3 B( V1 J9 O# R5 d' I <value>/home/hadoop/data/hadoopdata</value>
8 \+ X0 J2 p% i S! @5 Z1 H3 z </property>3 s- o9 s s( h- X) s0 J
</configuration>
$ W: _7 p( G8 c0 v% C复制代码9 r5 ^4 f/ I4 l3 n
# j, D5 @" h! x. |
+ j4 W" Z4 C: ^C. hdfs-site.xml. Q2 X* }! ]7 O/ L T8 O' o
- l1 u& V) T2 F
[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml ( B) E3 S: I ?9 B9 w3 a( p
dfs.namenode.name.dir:namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据。3 A2 C* O! J- I! S
- V7 i& c! a4 K7 M; g0 F8 O
dfs.datanode.data.dir: datanode数据的存放地点。也就是block块存放的目录了。$ h3 a# _/ j* I$ U2 g
8 N7 n! X" s8 q m4 t, W
dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,默认配置是3。
2 S. c# Y5 R: Z+ |
$ H6 G6 O+ F* F" q$ n( Odfs.secondary.http.address:secondarynamenode 运行节点的信息,和 namenode 不同节点+ G, f8 @3 t; x8 X* b" N, h
3 o5 O, @- Y1 S
复制代码
, ^; P3 E5 y, m. ~3 A* ]: W8 v$ z<configuration>1 v6 v7 F7 t; M* K
<property>
8 f b, u$ o8 E/ [' ]) l <name>dfs.namenode.name.dir</name>
9 ?* b9 V5 [6 }2 J <value>/home/hadoop/data/hadoopdata/name</value>& p- i) k' I) h" r
<description>为了保证元数据的安全一般配置多个不同目录</description>4 X* u* E" c6 u4 r: X
</property>
) z i7 }* `7 S( e' ~
% \# Z+ [0 _9 q# V <property>% \+ F* v0 j! \: M" L& o- T8 ~7 ]
<name>dfs.datanode.data.dir</name>9 U4 j" m, v& \$ }, ^4 d
<value>/home/hadoop/data/hadoopdata/data</value>7 L) {7 o, Z# W: Z1 J& E7 j
<description>datanode 的数据存储目录</description>
8 x6 m8 o$ X M# g K </property>' Z4 Z- l; ~7 i
$ s; |1 U. d2 P# B4 w# B <property>3 m1 @* c' e% {
<name>dfs.replication</name># H% q: J, V# U9 ^: r7 k$ X& ]
<value>2</value>+ W+ A. u% |6 h }
<description>HDFS 的数据块的副本存储个数, 默认是3</description>+ j# l) c: G( a$ I' z
</property>
; I& v. ?. K3 l. R$ {6 }# _/ B+ {0 {
<property>. e& h" R/ z" G* P$ R* n% s
<name>dfs.secondary.http.address</name>2 m+ |/ K/ a+ N1 J- l* S8 B) G0 _, ]
<value>hadoop3:50090</value>
/ H" g; o/ S, o* i& ~* S <description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>. n: Y$ Y+ t! j3 A9 h6 A6 w+ x
</property>2 F1 O0 S \4 b3 K1 ~& q7 r+ d0 a
</configuration>, C* u. o2 g5 {- x$ i6 E0 C( h) K
复制代码
0 }' M% g1 a; t. ]. T+ n3 e" e# P# @! ]
" B6 h" Q% o6 ^$ n1 j
D. mapred-site.xml
* o3 @( W4 N& p" G2 l# u- i: R2 H9 E3 J2 W8 f- d: V
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml4 `1 n( D- _9 `6 C! Q( l/ y
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
' V: j) u9 H: p/ P# d( i mapreduce.framework.name:指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 。/ _. y2 H" \" W4 N" n) L" k
7 R% }- @& F& G) r复制代码
2 E3 ~ Q; y! g# J9 O' @7 N7 G<configuration>: g9 l2 F0 m Q: X* x0 u
<property>, h+ L3 R+ \+ v
<name>mapreduce.framework.name</name>7 u- W+ ?) t' T/ k' x
<value>yarn</value>
3 c l) P; ?8 L! a5 \0 U6 {; _ </property>
2 o8 g4 u j8 Y i, l' L! u</configuration>$ m6 {, G% }- I8 @
复制代码
9 B+ P, e7 W. ]; u/ K1 F/ h
4 X Y4 }) }) K ` O
3 x" Q {+ e% ]E. yarn-site.xml
# Z% y6 o$ W7 g( |
. @* m, o& Q# {9 ~+ v[hadoop@hadoop1 hadoop]$ vi yarn-site.xml
* W% ^$ d0 b7 v- l+ \2 H& n yarn.resourcemanager.hostname:yarn总管理器的IPC通讯地址
! w+ E; k% Z4 ?
" L% i- T* a3 z) O% F yarn.nodemanager.aux-services:4 x* @7 t3 m/ N6 m
. z* e* O5 r% g, o. k! Q5 }复制代码
& f/ e' E4 ^1 j3 p+ t<configuration>' s6 D8 |7 Y1 U5 ~8 U+ g
( ^! ]3 Y3 y: p
<!-- Site specific YARN configuration properties -->) [# i) s) s3 N1 E5 ^7 k! M
' K% G2 ~' t/ T/ C" v+ C- X <property>* l3 z) J# q2 b- I c8 \; ^# U1 ^
<name>yarn.resourcemanager.hostname</name>
0 B$ ]* t) _3 t7 [4 c7 g <value>hadoop4</value>( `1 h5 r- e. _) w7 }; J
</property>6 Y! s1 |) o) U8 g6 s \% u: m
* Z p# H" C' ?, G5 A2 r <property>
, q' j7 ? D5 k8 b <name>yarn.nodemanager.aux-services</name>+ m/ G8 U4 m8 p; Y
<value>mapreduce_shuffle</value>0 J0 C4 I; R) ]( ]$ }6 ^6 B7 `
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
) V4 p; m u9 a5 ~ </property>/ S+ H$ ?# t; q
5 `2 I# q* U# p; u+ T; Q</configuration>
' l/ A8 e/ i( L F复制代码
0 g9 l4 @# Y4 h! O) `! O6 m- O+ Q+ J0 D3 E
T2 e' A9 J+ G4 SF. slaves7 |6 A, h9 {6 j9 s, G# @" a7 L
j4 Y: t9 ~0 z1 W2 o8 b4 _
[hadoop@hadoop1 hadoop]$ vi slaves / v T( {6 L& }0 L- E' S
hadoop1
" x2 W0 A* \+ ^& M4 Z6 Jhadoop2
+ s; a2 f% h9 Zhadoop3
7 ]1 D+ n$ B' w) Z2 Z; r$ phadoop4% G' {8 M, H3 W
6 t7 q8 l, R! g& @4 O" b. a8 B- V8 L; L( T% b
4、把安装包分别分发给其他的节点
" e" Q0 t' u Z! M重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致, H2 W& e6 b: m$ q9 {$ x
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
3 ` D. W' m1 I7 }, j$ g% ^2 g9 ^重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致9 r- l2 b4 q* z! J& T; p
" q0 |2 y6 _1 _# ~9 b2 \/ B7 q[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop2:~/apps/
/ Q' p8 f8 W1 d' R. C, }[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop3:~/apps/
4 ~* d9 N; N9 D) o3 D; `+ z[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop4:~/apps/' V9 U8 u7 M: a. W
注意:上面的命令等同于下面的命令: }. I1 b6 |: m" E) w. \+ P, ]
; K" N7 M1 l- P% v7 w. h7 Z[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop@hadoop2:~/apps/
8 ^ _; _, M0 I! W2 y5 W Y5、配置Hadoop环境变量
% r% l' V3 I# g" o+ h9 v" }千万注意:+ ]* p3 {1 v+ H/ B1 E8 I+ Q, h/ ~2 g
; j+ |: C" X0 t4 }% c
1、如果你使用root用户进行安装。 vi /etc/profile 即可 系统变量4 ]1 H, L/ \& B( A7 h
3 L/ n+ z0 }- }8 l7 x2 n& h2、如果你使用普通用户进行安装。 vi ~/.bashrc 用户变量
) N$ u: ~' ?( x3 ~! A* C0 M+ t6 z7 G Z. [% [3 J9 ~
[hadoop@hadoop1 ~]$ vi .bashrc" P6 J; }# F) G; V3 V, N8 W4 N' C
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5
4 X) A* q( `) aexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/ _) ?. Z/ ^5 H" O3 Y5 A: q
9 I: z% a5 n0 x
( g' P6 S! m3 B# u1 L, e7 c
使环境变量生效0 D7 Y9 w& F& F* G' ^9 z" N
' d! G4 E, ~# [
[hadoop@hadoop1 bin]$ source ~/.bashrc
4 N2 N6 y) @1 ?- u8 d6、查看hadoop版本
6 R2 {9 a0 {$ q复制代码
; `& R; B n7 e[hadoop@hadoop1 bin]$ hadoop version0 a( c2 a5 E' L6 E! @7 p; O% ~5 i
Hadoop 2.7.58 [5 O$ n) @0 b k2 i3 ~; P( t
Subversion Unknown -r Unknown- u( ?9 N% t3 G% \
Compiled by root on 2017-12-24T05:30Z0 f2 L" w% f6 B0 D2 ]6 N) M8 ~, q
Compiled with protoc 2.5.0' [6 d' X A7 T2 c N
From source with checksum 9f118f95f47043332d51891e37f736e9
: P6 T* v5 O# L" z7 h) D2 s$ h: \This command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar
. z3 m# _" E( m7 ^* J[hadoop@hadoop1 bin]$
, }5 E' o( v3 W* t# F复制代码
$ o8 E/ k B) N: t$ w
3 d. p7 J/ A" j7 g0 n" U1 A) M0 S- A# T' e5 e8 @5 i! E
7、Hadoop初始化
9 n0 j! ~& a5 x注意:HDFS初始化只能在主节点上进行
# }# j! w* F: H& ~+ o/ E# ?3 O! k
) x8 e5 u9 I6 {$ I- R8 w[hadoop@hadoop1 ~]$ hadoop namenode -format/ m/ L" I9 Q: N* ^1 |$ |
View Code
: W! c7 G2 R4 g+ w5 {6 [1 ?
3 l3 {4 f8 J4 ^* a+ ], t2 a2 j1 L# h+ A q
8、启动: Z6 N/ X2 m" M4 W2 _( u
A. 启动HDFS
5 x3 D* ?3 Y3 x o1 X4 K( i4 r7 [2 q5 h/ A+ t
注意:不管在集群中的那个节点都可以
3 M$ @+ c- X; w# @5 b/ O+ [' V6 C& O9 R7 `4 U& u( e; o
复制代码5 _0 I- ~8 G( R" x
[hadoop@hadoop1 ~]$ start-dfs.sh
$ ]% u+ u9 h. D |2 ?Starting namenodes on [hadoop1]
; ^# k& k. k5 ?# I' _hadoop1: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop1.out
" I1 e$ \9 q5 T, J% C; Phadoop3: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop3.out4 @, L6 b; b' M! w8 a3 j8 ~, G3 e
hadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out8 G q9 N* p5 {, H4 Q: ?2 e8 A
hadoop4: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop4.out
/ y1 N) @) Y" i; l0 W" i# P6 U9 ^hadoop1: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop1.out
4 ^3 c9 p' } N1 h# c8 V0 XStarting secondary namenodes [hadoop3]
( E* M* k9 B: T9 a' H* {; h$ Yhadoop3: starting secondarynamenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-secondarynamenode-hadoop3.out+ Z; }9 {( H4 ?% q8 ^
[hadoop@hadoop1 ~]$ 6 z3 {3 T! z& ^+ M, m# L
复制代码 c, v& |3 U, V6 p L& b8 S# q1 [
& H' Y# Z7 k% ^# E
" j; ^' q) b7 u* Q" \, p% @B. 启动YARN
" B4 {3 Y3 q5 i& g( e, p5 F4 T! K+ l, j( C
注意:只能在主节点中进行启动
$ h) h% x1 j& @% a7 K; a
: o0 R0 |, P' y复制代码
. _! X4 ]8 z; r4 S0 {4 a9 E' {, }[hadoop@hadoop4 ~]$ start-yarn.sh
6 O4 K7 ]: ~! x0 o/ T0 ~7 k5 Zstarting yarn daemons
) t+ F$ D1 v4 y& [6 Nstarting resourcemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-resourcemanager-hadoop4.out
# J; L" F% C. d1 }9 `3 {7 R: Vhadoop2: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop2.out W' d+ i3 u7 z- Z4 K) V
hadoop3: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop3.out& i% m- b3 i4 r
hadoop4: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop4.out4 u! l! }; A$ L4 ~7 g7 G: V6 o
hadoop1: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop1.out
: `+ e, Z* {& q# y6 ^ ?# K. P[hadoop@hadoop4 ~]$4 Y; H; o k) C
复制代码* D" \% K( J8 w0 m7 C. `2 {2 F
" N$ A* K% o8 `0 `' u1 n- s1 G2 p. _1 g( O% e3 ^
9、查看4台服务器的进程8 k1 H; ^5 S& J; {' [% r& J( a
hadoop1& ^8 o: \: ?' K' k( {/ I6 j
U4 I5 t: u2 J
% F9 r6 ^* { Y- p$ ~4 P- z9 S( g) [$ k. o+ z4 @% G# j f4 `
hadoop20 T* B" |' G2 x$ S$ `
& C* [9 Y4 x1 g
. d6 _# s) O) X$ q1 ~
( F: v3 [' p: Nhadoop3
* I% L+ d$ c, [$ B# G1 E2 O9 Q, G) y& |* r6 [
6 f9 Q- Q* ?, o- ~; I, U$ ^8 s
# i; a$ c/ T. y4 ~1 i
hadoop42 b+ C6 q7 {, `' |9 s. g- b
: N# s9 [ U9 y$ J' U' V' G
) ]% L" O1 L" {# o# N! S, a4 T6 t n0 m h8 z; R9 @
10、启动HDFS和YARN的web管理界面" t* S5 }' b& a- _4 y* J3 H8 Y
HDFS : http://192.168.123.102:50070
* P6 }7 B2 I8 ^YARN : http://hadoop05:8088
& u8 p K. Z" U7 J1 f c3 n3 E0 s1 z4 M/ |
疑惑: fs.defaultFS = hdfs://hadoop02:9000
* o$ i: V* M5 p+ r3 A) h0 N1 q+ _3 ~
解答:客户单访问HDFS集群所使用的URL地址 ^: y9 N5 ^1 C, m
$ ]& G' U- h( S1 \& e; Q% |同时,HDFS提供了一个web管理界面 端口:50070: h5 j& o+ ]& o& I# y1 D
2 T% t# q% a$ S. j6 M' ?
HDFS界面7 N ?- n# E/ ]2 B% [# J# {; j
3 j) y7 d3 |% G/ ~% P ]( V2 i F# _ d C! f8 g3 S
点击Datanodes可以查看四个节点
# `8 u7 s7 k' ?" B) X( x' _, z) {+ O* D+ A$ B: l2 H
1 J' ?) g( z$ h. ~; Q( g, Y9 P7 o- {
4 e; d( o0 T9 n2 L& Z2 pYARN界面
" o+ o1 S4 _& ]2 [! _, ]4 a6 Y. M9 c: ], c" s
2 r/ q' M3 g$ V2 G
点击Nodes可以查看节点# L$ n. L2 p1 A9 F# }$ K
6 ] T7 b8 Y! y- |
( v5 F$ X3 F4 |3 W: ]7 a) w m1 f8 z- Y) F; {. _
回到顶部& D3 ~, @. K$ w+ z- E
Hadoop的简单使用
* \9 S" ~, O- T( g) P5 r创建文件夹
: R4 o1 r( r$ r" s/ L/ f$ H/ ~在HDFS上创建一个文件夹/test/input+ b$ s7 S$ O# O0 n7 @: x) ^3 P2 k: `
6 }, s4 J8 z$ G4 B1 X; Q! o
[hadoop@hadoop1 ~]$ hadoop fs -mkdir -p /test/input. N( P3 f3 z' P! _( E
查看创建的文件夹4 q1 U- v! g. H8 r2 L) |7 Y% R
复制代码
. A/ S: n: o$ H+ m) n[hadoop@hadoop1 ~]$ hadoop fs -ls /) M! _/ V" @% _& B5 k o" R
Found 1 items
+ I* a O! c" r rdrwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test
: @$ }) }4 ]5 T, ?8 I[hadoop@hadoop1 ~]$ hadoop fs -ls /test& _5 m0 B$ ~& w! S, {$ t
Found 1 items ]4 E3 |- I; F1 r* X+ |" z5 o
drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test/input
8 G8 e' N+ c* H$ C9 p/ s[hadoop@hadoop1 ~]$ " \! F0 A1 ]9 k9 _7 ^+ @- k; J. B# P
复制代码# u+ Q$ g& B: B& n* r7 C2 h
2 I5 t3 Z. @* m; p3 M6 U! C
; s0 j3 z; o" W3 a/ K
上传文件' G, |$ n- C* d2 r7 f: B# X1 D3 B
创建一个文件words.txt
$ y0 w6 ~4 b3 b- f3 c) }% o. ]. ?& t7 ]! [* _: [
[hadoop@hadoop1 ~]$ vi words.txt: Y; Q3 A" j2 K/ T' L# q$ C
hello zhangsan- a+ A8 w. y9 k
hello lisi
1 Q4 @, Q: w6 \7 b8 z, [hello wangwu
% b) |% \$ `" @4 H' E9 e上传到HDFS的/test/input文件夹中
, @. T+ B! p1 F: \& y
' v/ C( t% J! l- ~: R[hadoop@hadoop1 ~]$ hadoop fs -put ~/words.txt /test/input4 J1 M; F% |: v/ l$ H
查看是否上传成功& G4 f7 N( T" L- s( S
! R+ Q. Y; F, a[hadoop@hadoop1 ~]$ hadoop fs -ls /test/input y- l" ?; @( f; }& d& C' D
Found 1 items% } n" u9 ^( z: Y' p, `# K6 e
-rw-r--r-- 2 hadoop supergroup 39 2018-03-03 11:37 /test/input/words.txt
( z/ n8 G1 P$ N[hadoop@hadoop1 ~]$ 5 T5 G7 C- [9 F7 [+ g
6 ?6 y. B. E. A2 V
+ C' b' y. A5 e& X' {5 {
下载文件( q9 W9 X4 K( y- ?) M
将刚刚上传的文件下载到~/data文件夹中2 t: B2 |; I/ K- X
; @' c3 X6 \, @2 q$ C8 f[hadoop@hadoop1 ~]$ hadoop fs -get /test/input/words.txt ~/data8 F+ D* \. x6 z& ~. k3 P+ u
查看是否下载成功( p0 l6 x, `! n+ D+ G
, b% [1 H8 k1 w) x) k" d6 ]" e
[hadoop@hadoop1 ~]$ ls data! [! E' o& l3 z! L
hadoopdata words.txt, f6 z% G( T0 r# Q
[hadoop@hadoop1 ~]$
7 K& }5 A5 I y2 @4 ~
& w. m5 s. T; [" P" N" Y+ _% \8 N5 e E2 l9 J
运行一个mapreduce的例子程序: wordcount
; ~6 a( b0 b8 w2 z! M[hadoop@hadoop1 ~]$ hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /test/input /test/output
0 c, Q3 \+ Y9 T2 T1 y9 I6 \6 {1 \- q* \4 p( ^5 l V9 `
3 w |' D: M% t& z5 |" T在YARN Web界面查看
6 R. T$ b: D- V' W1 Z
$ @$ w$ ^+ U1 P+ }2 J4 ?5 \
9 v" x9 a& Z' f4 Q K
. I9 O4 }. W" Z
2 Q% X8 U7 E ~5 y. u! O4 b3 v4 d) H* m
查看结果/ o" |5 l3 Z2 X2 H% l. _3 I: A
' ^; P8 y/ q: q. Q8 x! f" s复制代码
. H/ i& @+ C: e- E[hadoop@hadoop1 ~]$ hadoop fs -ls /test/output
9 y! ^6 `: m2 fFound 2 items
2 m; a. U5 }$ H( {0 v& Z8 l-rw-r--r-- 2 hadoop supergroup 0 2018-03-03 11:42 /test/output/_SUCCESS
6 k6 j& n) R$ V J9 O2 o) n-rw-r--r-- 2 hadoop supergroup 35 2018-03-03 11:42 /test/output/part-r-00000
4 o( [' }* I$ c7 V[hadoop@hadoop1 ~]$ hadoop fs -cat /test/output/part-r-00000/ y" x/ j8 I) d: F+ t( I& k8 }) i
hello 3
4 p m% x: J" E* e/ xlisi 17 M# q: o& W5 Z2 ~2 M
wangwu 1
: i, G3 [7 V- Vzhangsan 1
' b/ m- J0 R# N1 h1 A[hadoop@hadoop1 ~]$ ' x) [+ N2 Y6 h4 d: Z
复制代码
5 f" w- F4 o* ]* G1 x& C$ F& d, Z/ O; ~: ^/ m
0 h6 {9 i; t$ J/ j: X) P4 X
|
|