hadoop 2.7.3在ubantu Linux下的集群(3台机)

注:本文的主要目的是为了记录自己的学习过程,方便与大家做交流。转载请注明出处

http://blog.csdn.net/kokjuis/article/details/59523427

最近在搭建文件系统,用的是hadoop2.7.3,在Linux下做了集群。在这里做个记录,方便自己以后查看,同时希望对大家有一些帮助。

先介绍一下我目前使用的集群环境。我这里用的是虚拟环境。先介绍下硬件条件和系统环境吧。

CPU:Inter Core I7-6700    3.4Ghz  四核心八线程

内存 :16G

硬盘 :128G ssd+1T hdd

系统 :win10 

总的来说,我现在这台机子的性能是相当不错的。运行3个虚拟机还是很轻松的。

一、安装hadoop之前准备的条件:

1、安装虚拟机环境

因为我这里是用虚拟机模拟集群环境的,所以要安装个虚拟机。我这里用的是 Oracle VM VirtualBox。你也可以用Vmware WorkStation,我用VirtualBox相对体积小巧,更加简易一点,Vmware WorkStation功能丰富点,不过都没有问题的,都能满足需要。至于怎么安装就不多说了,跟普通软件一样,直接下载下来安装就可以了。

2、在虚拟机上安装Linux系统。

hadoop一般是运行在Linux平台之上的,也可以运行在windows下,但是在linux上实施比较稳定,不易出错,在windows安装hadoop集群会相对麻烦一些。我这里用虚拟机安装的系统是 ubantu 16.04 LTS ,ubantu的桌面操作舒服一些,你可以用centos, redhat, fedora这些版本的Linux系统,都没有问题的。这里就简单说一下怎么安装,具体也可以百度上搜一下,有很多。安装过程很简单。需要照这步骤创建3个虚拟系统

点新建

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第1张图片

会弹出一个选项,选择Linux系统 ubantu 64位,自己先下载好64位版本的ubantu安装包。内存可以自己设置,内存多的可以设置大一点,少的可以设置小一点,这个以后也可以改的。然后选择现在创建虚拟硬盘。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第2张图片

选择虚拟硬盘放在哪个路径,分配大小,这里的虚拟硬盘就是你虚拟系统里面的硬盘大小,然后选VDI类型,固定大小,点创建。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第3张图片

创建完以后就会出来一个虚拟机了,此时还没有系统,还需要为虚拟机安装Ubantu系统。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第4张图片

先做一些设置,其实也不用怎么设置了,主要把显存放到最大,这样流畅一点,最后是添加一个IDE光驱,选择下载好的ubantu系统文件安装就可以了。很简单。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第5张图片

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第6张图片

这里需要注意的是要把网络连接方式设置成桥接网卡,这样是最接近真实网络环境的,如果用NAT的话,是无法做到集群的。因为NAT网络只能访问外部,外部不能访问虚拟机,所以不行。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第7张图片

二、集群规划

主机名 ip 安装的软件 进程
master 192.168.10.184 jdk1.7.0_79、hadoop 2.3.7 namenode ressourcemanager
slave1 192.168.10.185 jdk1.7.0_79、hadoop 2.3.7 datanode secondnamenode
slave2 192.168.10.186 jdk1.7.0_79、hadoop 2.3.7 datanade

1、配置ubantu网络。

先将ubantu网络设置成静态IP。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第8张图片

2、取消dash。

在终端输入命令:sudo dpkg-reconfigure dash    在选择项中选No。

