找回密码
 注册
查看: 3830|回复: 0

linux系统安装hadoop-2.0.0-alpha(双namenode federation)安装过程整理

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2019-10-28 11:07:13 | 显示全部楼层 |阅读模式
一,安装环境与配置前准备工作0 n3 s$ [1 a9 g$ G# w( S
硬件:4个虚拟机分别为master1:192.168.110.20,master2:192.168.110.21,slave1:192.168.110.22,slave2:192.168.110.23
3 ?: G# l+ U4 R# }- ?系统:红帽 CentOS6.5! [! R2 o  Y3 C# @& \% x2 c, i% l
HADOOP版本:最新版本hadoop-2.0.0-alpha  安装包为hadoop-2.0.0-alpha.tar.gz$ J* \- x" T! c3 @
下载官网地址:http://apache.etoak.com/hadoop/common/hadoop-2.0.0-alpha/
9 f) m) \5 u9 oJDK版本:jdk-6u6-linux-i586.bin(最低要求为JDK 1.6)' _. w9 r, V2 `( W" y- K7 f
虚拟机的安装和LINUX的安装不介绍,GOOGLE一大堆
/ `2 X& X+ k) A. ]% C: L; G' ]创建相关目录:mkdir /usr/hadoop(hadoop安装目录)mkdir /usr/java(JDK安装目录)二,安装JDK(所有节点都一样)  R) Z! U5 W* \" |; G& Q) T) P
1,将下载好的jdk-6u6-linux-i586.bin通过SSH上传到/usr/java下; s9 y9 s( n; h( l0 \
2,进入JDK安装目录cd /usr/java 并且执行chmod +x jdk-6u6-linux-i586.bin
0 n' a/ o) F: M7 P& i! @4 ~3,执行./jdk-6u6-linux-i586.bin(一路回车,遇到yes/no全部yes,最后会done,安装成功)
# e! V! B7 ?1 }& ?$ S1 d4,配置环境变量,执行cd /etc命令后执行vi profile,在行末尾添加
8 f: G+ t: f$ A+ e, M1 a1 ~export JAVA_HOME=/usr/java/jdk1.6.0_274 M# k  O# @6 i, N! ]+ z6 _
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib/dt.jar5 {4 ?% d) Z2 k; P- b4 c! H& J2 z
export PATH=$JAVA_HOME/bin:$PATH5,执行chmod +x profile将其变成可执行文件5 G0 Z  v# l+ Q/ S; q2 q# _
6,执行source profile使其配置立即生效
0 [0 r9 c; K8 w* _5 w9 q7,执行java -version查看是否安装成功三,修改主机名,所有节点均一样配置
- |' ^+ b0 [2 R* x1,连接到主节点192.168.110.20,修改network,执行cd /etc/sysconfig命令后执行vi network,修改HOSTNAME=master1
" o; \! H; b+ z2,修改hosts文件,执行cd /etc命令后执行vi hosts,在行末尾添加:  g1 G6 ~2 _4 c/ b) @' B0 M7 D
192.168.110.20   master1
  U+ v% V4 S+ _1 b/ l" z$ T  [192.168.110.21   master2
7 ?* L4 _2 F2 L' N' i( c9 c192.168.110.22   slave1* e9 w5 C) U& F4 ~
192.168.110.23   slave2
* H$ W: m9 d" _3,执行hostname master1
+ V: u) t8 B* h/ G* D* e* R4,执行exit后重新连接可看到主机名以修改OK四,配置SSH无密码登陆3 N- _. ^) @( W
1,SSH无密码原理简介:首先在master上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的slave上。
) e! V; @9 |1 b( G+ H* O) h然后当master通过SSH连接slave时,slave就会生成一个随机数并用master的公钥对随机数进行加密,并发送给master。
* I) T  c" ]! t最后master收到加密数之后再用私钥解密,并将解密数回传给slave,slave确认解密数无误之后就允许master不输入密码进行连接了8 O/ d' o7 ?. |# K, W
2,具体步骤:$ \8 m1 ?% R  H2 E" M
1、执行命令ssh-keygen -t rsa之后一路回车,查看刚生成的无密码钥对:cd .ssh 后执行ll  x+ a5 T$ y$ M- x, U' p" a6 o
2、把id_rsa.pub追加到授权的key里面去。执行命令cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
2 d! @( l- w/ E, s% m3、修改权限:执行chmod 600 ~/.ssh/authorized_keys
- D$ [9 l" T6 C7 N4、确保cat /etc/ssh/sshd_config 中存在如下内容9 G3 F6 B2 a3 R) Q, O* [
RSAAuthentication yes8 a; y! |2 \1 x. [
PubkeyAuthentication yes9 E1 o2 ^8 ]4 x9 W' X) q  x
AuthorizedKeysFile      .ssh/authorized_keys7 `) N$ c4 B" h$ N* r. Z% t
如需修改,则在修改后执行重启SSH服务命令使其生效:service sshd restart) z$ m' P, j' F$ _5 J$ ]3 I+ S$ {8 t
5、将公钥复制到所有的slave机器上:scp ~/.ssh/id_rsa.pub 192.168.110.22:~/    然后输入yes,最后输入slave机器的密码
  n7 q6 Q' I- ]3 D! v  h: V6、在slave机器上创建.ssh文件夹:mkdir ~/.ssh 然后执行chmod 700 ~/.ssh(若文件夹以存在则不需要创建)
# D: D' z4 E3 b4 R4 U+ {7、追加到授权文件authorized_keys执行命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 然后执行chmod 600 ~/.ssh/authorized_keys0 G4 _/ }0 Z* t# |. m
8、重复第4步
0 R* y; r3 S2 u. B# I9、验证命令:在master机器上执行 ssh 192.168.110.22发现主机名由master1变成slave1即成功,最后删除id_rsa.pub文件:rm -r id_rsa.pub0 f- n/ p5 {" n7 ^+ J& S$ I% Q4 o
3,按照以上步骤分别配置master1,master2,slave1,slave2,要求每个master与每个slave之间都可以无密码登录五,安装HADOOP,所有节点都一样+ J* C' m5 X% Q
1,将hadoop-2.0.0-alpha.tar.gz上传到HADOOP的安装目录/usr/hadoop中
. \# g) Z8 @$ o  J2,解压安装包:tar -zxvf hadoop-2.0.0-alpha.tar.gz
6 `5 W3 z8 I$ L$ g. D3,创建tmp文件夹:mkdir /usr/hadoop/tmp& s; d" k3 o( ]4 K: J
4,配置环境变量:vi /etc/profile
$ O& k  [" O7 @( M4 ]0 gexport HADOOP_DEV_HOME=/usr/hadoop/hadoop-2.0.0-alpha0 k+ h7 x( ~2 g! ~+ R
export PATH=$PATH:$HADOOP_DEV_HOME/bin
# J. a, u6 Z3 B) Qexport PATH=$PATH:$HADOOP_DEV_HOME/sbin3 ^9 P/ o4 e% q' O2 U& e- d
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}% K0 R5 L& t7 y+ R7 L
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}. w" s7 `$ |2 e  L( b# l
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}. ]- M+ H0 C7 i4 g* q  s! A2 s& a
export YARN_HOME=${HADOOP_DEV_HOME}2 h3 h* C* @2 ^2 Y0 d6 L
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop. P2 a7 j: u$ A( `1 T9 R, Q6 X2 P
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop& t- O! o7 s9 M' L; `* s
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop8 w. `& L3 ?, g% a2 |  `7 z4 l+ X
5,配置HADOOP
! x$ p) J: {4 a" }% h配置文件位于/usr/hadoop/hadoop-2.0.0-alpha/etc/hadoop下
: ~6 ], i, m2 i% u4 t' B* L1、创建并配置hadoop-env.sh
  q. _0 J1 w: g+ ^5 N+ Ovi /usr/hadoop/hadoop-2.0.0-alpha/etc/hadoop/hadoop-env.sh 在末尾添加export JAVA_HOME=/usr/java/jdk1.6.0_27- w. u8 L( C! h# |% H. ]) c
2、配置core-site.xml文件
$ r- [. [# S' \: h; U4 s5 K<property>$ D: p3 v* S: F7 t6 x/ W. d
   <name>hadoop.tmp.dir</name>* ~- |" D: d5 z6 G9 Y) _6 i
   <value>/usr/hadoop/tmp</value>
& K' P$ {8 h  R" l</property>
: Z6 Z! ^4 Z% c3、创建并配置slaves:vi slaves 并添加以下内容# z8 _5 U1 f2 J" {9 t' `; i% f
192.168.110.22- }6 n) i8 _; l9 y7 f7 X
192.168.110.23
) A6 u: R) x" }6 ^4、配置hdfs-site.xml
/ y; R2 e8 V2 t  ~- K+ T& r<configuration>" o. c: e$ P9 x0 Q
<property>
' C5 G' `, O( V: r   <name>dfs.namenode.name.dir</name>- N1 B! b: |1 i: S/ h
   <value>file:/usr/hadoop/hdfs/name</value>
3 a! I: b* P" i   <final>true</final>5 o0 V- Z+ s) D1 K* S4 S
</property><property>
: D$ X0 m8 P; G. n2 j9 p   <name>dfs.federation.nameservice.id</name>+ }9 J, f, H& h3 ^# {/ q/ W
   <value>ns1</value>
  u7 {! r* w6 O, m5 T8 u</property><property>
/ F, @! N2 U- w2 \: p- Z+ n) U, Z   <name>dfs.namenode.backup.address.ns1</name>
. n0 B& N6 C# r6 R+ {) D1 D" Q   <value>192.168.110.23:50100</value>
1 y9 I2 S3 I' w) I</property><property>
3 Q5 p- S8 o" B9 {3 p3 b   <name>dfs.namenode.backup.http-address.ns1</name>1 {4 G$ G8 y: ]! M/ H
   <value>192.168.110.23:50105</value>+ F" H1 P: {' o
</property><property>
( Y( N" o3 n6 r' \; {" H6 ?   <name>dfs.federation.nameservices</name>0 z9 a/ V( g" _& ]
   <value>ns1,ns2</value>! }! r( G5 \# f( b( b8 n( N
</property><property>- T3 f' Z4 g7 S+ E+ o' O
   <name>dfs.namenode.rpc-address.ns1</name>9 n/ o( E! ]( _# T$ E6 H
   <value>192.168.110.20:9000</value>( V4 F  E7 ?5 \- g6 P2 @
</property><property>9 W( A( n1 c$ H0 g( M6 M
   <name>dfs.namenode.rpc-address.ns2</name>+ h8 d: v& i0 c* k( y0 ~
   <value>192.168.110.21:9000</value>
5 }& I* }7 q& D9 \) j</property><property>
5 p8 V$ `4 ~9 v   <name>dfs.namenode.http-address.ns1</name>
4 ~* k' h* H) ^* W   <value>192.168.110.20:23001</value>
0 w: N. K: }0 u+ Z</property><property>% _1 [$ _# r+ W' C
   <name>dfs.namenode.http-address.ns2</name>
* ]+ D0 @& G2 I* v   <value>192.168.110.21:13001</value>
8 U, R' U+ F; k</property><property>
; ], s8 k, s6 `% @5 m   <name>dfs.dataname.data.dir</name>
9 q$ {9 ^' C$ r# Y   <value>file:/usr/hadoop/hdfs/data</value>" G0 Y! w/ m/ o- \4 o
   <final>true</final>6 W) f" ^/ z* ~& n8 G- ?
</property><property>: c+ K; i: T6 G7 j5 \
   <name>dfs.namenode.secondary.http-address.ns1</name>
5 p  h) u. m4 U/ z* K# O8 c   <value>192.168.110.20:23002</value>
- n7 r+ s% ^& h4 Z</property><property>
6 u: |% M+ B! ^9 V   <name>dfs.namenode.secondary.http-address.ns2</name>
2 g" I! P- v3 \  M7 |) X   <value>192.168.110.21:23002</value>
2 g6 C0 o3 J. e2 T9 J</property><property>
/ m9 P% O, h; U2 `* d& s# m% T   <name>dfs.namenode.secondary.http-address.ns1</name>
$ f6 |/ O" \- I; B! w! [' `   <value>192.168.110.20:23003</value>8 W+ d9 j+ T1 Z0 a, d4 e
</property><property>0 ?7 z3 Z/ b% B, N  T: Z' h9 Z
   <name>dfs.namenode.secondary.http-address.ns2</name>
