当前位置: 游戏平台 > 互联网科技 > 正文

Hadoop 布满式集群搭建初入门

时间:2019-11-05 23:44来源:互联网科技
最近在搞Hadoop,感觉有这个必要把一些琐碎的心得分享,而且正好国庆假期使时间上有了可能。首先感谢下面两篇文章给出的指导,本文是两者技术路线在CentOS6.5 64位 版本下对Hadoop 2

最近在搞Hadoop,感觉有这个必要把一些琐碎的心得分享,而且正好国庆假期使时间上有了可能。首先感谢下面两篇文章给出的指导,本文是两者技术路线在CentOS 6.5 64位 版本下对Hadoop 2.5.1伪分布式环境的一个实践。

Hadoop 分布式集群搭建初入门

Hadoop-2.6.0伪分布式单机安装傻瓜教程

  • CentOS 6.5集群安装64位Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-06/102665.htm
  • Hadoop集群(第5期)_Hadoop安装配置 http://www.linuxidc.com/Linux/2012-12/76694p11.htm

一、配置环境
1.设置主机名和对应的地址映射
[root@master ~]# cat /etc/hosts
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.230.130 master
192.168.230.131 slave1
192.168.230.100 slave2
#分别对三台设备配置hostname和hosts

一、安装前的准备,jdk-8u66-linux-x64.tar.gz(建分布式的时候会需要)、hadoop-2.6.0-x64.tar.gz

至于为什么写这篇文章,主要是Hadoop 2.3之后从框架上做出了质变,所以配置与运行方式发生了很多改变。

2.在三个节点上分别新建hadoop用户
[root@master ~]# tail -1 /etc/passwd
hadoop:x:1001:1001::/home/hadoop:/bin/bash

二、进入root用户,ifconfig 查看本机ip,牢记本机ip地址;安装伪分布式的时候可以直接输入yum -y install java* 即可自动下载安装并且配置好环境变量,

概要与介绍上文都有介绍,这里不再赘述,直奔主题:

二、为hadoop配置所有节点之间的ssh免密登陆

java -version 查看java是否配置成功;

总体的流程如下:
    1、实现ssh无密码验证配置
    2、安装jdk,并配好环境变量
    3、安装与配置Hadoop
    4、格式化与启动
    5、验证是否启动
下面开始:

