Hadoop(一)–安装、配置与简单测试

刚刚开始接触Hadoop,发现网上好多安装教程都是适用1.x版本的,但现在都hadoop版本都已经到3.0了,不太适用于一个初学者,查了些资料,看了一些相关视频,才对Hadoop有一个初步了解,简单的配置了Hadoop,我使用的是Hadoop2.7.3,现在将Hadoop的安装配置总结如下:

Hadoop的安装配置(伪分布模式)总共分为三个步骤:
1. 安装Linux(使用CentOS 6.5 64位)
2. 安装JDK(使用jdk-8u101-linux-x64.tar.gz)
3. 安装Hadoop并配置文件(hadoop-2.7.3.tar.gz)


开始之前,还可以使用一些软件,为了便于传输文件:
1. winSCP:用于从windows向linux中传输文件
2. Xshell

使用winSCP将hadoop-2.7.3.tar.gz和jdk-8u101-linux-x64.tar.gz到CentOS中/opt(目录随意)


安装Linux并配置相关项

  1. 安装虚拟机和CentOS就不再赘述,为了简单网络连接使用的桥接

  2. 修改主机名(为了便于区分和之后配置文件)
    # vim /etc/sysconfig/network
    NETWORKING=yes

  3. 修改IP地址,两种方式:

    • 第一种:
      # setup(CentOS独有的)
      etwork configuration –> Device configuration —>选择网卡,设置IP地址,网关等
      #ifconfig eth0 up(启动eth0网卡)
      是这样,重启后eth0不会自动启动,需要修改配置文件
    • 第二种:
      #vim /etc/sysconfig/network-scripts/ifcfg-eth0
      DEVICE=eth0
      HWADDR=00:0c:29:6e:fa:2d
      TYPE=Ethernet
      UUID=145ec129-2505-4e64-b97b-24a9bae43fec
      ONBOOT=yes #默认自动启动
      NM_CONTROLLED=yes
      BOOTPROTO=none
      IPADDR=192.168.1.100 #IP地址
      NETMASK=255.255.255.0 #掩码
      GATEWAY=192.168.1.1 #网关
      DNS1=202.106.0.20
      IPV6INIT=no
      USERCTL=no
      退出后更新配置:#source /etc/sysconfig/network-scripts/ifcfg-eth0
  4. 修改主机名和IP的映射关系
    # vim /etc/hosts
    192.168.1.100 master

  5. 关闭防火墙
    查看防火墙状态
    # service iptables status
    关闭防火墙
    # service iptables stop
    查看防火墙开机启动状态
    # chkconfig iptables –list
    关闭防火墙开机启动
    # chkconfig iptables off

安装JDK

  1. 首先卸载自带的JDK(好像不卸载也没有问题)
    #rpm -qa | grep java查看jdk版本
    显示如下信息:
    jtzdata-java-2013g-1.el6.noarch
    java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
    java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
    卸载JDK:
    # rpm -e –nodeps tzdata-java-2013g-1.el6.noarch
    # rpm -e –nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
    # rpm -e –nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
  2. 解压JDK
    # tar -zxvf /opt/jdk-8u101-linux-x64.tar.gz
    为了方便,重命名为jdk
    # mv jdk-8u101-linux-x64.tar.gz jdk
  3. 将java添加到环境变量
    # vim /etc/profile
    在文件最后添加:
    export JAVA_HOME=/opt/jdk
    export PATH=$PATH:$JAVA_HOME/bin
  4. 更新配置
    #source /etc/profile

