|
|
目录- b2 E$ i3 S' H
1 q0 R X* Y! ]3 G% w) n1 I概念了解
* i# ^! A- A3 i1 C9 [7 c- g集群服务器规划
" o: w, e- u6 r, i! W% Y0 k软件安装步骤概述
; p) }9 r8 v% a2 AHadoop安装
6 i6 j& F/ l5 K+ x( v4 {5 y1、规划
" _' `* \: H& K6 _9 `0 F7 L2、上传解压缩
0 O+ E+ k2 q( v6 u3、修改配置文件
( w, f- w' p$ B% j \4、把安装包分别分发给其他的节点7 m7 Q- i7 S5 v# c" L
5、配置Hadoop环境变量
+ Y4 y- _& Z5 `6、查看hadoop版本8 t. l' t+ @+ Y5 H
7、Hadoop初始化% X. }( w- a: b( o
8、启动" c; M1 r; B1 n+ b
9、查看4台服务器的进程
1 b9 {6 i; X0 L* f F10、启动HDFS和YARN的web管理界面- v$ L' X& O" c! P F1 T$ a
Hadoop的简单使用, f5 J3 I' p+ [- N3 Q
创建文件夹0 L2 I! w6 }( u9 [* m3 K0 p0 _
查看创建的文件夹
3 ]- V+ Q! a+ F# I* i! q上传文件& o* d) y& y0 o0 h. a" P- {+ a
下载文件$ l. p$ S5 }, t$ h3 c
运行一个mapreduce的例子程序: wordcount
8 ^% Q' A" }9 A, Q9 ^, M' ^' f. B) h+ K+ Z7 m$ I! T
' Y& R) O8 ~; f" V7 d% `4 o# @正文
" n& |! p: K# E8 c& L
+ B1 D) i5 i" e4 C4 @1 A% c回到顶部
7 B- u; N5 g s* B% z概念了解
; `+ \& X' V% s/ u+ A# \主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构。
) [, @! F, D/ i7 g& r# N, [' H5 ]- f. t4 G2 `; d! k
主从结构分类:4 `2 A; j' |: c' R. f" L
; ^6 D, Y/ E1 c$ t1、一主多从
: ^7 q0 p8 h9 C! L: q* A: z) ^+ n- A) Q4 ~6 W9 o" M
2、多主多从9 s- h1 \' r/ A M
0 a" X; B+ r1 o7 q# H2 C7 L
Hadoop中的HDFS和YARN都是主从结构,主从结构中的主节点和从节点有多重概念方式:1 o% S. M( W5 R% R
0 f1 a; j- s- n$ Z; b( v- `1、主节点 从节点; F. ^2 k d4 w# E0 d) W! W, e
, w, P+ } e/ g* W# m2、master slave4 P' ]! t, c7 f0 f+ r4 }
# n) B! [- s( z7 G
3、管理者 工作者) N( f! l2 g& \3 m4 \" ~
0 s7 |( |( O* H. h
4、leader follower; r+ {7 ^4 `8 u6 p. Q) N
; {8 i- K; M! s. X; d) \
Hadoop集群中各个角色的名称:! O; @4 n6 e: \, ~' K) H
. R; j( A" {+ T6 R3 t( S; z% G服务 主节点 从节点) Z0 L. B0 s9 j2 S8 x
HDFS NameNode DataNode, @ \0 q, I6 `" F" m& P7 l
YARN ResourceManager NodeManager7 S+ X# t# G1 }. y
回到顶部
9 _4 P5 j! j6 m集群服务器规划* J' H0 ?& y5 L* @
使用4台CentOS-6.7虚拟机进行集群搭建
D/ i$ \- e8 ?$ n, c4 p6 \
' H, @! n) _/ U$ G5 o+ K/ z% V2 ]0 K1 n" {& c1 S
5 x4 K4 V; h) y" c+ S* J; t回到顶部: J) w& t/ V$ D
软件安装步骤概述
. {9 U0 @& }( B. p1、获取安装包) T) k7 [3 f$ a
- i& @1 i8 e3 X9 K# ]1 A/ }& k
2、解压缩和安装
1 B$ [% G$ a! }" g9 K' o! z- l: b5 w
3、修改配置文件& t% K1 v% ^& j ?: B8 }, K: v
) C Z8 h& ~/ n2 O2 H- n, y1 s4、初始化,配置环境变量,启动,验证( X4 b) `9 v. \" F4 J. |
% T$ N0 e' q- X回到顶部
" D1 P$ U; m) G. m& w* n' ~# qHadoop安装
5 n y) n' ]( ~) f) y, y' @1、规划
3 F; j9 s8 Y. ^) i) z3 E0 u规划安装用户:hadoop
/ ]; ^5 ]/ u: A9 i9 J5 c" t* M( P! ?
规划安装目录:/home/hadoop/apps T3 l4 f& h0 H, Y
* y: x# u: o: P规划数据目录:/home/hadoop/data* J8 f4 P0 \, o8 i/ _( k& d
, `. N C/ t: @ R: S, o注:apps和data文件夹需要自己单独创建
4 G& }7 e( [8 ?/ _& O: [9 z, p4 |* @6 {: o
2、上传解压缩/ g H1 L0 ^0 N# |9 W& [
注:使用hadoop用户5 f4 D& J3 J9 s1 d0 `7 Y; p+ W
# P2 w$ C3 T7 }0 H[hadoop@hadoop1 apps]$ ls
0 |* Y$ c0 [7 D5 ghadoop-2.7.5-centos-6.7.tar.gz
3 v: C; ^- b+ i& P8 ?% X' c[hadoop@hadoop1 apps]$ tar -zxvf hadoop-2.7.5-centos-6.7.tar.gz
) A, ]# a6 \! s$ n$ T8 @3、修改配置文件5 R, u$ c4 N, O7 f2 i* P
配置文件目录:/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
5 y+ [, t! b5 o" S( ?7 O
+ c7 ^5 B! T$ _* y9 j- \4 h; h9 |% Y" y/ `. @
4 q$ N/ \% a% G t6 K( t
A. hadoop-env.sh
7 J6 L8 ]- b+ R0 b! w0 V[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
2 l2 S3 C7 K1 a: z' I0 f修改JAVA_HOME
& n: d4 r6 F; D: F, @: a9 g3 H: l, l8 I4 Q. t
export JAVA_HOME=/usr/local/jdk1.8.0_736 S. ?; N9 g3 J3 F
2 m9 W# p4 e! g" B7 i5 D8 O0 p4 q. R3 N8 p6 ?
B. core-site.xml1 j/ r$ m' n2 ~6 ?7 K0 N$ s Z
8 d) k% x% S* p" v1 P3 }[hadoop@hadoop1 hadoop]$ vi core-site.xml
# Z! z" f& I* P& z/ l/ c4 q' V9 }6 hfs.defaultFS : 这个属性用来指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口,也可以指定为一个namenode服务(这个服务内部可以有多台namenode实现ha的namenode服务( E7 b6 l% I- m8 J- g* S" e( i. o
5 K( @" N% s+ t. B, a
hadoop.tmp.dir : hadoop集群在工作的时候存储的一些临时文件的目录
' T6 A; c; x! h+ e9 t( v# P' H5 B) N1 P7 K: G7 f- ?! q5 S4 y, h
复制代码
' M* w+ z. n2 f# u$ @& D<configuration>
+ T. {$ r8 t0 s <property>- t, S- W2 E' m7 M6 p
<name>fs.defaultFS</name>+ ?: _6 \' t9 C$ B1 k& P
<value>hdfs://hadoop1:9000</value>: F. _1 }# d2 N- _& H" B, {4 m: p! C: A
</property>( J: |. z1 m5 d, Q- n; X( h5 f+ B1 z
<property>+ C. }0 u- t" a; T6 i
<name>hadoop.tmp.dir</name>
/ h! a! s' T- b4 q* B& F9 m r <value>/home/hadoop/data/hadoopdata</value>. d B, B& h" }$ T& c, ?* }8 H9 s3 Y0 J6 ]
</property>" w! c! { d+ D G2 F, W- M
</configuration>1 W* ~' B& r \; E+ f$ f( `6 ]8 ?( S
复制代码
# R# q5 e0 V3 Y% G% B+ [
5 N2 G4 f( D; B( `9 B! B$ l" @3 {' |1 y
C. hdfs-site.xml1 e$ K: W: K7 J8 j6 P' M
: N) C0 S. h& N* }5 M4 [1 l1 |: c0 N[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml 5 }+ `4 m+ ^( {# N& |) D }
dfs.namenode.name.dir:namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据。* X" x/ F) s+ ^& f; Z, y: O7 P; L
2 ]( c6 O2 u8 ^# }: Y dfs.datanode.data.dir: datanode数据的存放地点。也就是block块存放的目录了。
3 G" Y4 D# r3 w9 a+ I7 d |0 n# R3 `8 A" x1 L
dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,默认配置是3。# v; v0 \$ A0 J' m9 Q/ ^% {; O) q
4 h4 `# w. R* X) J- L0 i
dfs.secondary.http.address:secondarynamenode 运行节点的信息,和 namenode 不同节点
0 y W' x& Q4 ~* C% S3 k
5 o& ~0 R6 L) K- S6 C& l复制代码% t' [$ V' @" f L
<configuration>
1 u/ o3 t# j" `* L9 ]# ^- n- o <property>
5 w0 X1 G9 w# \) O* | <name>dfs.namenode.name.dir</name>0 u. ]9 r* b6 c+ p0 H5 {, q7 J2 W+ P
<value>/home/hadoop/data/hadoopdata/name</value>
8 p# B1 _4 @5 \ <description>为了保证元数据的安全一般配置多个不同目录</description>6 U5 }2 u! S' n- j& S. y; k
</property>
) I4 Q9 d: _4 P" Q9 r" T. C* L+ d! Z6 I n& Z9 {' X
<property># Q1 F& g1 |6 i x. W4 h. p
<name>dfs.datanode.data.dir</name>1 Z3 X7 I$ C+ J* w# \9 i* f
<value>/home/hadoop/data/hadoopdata/data</value>5 _! P9 c+ r( F u c+ A w" s
<description>datanode 的数据存储目录</description>( Y7 U1 d; p' F/ Q
</property>& A* `3 X* z% e& ]/ ^+ y# s
; m% V3 C, ^1 o8 P+ D5 A& N
<property>
5 ?3 H4 [" P+ A0 C: _ <name>dfs.replication</name>; Q0 v7 P5 V# [9 e4 P
<value>2</value>- d' \5 B5 G/ v
<description>HDFS 的数据块的副本存储个数, 默认是3</description>$ K$ c. j, v6 Q5 V3 [! p
</property> m, J$ f/ G" e/ P8 l6 M
# s9 v% {# |$ b& r" }8 n% G/ t <property>
2 Y7 t/ h8 L& \+ q! {0 ` <name>dfs.secondary.http.address</name>
9 M9 d; p$ f+ E- k- N. v& ? <value>hadoop3:50090</value>
' ^1 @( K5 D2 P. b3 j% I2 z <description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>5 ^7 Y1 c4 h7 \% ?8 h/ S( y1 J
</property>
. @* a% n5 L$ M1 B- g</configuration>( ]! c- p% D: F- j$ X6 n$ K
复制代码
0 T# j4 L$ A5 Z, S3 b
& C2 n/ u. `9 q5 A, _' G, K3 w7 F* x* W! b
D. mapred-site.xml1 j Q i" a; X$ v0 f. p; e+ l
' b( J% d7 |5 y4 G
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
7 ~1 j) Y9 M c ?3 i5 N[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
" ` n0 D) ~( v% e9 D mapreduce.framework.name:指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 。
- X a2 K8 A7 L2 S. f0 X3 x0 Y' ?% T; N! X, B# B$ A" O
复制代码# D1 X( r$ \' r9 \5 H1 n, l7 c
<configuration>! I7 G9 j7 U4 \1 I
<property>! C' E. p! f% X. P
<name>mapreduce.framework.name</name>
$ E1 v) F2 C, r! } <value>yarn</value>
# v; M* U$ h0 R7 t </property>* S t2 Q! u6 n! J% o
</configuration>
+ g) v! ~8 ?" l6 t复制代码1 [% [* S) u2 f) ]4 R+ `
9 x' |. H8 Z9 A W6 Y, R, I0 N5 ^) N
5 h# U4 q0 B% G% X: s" cE. yarn-site.xml
! `5 t; n( v+ o4 n# ?$ @ s0 }$ E4 W% N9 {& l' e
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml
0 _5 D9 y8 i% f% T9 S3 Y; `. {: F yarn.resourcemanager.hostname:yarn总管理器的IPC通讯地址
7 R( B" l5 J3 W% @; s; `; O* A/ O) ?; B# ~5 J: W% X0 s. \/ z% o2 @
yarn.nodemanager.aux-services:) e9 S. w, l$ R) `$ s
6 \" ^ ~8 m; }$ B( o6 D
复制代码$ ^4 E ?# b5 Q
<configuration>
) Z$ d# E1 M" I5 c! }7 H
! t& a! o$ I! X( w, l<!-- Site specific YARN configuration properties -->
' {5 ?4 t0 |0 a! e9 f, p
2 d2 [. Z: x W, e8 U& S <property>
0 Z9 ~6 F; F( S; K9 V" I( v3 J% F( E <name>yarn.resourcemanager.hostname</name>
8 [' {; w2 B# e, b! ?0 O* u <value>hadoop4</value>
2 |/ T6 B& n, \( Q! e3 e0 | </property>! v% X& n: G9 {7 L1 _, L4 ^
3 p/ Y. t2 }5 K) ]$ ]% V# K+ s8 v
<property>
4 c) p+ X8 B# z; w" v- U <name>yarn.nodemanager.aux-services</name>' v- S% V3 y0 y
<value>mapreduce_shuffle</value># ~0 C7 a! B% E1 \1 P
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>1 _ s8 b2 H) C; j0 s
</property> q& Z2 X- b( h! t, f5 B# B' W7 i
9 N; v; I( I0 e3 T$ |
</configuration>5 C3 y$ k, m) U; e* l7 H
复制代码1 e7 J) i; ], ]
* f. R8 K, g9 _5 E2 Q+ F# m5 D' [5 y) j& @; E9 I* p
F. slaves$ {7 b, r# R& R$ F2 W
* G! J8 [ _9 N0 S
[hadoop@hadoop1 hadoop]$ vi slaves
# F9 e/ g) q5 \8 T2 Q( p; Chadoop1$ y W% R) L% c) j
hadoop2
" O) B: i( _& k0 h6 k' m) Ohadoop3 J& ]. A3 n' _4 p4 M
hadoop4
( G, S. h& }# ^6 X( f) J- e% ^1 e3 B& a/ [- @
, \9 `: ~5 {- g
4、把安装包分别分发给其他的节点
/ S& w+ O* B9 ?3 o, D& b重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
5 h( G0 K0 q6 Q0 ?3 {: Y# B重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致
\. { T% E' n$ c重点强调: 每台服务器中的hadoop安装包的目录必须一致, 安装包的配置信息还必须保持一致% R& g( i& Y0 ~4 f
4 V J. Z1 N8 o* @* s0 K
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop2:~/apps/ p7 |. T% f; ], T) n- g' H+ P
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop3:~/apps/
" R* t% w0 e3 W/ e* r. u% ]& n0 O[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop4:~/apps/5 o8 J4 T; y% g! V7 N' s3 M/ S' R
注意:上面的命令等同于下面的命令
7 s0 J) W" t4 G. w& z
0 O# B$ L. @" } N& {2 G[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop@hadoop2:~/apps/2 l V7 p& U% r' C
5、配置Hadoop环境变量) _" B% x& M# F6 g
千万注意:
) j, \' j& ~! E7 H5 L) i' P
" _! e$ f' e k9 l) ?3 f: r1、如果你使用root用户进行安装。 vi /etc/profile 即可 系统变量
; h; P+ V+ j& j6 ? y/ f
/ _2 \* L1 ^: I5 M# |& x! L2、如果你使用普通用户进行安装。 vi ~/.bashrc 用户变量; F8 d8 d- ^8 Y6 v4 S+ m- r0 y1 @
) y5 b& `! N3 {; K& c[hadoop@hadoop1 ~]$ vi .bashrc
9 i! z* Q, |$ _1 I; z$ a: B+ q( gexport HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5$ J, I5 B' J+ G; D4 s4 U9 h2 B) |
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
( t1 c5 y9 G2 \1 [9 G6 ~ E1 X7 E) X6 g. I& t6 Y. d2 N, j
6 u ]- L$ B( R ~1 B
使环境变量生效6 G6 s, E8 ~0 M" L, P# o x7 @
* l4 ?' @ M, ]( [# \0 ^' B
[hadoop@hadoop1 bin]$ source ~/.bashrc 2 Z9 M, e% X1 A" _. c9 i/ `4 o
6、查看hadoop版本+ l8 S2 D/ [6 j+ @. R# r
复制代码+ D2 {9 D+ g' |4 r
[hadoop@hadoop1 bin]$ hadoop version! T& c* _1 X7 }4 u4 E
Hadoop 2.7.5
, k$ n$ A' G j! o" vSubversion Unknown -r Unknown
H& ?7 O+ E5 DCompiled by root on 2017-12-24T05:30Z& t6 e6 E( O0 Q# ~/ O1 z
Compiled with protoc 2.5.0
$ j" o5 w8 o- fFrom source with checksum 9f118f95f47043332d51891e37f736e9
2 r/ G- Y# l8 {. H3 G! NThis command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar
) W+ Y; i; Z; ~ _2 ?, B4 k( Q% o+ j1 o[hadoop@hadoop1 bin]$
1 y7 L* ]4 K! V9 P9 J2 ~5 E8 C复制代码
8 v q0 L7 \6 ?8 g. V8 z6 c# y- K
7 F; Z7 b: U1 V4 }( N& n+ f- r4 m
7、Hadoop初始化
/ |) H9 E# @3 N# d9 }* {1 J+ z. [注意:HDFS初始化只能在主节点上进行5 J* [$ n3 G4 S# C
6 E" m( ?* Z# Z[hadoop@hadoop1 ~]$ hadoop namenode -format- b. |5 S2 b' T2 A! J( d2 g0 d
View Code5 t: V( }. N( u
$ C0 s, | n a7 J. ?5 l: y- r5 a* k, m9 _3 W7 R8 ~' s
8、启动: i8 `2 f) R: Z* N
A. 启动HDFS, b9 Q* l: K. J: T& m5 Z
& Z2 C* o3 g3 Z; [) A9 R: }
注意:不管在集群中的那个节点都可以' T0 M. l) Q' Y( P/ m, Z4 L* a, S
3 I3 y" O$ @. D8 D% ]. ?
复制代码
5 ~; k/ F2 u% D |6 T[hadoop@hadoop1 ~]$ start-dfs.sh
, |6 A$ `# @9 H5 b# a: | ]: OStarting namenodes on [hadoop1] u9 _ A! `1 h
hadoop1: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop1.out7 }% K# x+ i0 ?1 T [% L$ z
hadoop3: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop3.out1 T0 Y6 }& w5 B
hadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out, r- v1 m* n/ c2 u
hadoop4: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop4.out5 e; [" @* [. y( B
hadoop1: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop1.out
E7 b! _$ K; `& X- w2 yStarting secondary namenodes [hadoop3]: ]. u' [* g) A
hadoop3: starting secondarynamenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-secondarynamenode-hadoop3.out
0 v+ [& T! {: f# O- D[hadoop@hadoop1 ~]$
+ h' n! b4 l8 ?6 J, u复制代码
8 _5 C: U" j. d3 Q- @! i8 j
* b }, I1 \6 M) j( i/ k; ^: t$ I8 u3 `
B. 启动YARN
8 ~5 j. Z3 F6 E5 x8 t x) N/ E2 X K3 [! Z s- ?
注意:只能在主节点中进行启动
" o. l6 S* {5 ^) Q( S: j2 V+ h, }
+ d6 A! J7 b! ^# S- u# e4 x& j复制代码
, }( Q( H& L6 z, ?. T& X4 q[hadoop@hadoop4 ~]$ start-yarn.sh
% e8 F* }0 A( p' \9 B. Y* |starting yarn daemons
1 _7 ^6 I& i. G9 Vstarting resourcemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-resourcemanager-hadoop4.out u# e P+ `2 D% S$ u
hadoop2: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop2.out& p2 W3 m8 _2 Y4 z
hadoop3: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop3.out
* `9 {* a8 s3 |: }: F# F6 Rhadoop4: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop4.out6 F; J. B. E& `& a
hadoop1: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop1.out
: F" A m) j8 C4 l V# t- Q[hadoop@hadoop4 ~]$
3 g- d5 ]+ V* ~/ J. l( ~. ?: C复制代码4 K# q; Q5 y, _& \, a4 _
& J2 K( [& ]8 h3 H9 W( a ]4 @3 L4 h! i0 r/ k% `0 }$ i
9、查看4台服务器的进程% o( P& `- K7 Q; C( e! _, `
hadoop1, k. N) |/ z8 H y1 i$ J
8 a+ r: n- G% I6 b3 H
# L& O' T- [: t0 X! k
w& C: `7 W! ^+ A9 vhadoop2
; A+ }4 Y. G* z6 W( J7 T( j# R9 L' S3 P% B
5 I% \, q+ a3 _ x, z$ ?1 v# m" ^, H. v! s) ~
hadoop3: {( r+ _: J! x+ s) E& m
: w m! n( Z7 B9 h4 a1 D3 c& S7 m9 `) o
+ y2 s4 J1 D' O0 L9 A
hadoop4
0 C* l2 w! `' L; N4 a6 l1 h. a9 H! C/ p# F& T2 F. q' f& G
$ ^7 _ C& p3 o2 \6 Q. y
/ }+ [! b- J% z9 o* @5 i10、启动HDFS和YARN的web管理界面
) N$ O: \2 Z: Q6 H% X7 K+ THDFS : http://192.168.123.102:50070
" `* I4 ^. |" ]( B0 JYARN : http://hadoop05:8088 Z9 P4 A: n- z/ u
% D' d" U' M$ L! [: k. [
疑惑: fs.defaultFS = hdfs://hadoop02:9000- Z5 u! a2 x/ ]& ]' I
5 c5 ]! Z* l* M6 ~0 A解答:客户单访问HDFS集群所使用的URL地址0 ?5 D, ]3 H2 ?, J8 V3 b, b
$ ?$ u [- c; C4 |- q1 j+ n! \5 L同时,HDFS提供了一个web管理界面 端口:50070' }$ L! b v( i: y
4 f. h3 O" `2 k2 W0 U
HDFS界面
) G1 f4 O& k' ~2 |4 A" ~6 x8 k A. `
! R( ?% H2 R" h0 E2 w# j. c7 {
点击Datanodes可以查看四个节点
1 V, X v' P2 n1 `7 ?: t
0 f- y8 L$ w) r) n: u8 i# [/ h3 H$ C% N' u
6 E( J2 N w# m3 U
YARN界面
d f# z/ p6 r4 [& y2 ?6 O
0 O6 r! j" j9 `3 |" K" S" y3 a
7 M8 S1 u1 C3 p点击Nodes可以查看节点
, S) K6 |5 k2 v7 C9 x" j' r" T1 O5 T0 H S4 e
) D7 v! q2 e6 D- G* q: F
8 ?# W; k4 x% [" T' P9 Z
回到顶部$ P! o5 k4 y" G! j2 }; N$ Q2 X. S
Hadoop的简单使用5 E% O5 p! O4 E2 y- I
创建文件夹( u) N4 d- }% _; G: ]5 `: \) Y7 k
在HDFS上创建一个文件夹/test/input" S' w( O- n& j# m! J7 R
1 b8 r$ Z% v2 y/ G2 t+ s& h" {7 }; V[hadoop@hadoop1 ~]$ hadoop fs -mkdir -p /test/input
* ^3 I' N4 h* H0 x/ \7 i1 f查看创建的文件夹4 _: M5 W7 ]: K0 r: x
复制代码# k5 U* [. I7 D+ U" }1 z! J- J
[hadoop@hadoop1 ~]$ hadoop fs -ls /
! P9 ^2 P( I+ o% bFound 1 items9 d$ c: p8 \& g8 ]+ U4 @
drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test. i( V# b" `$ {5 |
[hadoop@hadoop1 ~]$ hadoop fs -ls /test8 ^2 \ ~ C7 l3 J p
Found 1 items0 P% k: s) J% x% f
drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test/input0 ^- _! U# M' a5 x, n! R+ \
[hadoop@hadoop1 ~]$
( P" \5 i; O) O7 L, k5 u% W1 w复制代码; u, K7 O) J% }! S2 f% F
5 k$ ]% ^6 p& U; Y9 I3 s6 m
* p5 G2 Y" l, i% i8 Z上传文件
G1 T0 t; a) i: p; z }/ _创建一个文件words.txt7 G% t6 ?6 @3 Z( M( P
( s9 {1 \$ Z @9 z5 J& \$ R# p
[hadoop@hadoop1 ~]$ vi words.txt1 v% o* L- ~# q3 [
hello zhangsan
' u/ }7 C" v+ F$ _, N! g0 ]# vhello lisi, r* D. k6 d( p% ~
hello wangwu
' n' Q6 A, u7 h2 p" K上传到HDFS的/test/input文件夹中- m+ s1 h/ N8 I
$ ?( m' Q1 i# C v
[hadoop@hadoop1 ~]$ hadoop fs -put ~/words.txt /test/input6 [* }( x1 S0 @6 }3 g$ s, V
查看是否上传成功
9 N* H& G0 S7 Q2 m; `5 [& u9 y$ ? `( `8 }( b& U6 E
[hadoop@hadoop1 ~]$ hadoop fs -ls /test/input
" ?: q n9 c0 N& i& w0 H+ H! e9 x& MFound 1 items( _- F0 @6 q3 F; R7 I \
-rw-r--r-- 2 hadoop supergroup 39 2018-03-03 11:37 /test/input/words.txt/ y6 B" f$ N5 S5 O) r7 [0 i4 H
[hadoop@hadoop1 ~]$
+ e5 {0 a3 N8 U
* f: E- C* {8 k" |. U
0 e9 T5 I- u4 |; w' U0 U; X下载文件' i% b g; B5 v
将刚刚上传的文件下载到~/data文件夹中
: e. z2 a; G: W5 f2 w
M9 G' I# \6 d% q. }[hadoop@hadoop1 ~]$ hadoop fs -get /test/input/words.txt ~/data9 F4 l5 S# M6 `) `$ x4 B3 [
查看是否下载成功
* U! G& d# l0 B$ `( a
3 b. E% f: O& Z/ Z: r1 ?[hadoop@hadoop1 ~]$ ls data9 Y0 c# O, ?. u7 s! Z' N9 g
hadoopdata words.txt9 T. p2 D: |3 G W1 n0 |* ~& r
[hadoop@hadoop1 ~]$
# q+ ], Y( h% ]& ]5 p7 x2 [5 g, A
. V) R* N9 h* n: b
- G( _# u8 a' V" h! u2 m: W运行一个mapreduce的例子程序: wordcount
* |. J( `9 G \8 N q6 b[hadoop@hadoop1 ~]$ hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /test/input /test/output( I9 r2 `$ [- ^( @6 @
) [ p. S9 k3 D9 _1 ~2 c
4 `0 U& p! z) M. O3 j$ M在YARN Web界面查看 w4 V9 z% h& }0 Q. F6 w
4 s" R. b q2 ? H1 }+ Z5 K
! z- d) o$ `2 E! j- r) F% a
" C1 w+ Z, Z! b' \6 I& r& e0 z% R( p w9 M% ^: k3 W
) W }' V- p- ?4 n9 }/ r查看结果- C( P. E8 x' Y( P8 |# H$ G: i
9 N' C5 F. d# I5 X& E' D
复制代码
% r3 q5 W) i; \' z! N, c[hadoop@hadoop1 ~]$ hadoop fs -ls /test/output
/ L' `3 T/ l2 a8 P2 X! b3 UFound 2 items4 B, e5 K6 r) B' p+ R/ Y
-rw-r--r-- 2 hadoop supergroup 0 2018-03-03 11:42 /test/output/_SUCCESS6 m' H0 s6 k F% I# v, \! Z9 R
-rw-r--r-- 2 hadoop supergroup 35 2018-03-03 11:42 /test/output/part-r-000002 ~& j2 m' h# P/ Z( C/ v {+ O. i
[hadoop@hadoop1 ~]$ hadoop fs -cat /test/output/part-r-000002 v- ]6 w' A& m9 O' N, R! H# f; J
hello 33 [. T' X& g; ~/ ^8 u3 z! H0 ]
lisi 13 ?% v2 k+ D$ e6 S: E
wangwu 1
6 t5 }" C7 ^3 W6 [0 i' X! Szhangsan 1* u7 [/ c; E) g# z: {- h
[hadoop@hadoop1 ~]$
! ~. O& Z0 d. \/ ?. V复制代码1 Y. O! R8 T" V$ w' N. {/ {
/ h: D7 `5 ~: J" v* F' f1 G
8 g$ {) K8 p: b |
|