1.生成密钥
[hadoop@master ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
/home/hadoop/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
1c:16:61:04:4f:76:93:cd:da:9a:08:04:15:58:7d:96 hadoop@master
The key's randomart image is:
+--[ RSA 2048]----+
|    .===B.o=    |
|    . .=.oE.o    |
|    .  +o o    |
|      .o .. .    |
|      .S. o    |
|        . o      |
|                |
|                |
|                |
+-----------------+
[hadoop@master ~]$

但是在最后启动hadoop的时候一定不能忘记修改JAVA_HOME 的具体地址,不然namenode会起不来,由于是直接yum安装的java,所以配置java地址的时候就使JAVA_HOME=/usr(我的用户名是hadoop,按说应该是JAVA_HOME=/hadoop,不知道为什么/usr也能启动namenode和secondarynamenode);

一.  SSH无密码验证配置
    Hadoop 需要使用SSH 协议,namenode 使用SSH 协议启动 namenode 和datanode 进程,伪分布式模式数据节点和名称节点均是本身,必须配置 SSH localhost无密码验证。
以下用root用户登录仅为了方便起见。登录后,执行命令:ssh-keygen -t rsa

2.发送公钥

三、在root用户下输入hostname,查看主机名;hostname master 把主机名改为master,再hostname看是否修改成功,这种修改方式是临时修改主机名,要想永久修改命令为vi /etc/sysconfig/network(我在配伪分布式的时候两个命令都输了,把主机名永久修改为master,但是最后ssh互信就是不成功,然后输入 vi /etc/hosts 在后面尝试加入127.0.0.1 master、或者192.168.197.134  master 都互信不了,就报错是主机名有问题,最后没办法有把主机名改回localhost 才互信成功...不明白为啥建分布式的时候也是改为master,然后在vi /etc/hosts 后加入slave01 和ip的时候能互信成功,而且有的时候是用hostname改的,但下次启动虚拟机的时候仍然有效...)

[root@master ~]# ssh-keygen -t  rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  & 按回车默认路径 &
Created directory '/root/.ssh'.  &创建/root/.ssh目录&
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1
The authenticity of host 'slave1 (192.168.230.131)' can't be established.
ECDSA key fingerprint is 32:1a:8a:37:f8:11:bc:cc:ec:35:e6:37:c2:b8:e1:45.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
hadoop@slave1's password: 
 
Number of key(s) added: 1
 
Now try logging into the machine, with:  "ssh 'hadoop@slave1'"
and check to make sure that only the key(s) you wanted were added.
 
[hadoop@master ~]$

四、ssh互信  hadoop用户权限下

通过以上命令将在/root/.ssh/ 目录下生成id_rsa私钥和id_rsa.pub公钥。进入/root/.ssh目录在namenode节点下做如下配置:

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2
[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master
#slave1和slave2对其他节点略

1.在每个节点上建立密钥:ssh-keygen -t rsa

[root@master .ssh]# cat id_rsa.pub > authorized_keys
将id_rsa.pub写入authorized_keys,配置完毕,可通过ssh 本机IP 测试是否需要密码登录:ssh localhost

3.验证登陆

2.把id_rsa.pub追加授权到keys里面去:

二. 环境搭建
搭建测试环境所需的软件包括:

[hadoop@master ~]$ ssh hadoop@slave1
Last login: Wed Jul 26 01:11:22 2017 from master
[hadoop@slave1 ~]$ exit
logout
Connection to slave1 closed.
[hadoop@master ~]$ ssh hadoop@slave2
Last login: Wed Jul 26 13:12:00 2017 from master
[hadoop@slave2 ~]$ exit
logout
Connection to slave2 closed.
[hadoop@master ~]$

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 1. JDK 1.8.2,安装文件 jdk-8u20-linux-x64.rpm ()

三、配置JAVA
1.使用xftp将hadoop-2.7.3.tar.gz和jdk-8u131-linux-x64.tar.gz上传至master
[hadoop@master ~]$ ls
hadoop-2.7.3.tar.gz  jdk-8u131-linux-x64.tar.gz

修改权限   chmod 755 ~/.ssh/authorized_keys

      执行rpm -i jdk-8u20-linux-x64.rpm安装JDK

2.使用root用户解压并移动到/usr/local 下
[hadoop@master ~]$ exit
exit
[root@master ~]# cd /home/hadoop/
[root@master hadoop]# ls
hadoop-2.7.3.tar.gz  jdk-8u131-linux-x64.tar.gz
[root@master hadoop]# tar -zxf jdk-8u131-linux-x64.tar.gz 
[root@master hadoop]# ls
hadoop-2.7.3.tar.gz  jdk1.8.0_131  jdk-8u131-linux-x64.tar.gz
[root@master hadoop]# mv jdk1.8.0_131 /usr/local/
[root@master hadoop]# cd /usr/local/
[root@master local]# ls
bin  etc  games  include  jdk1.8.0_131  lib  lib64  libexec  sbin  share  src
[root@master local]#

3.ssh 主机名测试   :ssh localhost   退出exit

      然后设置JAVA_HOME等环境变量:vim /etc/profile,在其末尾增加一段:

3.配置java环境变量(这里使用的是全局变量)
[root@master ~]# vim /etc/profile    #在文件末尾添加如下java环境变量
[root@master ~]# tail -5 /etc/profile
 
export JAVA_HOME=/usr/local/jdk1.8.0_131    #注意jdk版本
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
[root@master ~]#
[root@master ~]# source /etc/profile    #使配置生效

五、在hadoop用户下新建hadoop文件夹 

    #set java home
    export JAVA_HOME=/usr/java/latest
    export JRE_HOME=/usr/java/latest/jre
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

4.测试master上的java是否配置完成

  1. su hadoop

    这里给出的目录/usr/java/latest是CentOS 6.5下用rpm安装JDK自动生成的,如果是其他安装办法,如手动安装,则制定实际安装的目录即可。

[root@master ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@master ~]#

2.mkdir hadoop  cd hadoop 

    在vim编辑器增加以上内容后保存退出(:wq),并执行以下命令使配置生效
    chmod +x  /etc/profile #增加执行权限
    source  /etc/profile #使其生效
    配置完毕后,在命令行中输入java -version与echo $JAVA_HOME,根据提示信息可知是否设置成功。

5.使用scp将jdk拷贝到slave1和slave2
12 [root@master ~]# scp -r /usr/local/jdk1.8.0_131/ root@slave1:/usr/local/
[root@master ~]# scp -r /usr/local/jdk1.8.0_131/ root@slave2:/usr/local/

3.rz 导入hadoop-2.6.0压缩包。tar -xzf 解压缩,解完删除压缩包(rm -r)

    然后vim hadoop/etc/hadoop/hadoop-env.sh 与 vim hadoop/etc/hadoop/yarn-env.sh来配置两个文件里的JAVA_HOME,后者是新版本Hadoop特有的。

6.配置slave1和slave2上的环境变量(同步骤3),配置完后使用java -version验证一下

4.切换到root用户 修改hadoop环境变量,因为java 是yum安装,因此只需要配置hadoop就行

2.Hadoop 2.5.1,安装文件 hadoop-2.5.1.tar.gz ()

四、配置hadoop环境

vi /etc/profile
在done的后面加入
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

编辑:互联网科技 本文来源:Hadoop 布满式集群搭建初入门

关键词:

  • 上一篇:没有了
  • 下一篇:没有了