安装配置Hadoop

  1. 解压hadoop-2.7.3.tar.gz
    # tar -zxvf hadoop-2.7.3.tar.gz
    重命名
    #mv hadoop-2.7.3.tar.gz hadoop
  2. 配置环境
    # vim /etc/proflie
    export JAVA_HOME=/opt/jdk
    export HADOOP_HOME=/ipt/hadoop
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    更新配置
    #source /etc/profile
    这样,Hadoop的独立模式就配置完成了。
  3. 伪分布模式需要配置5个文件,都在HADOOP_HOME/etc/profile中

    • xml文件配置的内容都在中添加
    • xml文件的格式:

    (1)hadoop-env.sh,hadoop环境文件,这里需要配置Java环境:
    # vim hadoop-env.sh
    he java implementation to use.
    export JAVA_HOME=/opt/jdk
    (2)core-site.xml,核心配置文件:

    (3) hdfs-site.xml

    (4)mapred-site.xml
    里面只有一个mapred-site.xml.template文件,执行
    # cp mapred-site.xml.template mapred-sit.xml

    (5)yarn-site.xml

    (6)slaves
    i. slaves指定哪些机器上要启动datanodes
    ii. 它的默认值是localhost
    iii. 第一行设置namenode、其余行设置datanodes

  4. hdfs是一个文件系统,初次使用要格式化
    #hdfs namenode -format

    • 出现has been successfully formated,格式化成功

      这里写图片描述
    • 然后启动yarn(资源管理调度):#start-yarn.sh
      这里写图片描述

这样Hadoop的伪分布模式就安装、配置并且启动成功了!!


测试

  • 在浏览器中(如果没有安装CentOS的桌面,可以用你的windows中浏览器)打开http://master:50070,(windows中可以使用http://192.168.1.100:50070)看到如下界面说明成功:

    这里写图片描述
    这里写图片描述

配置SSH无密钥访问

这个配置以及ssh的原理在网上很多,这里只简单写一下配置的过程:

  • 假设namenode节点的主机是master(192.168.1.100),其余datanode的主机分别为slaver1(192.168.1.101),slaver2(192.168.1.102),slaver3(192.168.1.103)
    • 配置hosts:#vim /etc/hosts,添加如下内容
      192.168.1.100 master
      192.168.1.101 slaver1
      192.168.1.102 slaver2
      192.168.1.103 slaver3
  • 分别在各主机检查ssh服务状态(CentOS默认开启)
    • # service sshd status
    • 如果没有安装:# yum install openssh-server openssh-clients
    • 如果没有启动:# service sshd start
  • 分别在各主机生成密钥
    • ssh-keygen -t rsa #生成密钥的方法是rsa,一直按回车知道结束
    • 务必在每个主机上都生成,生成目录在家目录的.ssh目录中,其中id_rsa文件为私钥,id_rsa文件为公钥
  • 在每个slaver中(第i个)执行如下命令:

    • 将每个公钥重命名
      # scp ~/.ssh/id_rsa.pub ~/.ssh/slaveri.id_rsa.pub
    • 将每个datanode的公钥发送给master
      # scp ~/.ssh/slaveri.id_rsa.pub master:~/.ssh
  • 在master中执行,切换到.ssh目录下:

    • 将master自己的公钥放入authorized_keys中:# cp id_rsa.pub authorized_keys
    • 将每个slaver的公钥放入authorized_keys
      # cat slaver1.id_rsa.pub >>authorized_keys
      # cat slaver2.id_rsa.pub >>authorized_keys
      # cat slaver3.id_rsa.pub >>authorized_keys
  • 将authorized_keys再发送给每一个slaver
    # scp authorized_keys slaver1:~/.ssh
    # scp authorized_keys slaver2:~/.ssh
    # scp authorized_keys slaver3:~/.ssh

这样ssh无密钥访问就配置完成了!!就不用每次都输入密码确认了

  • 配置其它datanodes:
    • 在master中配置完成JDK后,使用ssh将jdk发送到其他每个主机(#scp -r /opt/jdk slaver:/opt/,放到同样目录,便于配置),在/etc/profile中添加同样内容即可
    • 在master中将hadoop配置完成后(在slaver文件中添加这三个节点名),同样的将hadoop发送到其他节点,然后在/etc/profile中添加同样内容即可
    • 启动hadoop只需要在master中启动

来源:DXZCZH丹心智

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年9月16日
下一篇 2016年9月16日

相关推荐