|
|
目录
: }# l. V) z. J) Y/ T2 u& g3 e1 R
: o7 r7 Y$ S3 ^' l- |8 z概念了解
5 P6 P0 a# a9 w5 Y: d) d! T$ s- c集群服务器规划
: e* V% K" a) U* g! g4 C/ Y软件安装步骤概述
1 g: ^ _9 g5 s1 p+ t! M* Q* F ~8 wHadoop安装8 d; C) O+ _, B0 E
1、规划
9 r) k _9 q0 q3 P! u% F3 Z2、上传解压缩7 u: T4 j0 w3 ]2 q7 {5 [! F4 W, `
3、修改配置文件
% l7 i6 c' X: I+ Q' b: D. H' l3 j4、把安装包分别分发给其他的节点; d5 z$ ]! D. r2 P
5、配置Hadoop环境变量
2 F% ^. p& B) Z6、查看hadoop版本. }- E# a% f/ t( N; h8 c/ k
7、Hadoop初始化
3 t3 H# ~/ ?6 k! O5 p8 p8、启动
+ G0 k* g. n" Q- m; f( c9、查看4台服务器的进程
3 d/ Q* |: ^5 k- U10、启动HDFS和YARN的web管理界面
8 u0 L$ h( q# q2 ~: s* wHadoop的简单使用
/ H, Q, p% L M3 |" Y/ M0 @创建文件夹5 [. E$ ~8 P. [. k( B2 q) z
查看创建的文件夹; T8 e" i5 v( D
上传文件/ H* [& ~+ B. H0 Y0 |' G1 E
下载文件
7 ~, E2 l8 T: d7 t; s5 y' ?运行一个mapreduce的例子程序: wordcount
0 a& ~" g& A9 A
/ ]3 n+ b% a/ _5 @' }$ ^; l: X( f4 G3 S
正文0 b# _! T! s& U: d. Y' r( c
7 w$ z( l: n j2 Z8 p! B7 s回到顶部
/ p. T2 _* i1 g$ k: k, A概念了解
# e9 r5 |) i& `- B" L& z主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构。# L7 h" d/ D( S+ O4 C
: H( a: N% c- h' C3 A+ K* E: U" h/ y' e主从结构分类:
) m5 X# f$ W1 B1 |- c8 f! X C0 }
+ G% G( Y4 @2 M+ _) l/ g4 p: s8 ]1、一主多从/ L& j3 H% |8 i& |+ N
. |5 I: b4 _! k6 ~( X% J i- L
2、多主多从4 k% a; h, }" f+ o" e+ j5 e
- {3 c+ w4 ]' s) z/ eHadoop中的HDFS和YARN都是主从结构,主从结构中的主节点和从节点有多重概念方式:- z! ]# M4 `+ D
* b) t$ V9 ~, x5 g; m* w4 W1、主节点 从节点
9 _, l8 V0 Q3 e# `4 U' t, M0 a
2、master slave
; J/ q n' P5 w% {% L
5 t) b$ k- J, h" u3、管理者 工作者$ V( r( c( \- K# v; x; f8 C8 _
! U" v$ m1 U$ w) Y) S, m. F4、leader follower
J5 J4 r E) a: A4 X. j! W9 ?
/ o8 l0 ]3 b; w3 m4 V; s3 xHadoop集群中各个角色的名称:
1 U8 c+ D! C/ q) X) i* \$ S' V' D' _: z* a* h/ X
服务 主节点 从节点* t% K6 W2 ~: {' F. w6 f$ {
HDFS NameNode DataNode
* V2 l' g5 `) G/ G0 dYARN ResourceManager NodeManager' C4 M3 `4 D h0 C) F
回到顶部+ u, E) U) g9 J: e% _' E
集群服务器规划+ |1 h1 j9 J' Q0 m# x& D* L
使用4台CentOS-6.7虚拟机进行集群搭建1 \. M$ ]" v/ t8 Q, K* w0 u0 ]
& n$ f# S8 M8 z9 l7 C8 @2 j
( B) R( I2 J9 W% W3 O+ C9 F/ M& ~# ^( X" A0 ~7 R9 A$ D
回到顶部& d( e" a2 I" j8 d+ Y! C; F2 m
软件安装步骤概述
" R4 V, I# R2 F; @1、获取安装包
! |" A7 I& w. \4 a z9 A
" |9 g6 `9 V$ d0 @1 a2、解压缩和安装/ t2 }1 V6 H- B+ k
9 H i8 J' O1 M9 }" E
3、修改配置文件- Q6 E& r1 B/ p2 v; k
5 @7 u! G( W) \. S! f; ^. r0 \' Y/ D4、初始化,配置环境变量,启动,验证 f) D5 }* |4 i; y8 ?
' U: R3 D' G2 s1 M) K/ w
回到顶部3 Q6 {* o& \) ^; ~
Hadoop安装
+ t* J9 B7 p, C* E& @1、规划( p5 a" ^# D' o7 N C1 |! N
规划安装用户:hadoop
) u4 j! o! Q/ h1 C# V, m
& ^# m! C2 k# ?规划安装目录:/home/hadoop/apps/ t; C; v% z& }8 b
) u( l3 w7 x m, Q# X2 N+ P
规划数据目录:/home/hadoop/data
1 @: N0 h6 {4 ~2 Q) Q+ Z% Z: E/ W+ l" B, s
注:apps和data文件夹需要自己单独创建
7 f* I$ o! m! \$ X! B3 S& j2 N+ e( I. N8 f+ _; c7 T
2、上传解压缩" A5 p0 n, {2 C8 r7 ]8 P, f
注:使用hadoop用户
+ s7 G/ E: h2 Z* k) W2 u r
* `9 v$ l8 ]$ b5 Y[hadoop@hadoop1 apps]$ ls4 J f; _0 R( l3 b/ Z3 G, r
hadoop-2.7.5-centos-6.7.tar.gz
8 K8 c9 x& H# b+ {[hadoop@hadoop1 apps]$ tar -zxvf hadoop-2.7.5-centos-6.7.tar.gz
, h; N$ j5 I* A; K3、修改配置文件
; P2 U6 E3 J. T; z配置文件目录:/home/hadoop/apps/hadoop-2.7.5/etc/hadoop- `- O1 z+ E& X3 E- B1 p! H, A
4 T! w- X) I4 w7 X
# B6 R! l0 E! G! C: @* R
* H D& n! r2 e* S, ?8 i# MA. hadoop-env.sh
w8 H# O8 U* s7 A& W- z[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
# _, r4 t: S6 G$ ^; s* \7 Y修改JAVA_HOME
7 w1 ?; \+ b# l6 I7 B2 g: L. O& I/ D
export JAVA_HOME=/usr/local/jdk1.8.0_73
% J: i5 T; s$ A. ]6 t g0 Y" [3 S) L5 g, E( {6 I1 q
7 e6 p) b7 M: @7 c3 W2 v/ j+ ^B. core-site.xml' |/ f5 R! _' x$ f
* y6 ?) n& y: S4 j/ Q4 `4 m
[hadoop@hadoop1 hadoop]$ vi core-site.xml , Z# } n4 u6 Q) P$ ^7 U2 b" d, g
fs.defaultFS : 这个属性用来指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口,也可以指定为一个namenode服务(这个服务内部可以有多台namenode实现ha的namenode服务
4 r" k* u) i/ [- k/ Z, A9 A2 ~) K" M+ ]3 G& e; h% A* l/ w6 E' o
hadoop.tmp.dir : hadoop集群在工作的时候存储的一些临时文件的目录
' x- K* p3 X) \- B$ T" i3 E1 v0 G/ A( p3 W7 l# D& O. h
复制代码
! ]- q5 t, M9 D! c5 x" T; H! X<configuration>/ j1 J: T: \# B/ _6 {8 ]8 [
<property>
4 Q/ d4 n* f% ^1 J! r: [ <name>fs.defaultFS</name>2 M c4 H% q1 t0 M9 r9 _% B3 c% b
<value>hdfs://hadoop1:9000</value>7 M) c7 w) e: o! ?* d
</property>4 k" v8 I5 ^# \
<property>
# C, z Y7 a* {: m; l, @' j <name>hadoop.tmp.dir</name>1 `. H3 s5 V4 J5 R' p1 {
<value>/home/hadoop/data/hadoopdata</value>- J9 G" u8 q6 z. ~+ ^
</property>" k: O! ~' Q8 b9 o* B6 J
</configuration>4 N* T6 P1 t6 ?, ?1 f
复制代码
( i8 n, ?, _$ Y* K" K* o; ^' b1 Z% ^$ U5 @+ N. a" W9 k) p/ [4 q5 E% R: X
4 \: A& y* f) l) sC. hdfs-site.xml
: b! S. o9 ^+ q" M& d. {: |$ J
0 _: i' n. f' x) L+ I9 X0 r[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml
# |, J W5 F& x: _, v: Q dfs.namenode.name.dir:namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据。
- l- G% E( o7 M9 e1 P: e, \0 q& g1 q( P. {2 q& n0 j1 `
dfs.datanode.data.dir: datanode数据的存放地点。也就是block块存放的目录了。# E( v# f {* {1 S; R- x4 \1 w* r
0 p8 h+ M' j' F$ q3 q# b
dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,默认配置是3。
; y* [+ w& h; W, X! o7 H, L& r5 r2 z3 n& }* J
dfs.secondary.http.address:secondarynamenode 运行节点的信息,和 namenode 不同节点
8 V; Q- U* z. Y6 n% P7 O/ a
2 J3 n t' E; C0 \9 v- Q2 @复制代码' D! n$ S& u) \, L4 \& h3 ?
<configuration>& q6 ^4 _/ i% O4 q, b2 J* [
<property>
6 |- N2 k4 u) }) b <name>dfs.namenode.name.dir</name>
! c- s3 ?) S4 ~ <value>/home/hadoop/data/hadoopdata/name</value>& u1 V& P! }$ m8 {% Z- L, W
<description>为了保证元数据的安全一般配置多个不同目录</description>* c, x2 h6 u6 j( V) ]2 {# a
</property>
4 o3 R9 ^& [& R( F U6 l8 b" s' x# ^0 U$ I) O/ E
<property>
R, q" Q' i& M7 ~; n: |4 } r+ [" g <name>dfs.datanode.data.dir</name>+ ~1 Q: w7 t; N3 u; `# M! m e
<value>/home/hadoop/data/hadoopdata/data</value>
4 `4 o, h9 Q+ ]" V <description>datanode 的数据存储目录</description>
0 |- X6 d' G3 g ?+ f! g$ v3 s </property>
7 |& q4 P0 N2 @6 d9 ?- v
8 p: @& ?+ _% M& g/ v <property>
8 w/ s: |4 |. e7 o <name>dfs.replication</name>5 k8 G _5 t" v* E* ~2 r5 j# i! p
<value>2</value>
/ x% L$ N. O7 d+ F <description>HDFS 的数据块的副本存储个数, 默认是3</description>
7 Q3 ~! ?! c, l4 ~% }4 \2 M# R </property>, ~1 n' D" s2 K' U* g9 Q9 e
# ?! U7 Z7 d4 X! O F" Y4 R <property>5 p$ g4 D# U! s) ^8 D6 E* x* C2 v
<name>dfs.secondary.http.address</name>2 Q% I- k) @" M+ @, e; i
<value>hadoop3:50090</value>9 u) H& Y+ \/ ^( b! W$ m# {/ {
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>1 P" j. o- r: y6 O) G
</property>
1 {6 w5 B; B8 d+ {# y</configuration>
- R5 f2 O" {1 y. ]' C: _* ~; z6 f复制代码5 R+ r/ z; }0 h3 T" ? L" O
! x2 y3 Y3 y& p1 c: q9 h$ c2 B, D
- D! O+ L+ U. Q3 f" X; e9 Q5 o R# S9 GD. mapred-site.xml
7 d, [4 Z2 r4 Y! ]: |: r0 o X" s- J) l4 \; A
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
8 u. _+ @; l/ I' H2 n[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
+ T% d- c( l/ C- [ mapreduce.framework.name:指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 。: W; m: f1 _6 G y; ~- B
( O" y4 D1 Y4 U3 g. _1 f复制代码2 d6 }- `" b n8 P" f* L
<configuration>- q# s/ y' F6 ?
<property>
( q1 s& w9 ^- V6 {2 y: u0 `; J <name>mapreduce.framework.name</name>
2 E% Q, ^8 R: D* x <value>yarn</value>0 J2 p& Z4 I2 S$ V# n& V; _2 M
</property>
) }$ ?# u( Y5 J! h! T1 ?4 s</configuration>
/ X+ |/ K3 X1 r3 r复制代码
4 }: P. V! M8 j2 C9 V5 E7 M+ z, v8 X; {: X2 {7 d& G: F! M" L! M! Q) E
' O6 B( F, u* f
E. yarn-site.xml
5 [) t& F, b5 E+ O6 i
# A4 |: X7 C$ {+ g! Q* O' h$ W[hadoop@hadoop1 hadoop]$ vi yarn-site.xml 6 H9 O8 C7 b( J4 w. G9 h
yarn.resourcemanager.hostname:yarn总管理器的IPC通讯地址& F9 |' {, N# I I3 ~- ^
5 }8 ~" ~ }3 B- S* l1 `- O$ ^
yarn.nodemanager.aux-services:
1 j* u$ ^+ Y0 p9 T( |8 `- q
9 `3 w% i8 G+ K复制代码) G! f0 D9 |- @
<configuration># O8 l6 }0 G3 X4 g3 O$ o# `5 g
9 f% r. }7 f- @<!-- Site specific YARN configuration properties -->; ?" o+ [0 l) w: w
. |% }+ v9 p; n) a8 @ <property>
6 l) ~. U/ W+ K <name>yarn.resourcemanager.hostname</name>
& ?7 x o2 C, ^* y5 t <value>hadoop4</value>
+ }) g# f$ ]# A4 i# w$ O% Q </property>
' Z7 r+ w2 A. X4 n; }. y' k* k e! W' ?0 E: Y( M! B
<property>+ }$ U) {6 f v5 k
<name>yarn.nodemanager.aux-services</name>/ J; c" l- c8 r5 X5 k* ]. O& b
<value>mapreduce_shuffle</value>
1 o& b) T6 b' P$ Q; v, j <description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
; T4 F7 `( \+ O o5 h </property>0 d$ W. J3 e) i- S/ ?9 q- a
; }3 {" D. {8 M- e. z3 }: [</configuration>
$ P- p+ t0 d& ?. z* A# |; x复制代码4 \/ R4 M6 @9 _' a& D: d2 a6 _
# H6 _! s( f5 O1 x" V
! Z, {' P" |: Z5 ^$ V
F. slaves
/ ^9 p( G# t' K- |
# N% S4 s- m! {( O0 k[hadoop@hadoop1 hadoop]$ vi slaves " j# i- X" \9 J& P1 H# T
hadoop1
, i$ f/ T! f9 Phadoop20 v/ V5 Z9 J1 j+ o6 Q
hadoop3
8 P B0 q1 N C/ @+ K9 hhadoop4
* W+ b2 i- C/ V2 n4 R) T' y" |7 ^( M
8 U( B( P/ J: g: f
, }% I0 i6 B" [4、把安装包分别分发给其他的节点) F9 Y; f6 Y3 z' N2 d
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
1 {# I# y: f) a% \* K重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致8 _+ z4 N/ D# ] e' k4 \( o
重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致' d" ?: B8 _. f
7 o: I: ~7 O( {5 u[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop2:~/apps/! L5 a) w2 k! Z9 z2 C9 g3 x
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop3:~/apps/
. `7 @$ N2 E; [ e$ s$ Y[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop4:~/apps/
: U4 v1 J# B8 {0 i注意:上面的命令等同于下面的命令
) Z3 W( }% [5 p1 d* T: b: O0 i+ Q& t
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop@hadoop2:~/apps/# i; m! D$ }% J# h) ^( n
5、配置Hadoop环境变量
. l! L3 v& X, Q5 m# D! u! t Y千万注意:# w% q: |; t/ L* E' W. a! X4 M
1 _: T c! t; ?1、如果你使用root用户进行安装。 vi /etc/profile 即可 系统变量5 p- V: K) E& U8 R9 f
+ f# u. I v/ _+ K. X# M
2、如果你使用普通用户进行安装。 vi ~/.bashrc 用户变量
& J% a+ H) \" S8 S3 t9 u/ V- O# e& d" E F' A
[hadoop@hadoop1 ~]$ vi .bashrc
1 B g) O0 Z. u" r }export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5
& \& k" u5 F+ t/ H4 }export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:9 ?3 e2 n- Z2 F3 Z# v) v0 T: ]
$ O% M' K) ]0 c3 k" r
2 P2 P* w! i; E/ g" w! B使环境变量生效& c" ]/ P- P9 U# Z$ F. `! l' w
, _6 {* r; X' d! L, p% i2 ~! B% r
[hadoop@hadoop1 bin]$ source ~/.bashrc
9 c* g; |% a9 |) C2 v6、查看hadoop版本0 J- H p$ H. L
复制代码
4 g* A8 ?$ M; K[hadoop@hadoop1 bin]$ hadoop version0 ~* D+ F/ }' e" I9 _) Y1 _, M
Hadoop 2.7.5
N, D% G" f2 B* D/ n7 {9 Q bSubversion Unknown -r Unknown; b4 ?6 p% _% x X _5 ^# v
Compiled by root on 2017-12-24T05:30Z* k1 F$ x, t& o& v4 i5 _9 ^" N% U
Compiled with protoc 2.5.0
# `% O; @8 q9 v9 E. _2 BFrom source with checksum 9f118f95f47043332d51891e37f736e9
; I, B3 c: K J" }This command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar# c3 |; X( `* M
[hadoop@hadoop1 bin]$ 9 m2 b5 z$ [! k& d+ ~0 P
复制代码
% s9 E. Q" m0 I! w! i9 t1 H; y0 q0 e0 \7 t( h* Z% {" b
- U5 |- {& H; W1 b) H. T
7、Hadoop初始化
8 r/ x4 L _8 n! d注意:HDFS初始化只能在主节点上进行8 E- _; y+ b: | O0 Q
4 b* u2 L, {1 o3 R/ C[hadoop@hadoop1 ~]$ hadoop namenode -format0 e( y9 ?2 D9 q4 r
View Code
( n8 p! y7 X4 b# N1 f1 p8 ?( ~; Q, V- Q: W
% o2 f H7 V$ D
8、启动
; o- j! _5 j1 x0 G1 q k. j; nA. 启动HDFS. J: o6 X g! j2 q! p. Y6 J" p: @
; l6 L. x$ n8 W" N! v% Z2 |3 J* H注意:不管在集群中的那个节点都可以8 @) n: A9 J5 [
l- m L1 E+ E% V* F* |. t复制代码& y1 z- y7 M& v0 p. {7 _" \
[hadoop@hadoop1 ~]$ start-dfs.sh# g* ^9 D4 z9 e8 Q- p7 V9 C
Starting namenodes on [hadoop1]3 w9 T Q# d7 |* t% i% s
hadoop1: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop1.out
0 r5 O6 }1 G& h, U$ r7 k( Shadoop3: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop3.out" e8 q a' s+ l) ?* R- x
hadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out9 H7 T5 q8 K$ c x3 f5 b6 W
hadoop4: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop4.out
) C' Y/ Q* Z$ H7 J: e: Vhadoop1: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop1.out( f* A9 |* W5 I/ d# }
Starting secondary namenodes [hadoop3]2 v7 \0 p+ `$ s: ~. w, A
hadoop3: starting secondarynamenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-secondarynamenode-hadoop3.out6 _3 \) ?* I& d, N3 ? N" h
[hadoop@hadoop1 ~]$
* R/ c" w" g' `" W( s6 e复制代码& P: \3 l& s9 q- O# @9 l1 X# I a
0 C/ S( M# W8 m" a- v
& c0 j; K x0 ]# |' R6 TB. 启动YARN( d6 [0 V$ ~) K Z7 W; t" Z7 B
( Y# |$ u4 V7 ?6 a5 z' ^注意:只能在主节点中进行启动
0 i4 L% {3 i3 y( `0 x, T( o. l: j' ^3 q& e
复制代码
8 ~8 `! H3 M/ B# e$ H9 o9 g[hadoop@hadoop4 ~]$ start-yarn.sh' U' ~9 L0 D, r1 q/ M# [6 L, l
starting yarn daemons
2 E( U7 u- g. ?9 H+ M$ wstarting resourcemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-resourcemanager-hadoop4.out O) o3 _4 E I
hadoop2: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop2.out
! O4 }( p; G- {4 B* U# ehadoop3: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop3.out: s" k6 z' P( W5 x N
hadoop4: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop4.out5 V. m! n# b+ ]9 c
hadoop1: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop1.out1 H1 [! ?. B+ u5 K) M: E
[hadoop@hadoop4 ~]$
" A: K/ `! h3 S复制代码
r6 @# J% e3 _/ P0 S6 D' s# b9 S6 C; B8 X
- ]# P( U- A; o# b
9、查看4台服务器的进程
, i: K* U) e4 b' `hadoop1
) l! k+ w, I1 m0 y" j' A& L7 i. z$ W
" [( s+ B+ ?* _( f0 a, E3 ^3 b
* d0 `/ W b2 P& K& ^& X+ a8 q, }hadoop2# P- z. h: V. {" ~
& @5 K) T8 p: ^+ j# A
2 p. c$ s+ i2 a& n8 f4 V1 ~$ c ]% m5 T" l
hadoop3
8 Z5 Q5 Q4 e5 F, E ?2 z8 V) R( O$ C+ B0 H2 Y: m( Q5 `3 g8 t
Q9 K, p, {8 b- q3 W; |1 D: b7 h3 F
hadoop4
' v# Y; M! ]: E! E- E9 {' B7 g2 ^, E9 M/ @( B, \
. |; T/ O; }0 c2 U5 m2 P: w
, K$ x5 Y1 E* E9 |" ^10、启动HDFS和YARN的web管理界面
& i( N) |2 i: M' j' B2 kHDFS : http://192.168.123.102:50070/ Z' o1 y4 N, S4 q; r' t3 F: h
YARN : http://hadoop05:8088& A, ? h1 ]& R9 \
E1 Z/ ]7 Z9 r! I2 t, F
疑惑: fs.defaultFS = hdfs://hadoop02:90008 w3 ?4 v6 H5 }! a! U9 G% i: M% Q
& Y# \& g/ w) M v0 U2 x
解答:客户单访问HDFS集群所使用的URL地址8 X' J% P4 N4 }! K7 ]
$ u; x! j/ u9 m; M/ h0 [
同时,HDFS提供了一个web管理界面 端口:50070
( l @, p" T9 ~7 u; u Q5 d! E; _ { L A5 K8 z6 L4 _
HDFS界面$ z: ~7 K) ]( W* g
: F4 _" o, e v; q4 d$ c$ ?- U* N4 b3 W/ D6 X/ ~" c- T, E" ~
点击Datanodes可以查看四个节点! H0 N4 s" @2 x
5 p. @5 f* x$ x! ]
z/ ^1 c& S, F: z; x- h- N$ r8 L5 j9 O5 ~
YARN界面
9 J$ Y4 `+ b2 v3 J1 D' r/ M$ h2 G& }% v6 ]+ I( m
# K; g S# A6 S5 S7 s! \0 r K点击Nodes可以查看节点" f$ G( V5 Y* A
. R+ q7 W$ M6 y9 z% i/ N, I" ?
7 f4 N6 C$ }3 c' s( g* @
' H: L) X- U; R% @8 p# O( p
回到顶部0 T0 B; U! K3 @ |' M3 ]
Hadoop的简单使用
) k3 ^! A6 V [ T创建文件夹3 \- D I# k+ a! R
在HDFS上创建一个文件夹/test/input0 y) ^' ]0 h4 `8 `) J8 @
) w1 |) C7 h. e
[hadoop@hadoop1 ~]$ hadoop fs -mkdir -p /test/input
/ c; O" l5 q5 T( `( a2 ~* Z% K查看创建的文件夹. O6 u) S5 d% ~9 K* u4 X
复制代码
* i/ ~' B4 [) V' K! c) ~; p' m1 e1 E[hadoop@hadoop1 ~]$ hadoop fs -ls /
( t- x/ _1 `5 ? P5 a! vFound 1 items
8 W' [+ k: Q) f4 o' Hdrwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test; B L' Q b x& p, N5 j; ?
[hadoop@hadoop1 ~]$ hadoop fs -ls /test4 w& C3 j& h- l
Found 1 items8 E/ [" i& ^' i) X ^ U/ l
drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test/input
, `" w3 D8 Z6 l( ?; S4 B# [0 R[hadoop@hadoop1 ~]$ $ S8 S" B/ f) [/ M8 ~8 P# ^
复制代码
4 ^, x/ ]6 N& C" _1 J) g( Q: O0 w
( j% H, H% t' X$ P9 P9 l& l) H$ B0 R, r a% w, g6 K) O9 \; z
上传文件8 |4 r1 m3 Z; V2 z: j
创建一个文件words.txt
) i$ Z I O. X. v; T; `1 e6 T1 R" J2 I
[hadoop@hadoop1 ~]$ vi words.txt Z7 W J( Z" o
hello zhangsan
& [8 I4 Q; b, Y% y4 F8 z/ ~) \- Uhello lisi
! o0 `# l4 I- S+ i* A) S) R6 jhello wangwu
( b& c4 Y8 g2 A) l( l1 Z% [上传到HDFS的/test/input文件夹中
# G, z5 Q+ O5 k3 V; N
3 E1 o( A+ {6 ^+ v2 s2 K0 U[hadoop@hadoop1 ~]$ hadoop fs -put ~/words.txt /test/input
: V! t# Z) l9 k 查看是否上传成功
c' L$ O1 f$ C. F& u/ V6 }1 N
2 j8 Z7 e+ u( T1 E9 O[hadoop@hadoop1 ~]$ hadoop fs -ls /test/input/ b" q8 q; f* K
Found 1 items
5 I3 Y# }$ T6 n-rw-r--r-- 2 hadoop supergroup 39 2018-03-03 11:37 /test/input/words.txt
8 B- U \ |1 w. {8 `8 l/ i[hadoop@hadoop1 ~]$ , u9 A) q( d: a# d' c! M
4 g. g- }2 [' h
! T4 q2 N% @( U" s# M# }6 {/ P* ~下载文件
9 Q* _, q0 g( S$ g& c将刚刚上传的文件下载到~/data文件夹中
$ u7 u k1 R7 T& s* Y* y4 H& m |' x- O% m6 } Q
[hadoop@hadoop1 ~]$ hadoop fs -get /test/input/words.txt ~/data
1 ?; s0 O3 `' m" @* N查看是否下载成功& P. t1 ~; k! r8 S
4 m B1 E# T; p4 _[hadoop@hadoop1 ~]$ ls data/ c0 D0 O) u. ~
hadoopdata words.txt+ W7 L w, Y* A/ Q( R9 Q. `2 d y
[hadoop@hadoop1 ~]$ ; t, {5 ^5 |, z' _2 `1 S) _6 s8 c
8 n6 Q, p' F- w+ v I l8 `" L; }
9 L. D% u/ J( S1 p; T- a
运行一个mapreduce的例子程序: wordcount
8 Y" F! z' [: M8 V) [' Z6 g[hadoop@hadoop1 ~]$ hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /test/input /test/output
9 V* @6 l8 z9 G2 W
% p4 L# @. _7 _- }3 D5 [5 G
# e8 ?( Q3 k8 h) f, `+ D0 H V在YARN Web界面查看* t9 \5 t5 e: y9 z- }; g
: W( K6 V) G; y- v: T4 ?+ k) k
5 |7 n/ W" P. P7 @
9 Q3 u: V1 k# g, G
0 S4 _* F$ _ h$ n, E4 P/ W* F! \: e& M
查看结果
. O1 p3 D. \$ f
. J1 V: g X+ t: G复制代码% c+ h/ G! N0 g/ I$ I
[hadoop@hadoop1 ~]$ hadoop fs -ls /test/output5 T) | f2 |. _. @4 m6 u
Found 2 items
5 R; V( _2 p! \' r+ A-rw-r--r-- 2 hadoop supergroup 0 2018-03-03 11:42 /test/output/_SUCCESS0 P: H) q! R& z+ k5 t
-rw-r--r-- 2 hadoop supergroup 35 2018-03-03 11:42 /test/output/part-r-00000+ R& Y+ n* i4 Y2 j
[hadoop@hadoop1 ~]$ hadoop fs -cat /test/output/part-r-00000
, X k, ]" ]' r1 p( |- [& j% Yhello 3( X6 }" H0 T4 M% ^. i
lisi 1
8 }, H9 ?3 l% U% ?% Rwangwu 1
7 ?4 Y5 m8 l2 @# l# b3 g3 [zhangsan 1: `: d" c0 a# ]4 r0 [: |
[hadoop@hadoop1 ~]$
% K; o& [9 \8 D6 Y+ d7 l: g* J复制代码9 ^9 ]$ T6 y" h/ p
5 M, l5 |$ S1 G7 r" Q. U* E# i: [0 }
|
|