因为Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,如果不关闭。启动时hadoop时会报“Syntax error: “(” unexpected”错误。

3、修改/etc/hosts 文件

终端输入命令  sudo gedit /etc/hosts

配置好各个节点的信息,前面是节点的ip。后面是节点的名称,名称就是你的主机名称。

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第9张图片

注意:每个节点都做上面的步骤。

三、安装JDK

下载jdk1.7.0_79。其他版本也没有问题。然后解压到 /opt/  目录下。配置好环境变量

# 修改配置文件,在终端输入 sudo gedit /etc/profile
# 在最后下添加
export JAVA_HOME=/opt/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

# 刷新配置文件source /etc/profile

注意:JDK每个节点都要安装。




四、建立hadoop运行帐号

即为hadoop集群专门设置一个用户组及用户,这部分比较简单,参考示例如下:


sudo groupadd hadoop    //设置hadoop用户组
sudo useradd –s /bin/bash –d /home/had –m had –g hadoop –G admin   //添加一个had用户,此用户属于hadoop用户组,且具有admin权限。
sudo passwd 123456 //设置用户had登录密码
su had//切换到had用户中

如果没有 admin组,可以自己添加一个   sudo groupadd admin


上述3个虚机结点均需要进行以上步骤来完成hadoop运行帐号的建立。


五、配置ssh免密码登录

1、注意将防火墙关掉:

#关闭防火墙
sudo systemctl stop firewalld.service
#关闭开机启动
sudo systemctl disable firewalld.service
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

2、免密码登录:

SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数

据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。


cd ~/.ssh
ssh-keygen -t rsa
  • 1
  • 2
  • 1
  • 2

这里上个回车就ok,会在当前目录生成两个文件,一个公钥一个私钥

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第10张图片

将公钥拷贝到其它机器上,实现免密码登录

ssh-copy-id 192.168.10.184
ssh-copy-id  192.168.10.185
ssh-copy-id  192.168.10.186
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

这样会在slave1 的~/.ssh/目录下生成一个authorized_keys 就可以实现master免登录到slave1,如下:

ssh 192.168.10.185

在单机结点上用ssh进行登录,看能否登录成功。能登录成功后注销退出,过程如下:

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第11张图片



如果出现 ssh: connect to host localhost port 22: Connection refused 这个问题,解决方法如下:


错误原因:
1.sshd 未安装
2.sshd 未启动

3.防火墙

4需重新启动ssh 服务

 
解决方法:
1.确定安装sshd:  
[html]  view plain  copy
  1. $ sudo apt-get install openssh-server    
2.启动sshd: 
[html]  view plain  copy
  1. $ sudo net start sshd    
3.检查防火墙设置,关闭防火墙:
[html]  view plain  copy
  1. $ sudo ufw disable     
检验方法:
输入命令:
[html]  view plain  copy
  1. $ ssh localhost    

若成功,则表示安装成功,且连接通过;


六、安装hadoop:


1、解压下载好的hadoop安装包到  /home/had/  目录下


2、修改配置文件,这些配置文件全部位于 /home/had/hadoop-2.7.3/etc/hadoop 文件夹下:


hadoop-env.sh

这里写图片描述

core-site.xml

<configuration>
    
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://192.168.10.184:9000value>
    property>
    
    <property>
        <name>hadoop.tmp.dirname>
        <value>/home/had/hadoop-2.7.3/tmpvalue>
    property>
configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

hdfs-site.xml

<configuration>

    
    <property>
        <name>dfs.namenode.http-addressname>
        <value>192.168.10.184:50070value>
    property>

    
    <property>
        <name>dfs.namenode.secondary.http-addressname>
        <value>192.168.10.185:50090value>
    property>

    
    <property>
        <name>dfs.namenode.name.dirname>
        <value>/home/had/hadoop-2.7.3/data/namenodevalue>
    property>

    
    <property>
        <name>dfs.replicationname>
        <value>2value>
    property>
    
    <property>
        <name>dfs.datanode.data.dirname>
        <value>/home/had/hadoop-2.7.3/data/datanodevalue>
    property>
configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

mapred-site.xml 
必须先创建mapred-site.xml,因为目录下并没有mapred-site.xml ,手动创建也可以,用下面的命令也可以。

mv mapred-site.xml.template mapred-site.xml
  • 1
  • 1
<configuration>
    
    <property>
        <name>mapreduce.framework.namename>
        <value>yarnvalue>
    property>
configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

yarn-site.xml

<configuration>
    
    <property>
        <name>yarn.resourcemanager.hostnamename>
        <value>mastervalue>
    property>

    
    <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
    property>

    <property>
         <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
         <value>org.apache.hadoop.mapred.ShuffleHandlervalue>
    property>
configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

masters 
新建一个masters的文件,这里指定的是secondary namenode 的主机

192.168.10.185
  • 1
  • 1

slaves

192.168.10.185
192.168.10.186

2、第一次得格式化

./bin/hdfs namenode -format


3、然后复制hadoop到其他主机

scp -r hadoop-2.7.3 192.168.10.185:~

scp -r hadoop-2.7.3192.168.10.186:~

通过上面的命令,其他节点也都安装好了hadoop。不用每个节点都手动安装


七、启动hadoop

1、启动dfs

./sbin/start-dfs.sh
  • 1
  • 1

2、启动yarn

./sbin/start-yarn.sh

3、查看

在终端输入命令 jps  查看进程。

master

这里写图片描述

slave1

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第12张图片

slave2

这里写图片描述

4、通过浏览器测试hdfs:

192.168.10.184:50070
  • 1
  • 1

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第13张图片

注意这里有数据才是成功。

5、通过浏览器测试yarn:

192.168.10.184:8088
  • 1
  • 1

hadoop 2.7.3在ubantu Linux下的集群(3台机)_第14张图片

可以看到一切正常。2个节点。








你可能感兴趣的:(hadoop)