& r/ D1 Z; l' e. x   <value>192.168.110.21:23003</value>3 v3 i* w, t) ~; v2 S
</property></configuration>5、配置yarn-site.xml
3 W4 P4 C$ Z* t4 g<configuration><!-- Site specific YARN configuration properties -->  |1 T! n& a( }) X' b7 x
<property>
# Z4 w( O3 }9 C   <name>yarn.resourcemanager.address</name>
4 z- H& B- R" `9 d5 Q   <value>192.168.110.20:18040</value>) I, t! r  Z$ s5 a
</property><property>6 U) m0 Y8 g* C( u4 p1 }
   <name>yarn.resourcemanager.scheduler.address</name>
, @; ?, m3 y. [% y   <value>192.168.110.20:18030</value>
; n: z! Q6 s' q7 Y0 Z7 k. M</property><property>
5 n/ e/ a3 T/ }  _   <name>yarn.resourcemanager.webapp.address</name>* u% J6 p( ~! D' a( E/ I$ d  ]
   <value>192.168.110.20:18088</value>
# v+ O  M! B5 T& f0 e</property><property>3 V2 C5 `% D2 X2 t
   <name>yarn.resourcemanager.resource-tracker.address</name>; X7 x- c! B% I$ E# a9 Q+ j
   <value>192.168.110.20:18025</value>
8 K: K- G2 x, A</property><property>1 S% K5 ]2 c  R2 Z
   <name>yarn.resourcemanager.admin.address</name>
