搭建过程中配置免密钥登录为了以后方便使用
【提醒】安装Hadoop中会遇到新建文件夹,配置路径等问题,这个不能生搬硬套,要使用自己配置的路径,灵活使用。
Hadoop的部署配置文件在http://blog.csdn.net/beeman_xia/article/details/53391479
当初我练习这个不下十遍,熟能生巧,各位加油!
1新建master和slave两台虚拟机
2测试能否上网(浏览器登录)
3修改主机名,原始名都为localhost,为了方便区分,改名为master和slave
命令:vim /etc/sysconfig/network ,将第二行等号后面改为主机名
4查看ip地址,用命令ifconfig,如果没有则执行 ifconfig eth1 ip 自己设置ip,机子上的是eth0或者是eth1,不知道的话执行 cat /etc/sysconfig/network-scripts/ifcfg-eth1,执行不了就换成eth0. //用Tab键自动补齐也会显示自己的网卡
5修改hosts文件。执行vim /etc/hosts,在后面添加两行,格式:ip master 例如第一行192.168.5.123 master,第二行192.168.5.134 slave,如果有多台主机就继续写, ip是自己设的
6做好上述工作就可以检验是否配置好了,我们用命令ping 来检验,在master端执行ping slave ,在slave端执行ping master ,都能通就ok了。
【注】:前几步在两台机子上都要执行,不然怎么Ping
接下来我们开始安装JDK也是两台机子都要做的
1将JDK解压,放到/usr/java目录下,我用的是JDK1.7版本的,解压的操作是 tar -zxvf jdk***
【注】,在普通用户下会遇到不能建立目录的情况,su到root用户下,然后在/usr下建立Java/目录,再修改目录的权限:chown xia:xia /usr/java,把属主和属组改成普通用户。
2配置环境变量。在家目录(xia@master~)下执行vim .bash_profile ,在后面添加两行,第一行:export JAVA_HOME=/usr/java/jdk**.第二行:export PATH=
J
A
V
A
_
H
O
M
E
/
b
i
n
:
JAVA\_HOME/bin:
JAVA_HOME/bin:PATH,保存退出,执行source .bash_profile,然后测试JDK是否安装成功,执行Java -version,安装成功会有提示
接下来是免密钥登录
1在master端产生密钥,执行ssh-keygen -t rsa,然后一路回车!如果装过一次没成功有一步要输入yes。
2把密钥写进authorized_keys,执行cat .ssh/id_rsa.pub >>.ssh/authorized_keys
3修改authorized_keys的权限,执行chmod 600 .ssh/authorized_keys
4把authorized 复制到slave节点,执行scp .ssh/authorized_keys xia@slave:~/ 如果有提示输入yes/no,输入yes
6把复制过来的文件移动到.ssh目录下。执行mv quthorized_keys ~/.ssh/
7修改quthorized_keys文件的权限(第一次是在master中修改的),执行chmod 600 authorized_keys
8验证面密钥登录:直接在master执行 ssh slave。
可能还不会生效,执行ssh-add命令。
然后进行Hadoop配置部署,一共要配置7个文件
1在普通用户下,进入安装包的路径(建议放在用户目录下)
2解压Hadoop安装包:tar -zxvf ~/hadoop-2.5.2**
3进入解压后的目录 cd ~/hadoop-2.5.2
4执行ls -l 命令,看到/bin,/etc/…说明解压成功,进入配置文件目录: cd hadoop-2.5.2/etc/hadoop ,hadoop的配置文件就在这里面
5配置 hadoop-env.sh环境,找到export JAVA_HOME=
J
A
V
A
_
H
O
M
E
;
把
j
d
k
的路径写在这里,我的是
e
x
p
o
r
t
J
A
V
A
_
H
O
M
E
=
/
u
s
r
/
j
a
v
a
/
j
d
k
1.7.0
_
71
/
6
千万不要写错,然后保存退出
7
配置
y
a
r
n
−
e
n
v
.
s
h
环境,和上一步一样,只要配置
j
d
k
路径就行了,这里注释了一行,找到后去掉注释然后修改路径,保存退出
8
配置核心组件
c
o
r
e
−
s
i
t
e
.
x
m
l
,
h
d
f
s
−
s
i
t
e
.
x
m
l
,
y
a
r
n
−
s
i
t
e
.
x
m
l
,
m
a
p
r
e
d
−
s
i
t
e
.
x
m
l
。
/
/
文件放到另外的文章中,开头有地址
9
配置
s
l
a
v
e
s
文件:在
m
a
s
t
e
r
中执行:
v
i
m
h
a
d
o
o
p
−
2.5.2
/
e
t
c
/
h
a
d
o
o
p
/
s
l
a
v
e
s
,
用
s
l
a
v
e
代替里面的内容即可
10
在
s
l
a
v
e
也要配置这些,我们在这里直接远程复制,执行
s
c
p
−
r
h
a
d
o
o
p
−
2.5.2
x
i
a
@
s
l
a
v
e
:
/
,
之前设置了免密钥登录,直接复制配置
h
a
d
o
o
p
启动系统环境变量
1
在
m
a
s
t
e
r
中,执行
v
i
m
.
b
a
s
h
_
p
r
o
f
i
l
e
,
这个文件也是配置
j
d
k
的文件
2
在后面加上两行,第一行:
e
x
p
o
r
t
H
A
D
O
O
P
_
H
O
M
E
=
/
h
o
m
e
/
z
k
p
k
/
h
a
d
o
o
p
−
2.5.2
(
要写自己
H
a
d
o
o
p
的路径
)
第二行:
e
x
p
o
r
t
P
A
T
H
=
{JAVA\_HOME}; 把jdk的路径写在这里,我的是export JAVA\_HOME=/usr/java/jdk1.7.0\_71/ 6千万不要写错,然后保存退出 7配置 yarn-env.sh环境,和上一步一样,只要配置jdk路径就行了,这里注释了一行,找到后去掉注释然后修改路径,保存退出 8配置核心组件 core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml。 //文件放到另外的文章中,开头有地址 9配置slaves文件:在master中执行: vim hadoop-2.5.2/etc/hadoop/slaves,用slave代替里面的内容即可 10在slave也要配置这些,我们在这里直接远程复制,执行scp -r hadoop-2.5.2 xia@slave:~/,之前设置了免密钥登录,直接复制 配置hadoop启动系统环境变量 1在master中,执行 vim .bash\_profile,这个文件也是配置jdk的文件 2在后面加上两行,第一行:export HADOOP\_HOME=/home/zkpk/hadoop-2.5.2 (要写自己Hadoop的路径)第二行:export PATH=
JAVA_HOME;把jdk的路径写在这里,我的是exportJAVA_HOME=/usr/java/jdk1.7.0_71/6千万不要写错,然后保存退出7配置yarn−env.sh环境,和上一步一样,只要配置jdk路径就行了,这里注释了一行,找到后去掉注释然后修改路径,保存退出8配置核心组件core−site.xml,hdfs−site.xml,yarn−site.xml,mapred−site.xml。//文件放到另外的文章中,开头有地址9配置slaves文件:在master中执行:vimhadoop−2.5.2/etc/hadoop/slaves,用slave代替里面的内容即可10在slave也要配置这些,我们在这里直接远程复制,执行scp−rhadoop−2.5.2xia@slave: /,之前设置了免密钥登录,直接复制配置hadoop启动系统环境变量1在master中,执行vim.bash_profile,这个文件也是配置jdk的文件2在后面加上两行,第一行:exportHADOOP_HOME=/home/zkpk/hadoop−2.5.2(要写自己Hadoop的路径)第二行:exportPATH=HADOOP_HOME/bin:
H
A
D
O
O
P
_
H
O
M
E
/
s
h
i
n
:
HADOOP\_HOME/shin:
HADOOP_HOME/shin:PATH
3执行 source.bash_profile,使文件生效
4 在用户目录下创建数据目录:mkdir hadoopdata //配置文件里面有配置目录名称,我设置的是hadoopdata
5格式化文件系统,这个操作在master上执行:hdfs namenode -format
6启动Hadoop 执行start-all.sh(停止是stop-all.sh)
7启动成功输入jps,master会显示4个进程,slave有3个进程
8启动虚拟机的浏览器,输入http://master:50070/检查namenode和datanode是否正常
输入http://master:18088/检查yarn是否成功
转载于:https://www.cnblogs.com/beeman/p/7776494.html