6 P: v) n% g9 [   <value>192.168.110.20:18141</value>- D/ C* [' r6 S, p$ Q! T
</property><property>
3 g- v7 {1 _& l% |  [9 O   <name>yarn.nodemanager.aux-services</name>
# m; y$ F8 n5 G- s5 B& K0 i   <value>mapreduce.shuffle</value>+ F8 i: [; O6 y; U4 F; m% O& O
</property>4 Z% o2 M- V3 W! W  M3 \4 d- L
</configuration>六,启动HADOOP集群,并测试WORDCOUNT& l% e& B$ j8 U7 G
1,格式化 namenode:分别在两个master上执行:hadoop namenode -format -clusterid eric- i+ g, D" @! P* k
2,启动HADOOP:在master1执行start-all.sh或先执行start-dfs.sh再执行start-yarn.sh
& j( n* P6 `% w6 k% s% o6 l, x$ A3,分别在各个节点上执行jps命令,显示结果如下即成功启动:+ c2 Z3 S- @' P, p! C3 _
[root@master1 hadoop]# jps
$ D9 Z- u3 q2 ^6 g* Y1956 Bootstrap
( M7 q, h: U' B* [( b" n4183 Jps
  p5 d6 J' y1 S' t" Z3938 ResourceManager
$ s+ B5 {5 R  H+ X: x/ ]3845 SecondaryNameNode
+ ^- x4 y7 J" N3652 NameNode( S: m! I# A) J
[root@master2 ~]# jps) m" x, Y0 ]% A+ O
3778 Jps, s# K5 M* N- d. N
1981 Bootstrap/ K$ D) n1 K. I1 t+ x# Q
3736 SecondaryNameNode
" q. i& N% ?6 j3633 NameNode/ g1 u  ]2 \0 l; N5 D
[root@slave1 ~]# jps
) r7 Z; e7 S" ^, z1 i: ?3766 Jps: D" a& R: V0 U5 N/ J
3675 NodeManager/ I+ w, a, q5 W6 \/ F  ^1 c# w
3551 DataNode( i* Z4 Y. N" A2 F$ T* V( _# W
[root@slave1 ~]# jps
3 S* c0 J2 g- M9 Y6 \. m: G, w3675 NodeManager1 _0 c) o2 [' G0 i1 H. [
3775 Jps
) m% A% e/ X4 f  T# o) X3551 DataNode
' {- x6 ^9 v" d0 x7 X$ {4,在master1上,创建输入目录:hadoop fs -mkdir hdfs://192.168.110.20:9000/input
4 u5 Q3 b: f8 b/ H5 D7 s5,将/usr/hadoop/hadoop-2.0.0-alpha/目录下的所有txt文件复制到hdfs分布式文件系统的目录里,执行以下命令- l! a3 U. J' p9 B! @- a
hadoop fs -put /usr/hadoop/hadoop-2.0.0-alpha/*.txt hdfs://192.168.110.20:9000/input
" R/ e: b. a0 f6,在master1上,执行HADOOP自带的例子,wordcount包,命令如下:# A: g5 }1 k2 Q3 ^' V6 C+ x% l
cd /usr/hadoop/hadoop-2.0.0-alpha/share/hadoop/mapreduce
  Z+ L: d) a: m+ l' ihadoop jar hadoop-mapreduce-examples-2.0.0-alpha.jar wordcount hdfs://192.168.110.20:9000/input hdfs://192.168.110.20:9000/output4 A$ t: M% j! O. t# y
7,在master1上,查看结果命令如下:  e: |0 X7 z2 o7 K' U/ ?
[root@master1 hadoop]# hadoop fs -ls hdfs://192.168.110.20:9000/output
( [9 d' Q2 R6 @9 i3 y4 ]- tFound 2 items
) u3 t! B4 G, H-rw-r--r--   2 root supergroup          0 2012-06-29 22:59 hdfs://192.168.110.20:9000/output/_SUCCESS
  ~, R: r6 a* u! R, W-rw-r--r--   2 root supergroup       8739 2012-06-29 22:59 hdfs://192.168.110.20:9000/output/part-r-00000
9 f2 h, |8 ?: {2 D  s; g[root@master1 hadoop]# hadoop fs -ls hdfs://192.168.110.20:9000/input
# n* X. a$ l& c# j& {3 G. b8 qFound 3 items  n9 X! Q" E1 L' K
-rw-r--r--   2 root supergroup      15164 2012-06-29 22:55 hdfs://192.168.110.20:9000/input/LICENSE.txt
5 _* O) r& o- t/ Y' l% U-rw-r--r--   2 root supergroup        101 2012-06-29 22:55 hdfs://192.168.110.20:9000/input/NOTICE.txt" s* K4 w- S. y% x/ u
-rw-r--r--   2 root supergroup       1366 2012-06-29 22:55 hdfs://192.168.110.20:9000/input/README.txt
6 g1 z1 u( t: K: E) Z: H& Q[root@master1 hadoop]# hadoop fs -cat  hdfs://192.168.110.20:9000/output/part-r-00000即可看到每个单词的数量
  G6 {, j4 }. B) C8,可以通过IE访问:http://192.168.110.20:23001/dfshealth.jsp
- J0 G7 u) S  K0 t# l到此整个过程就结束了………
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:59 , Processed in 0.017747 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表