hadoop-2.7.3分布式部署

来源:互联网 发布:车辆mod修改软件 编辑:程序博客网 时间:2024/05/29 18:10

hadoop-2.7.3分布式部署

一、环境介绍

     IP      hostJDKlinux版本hadop版本192.168.0.1master1.8.0_111 centos 7.3.1611hadoop-2.7.3192.168.0.2slave11.8.0_111centos 7.3.1611hadoop-2.7.3192.168.0.3slave21.8.0_111centos 7.3.1611hadoop-2.7.3

二、系统环境配置

    建议使用非root用户安装hadoop,因为hadoop的部分功能root用户可能无法使用。
   创建用户useradd hadoop 
   创建密码 passwd hadoop 
   给hadoop赋权限  1.修改sudoers的文件权限  chmod -v u+w /etc/sudoers  2.修改权限  vim /etc/sudoers  最后一行增加 hadoop  ALL=(ALL) ALL  3.恢复sudoers文件的权限 chmod -v u-w /etc/sudoers

    1.  安装JDK  

tar –zvxf jdk-8u111-linux-x64.tar.gz –C /usr/local/

    2.  配置系统级的JDK环境变量

 sudo vim /etc/profile.d/jdk1.8.sh
  • 1
  • 1


#!/bin/shexport JAVA_HOME=/opt/jdk1.8.0_111export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

    3.  安装hadoop

tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/

    4.  配置hadoop的系统变量

sudo vim /etc/profile.d/hadoop2.7.3.sh
  • 1

输入

#!/bin/shexport HADOOP_HOME="/opt/hadoop-2.7.3"export PATH="$HADOOP_HOME/bin:$PATH"export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

   5. 环境配置生效

source /etc/profile

    6. 配置host

    vi  /etc/hosts

192.168.0.1 master192.168.0.2 salve1192.168.0.3 salve2

    7. 修改hostname(非必须)

        vi  /etc/sysconfig/network,将HOSTNAME改成相应的host  或者使用sudo hostname master/slave1/slave2


    8.  配置ssh免密码登录

        ssh-keygen -t dsa,回车三次(三个节点都执行),会在/home/<用户>(root用户在/root/.ssh下)下面新建一个.ssh文件夹,.ssh中有两个文件。

    id_dsa    id_dsa.pub

        将master的id_dsa.pub分别追加到master、slave1、slave2的authorzied_keys中,然后分别修改master、slave1、slave2的authorzied_keys和.ssh的权限,chmod 600 authorzied_keys,chmod 700 .ssh。

    测试是否成功:在master上执行ssh slave1,看是否能跳到slave1的主机上 

    9.  关闭防火墙

    1) 永久性生效,重启后不会复原开启: chkconfig iptables on关闭: chkconfig iptables off    2) 即时生效,重启后复原开启: service iptables start关闭: service iptables stop

      10.  集群时钟同步(时间一致则省去这步)

ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtimentpdate time.nist.gov

三、hadoop配置

    1.  hadoop环境变量配置涉及etc/hadoop目录下的三个文件:hadoop-env.sh,mapred-env.sh,yarn-env.sh,将这些文件中的JAVA_HOME改为JAVA_HOME=/usr/local/jdk1.8.0_111

    2.将namenode和secondaryNameNode配置在同一台计算机上,这种配置方法如果是做做实验的还可以,如果应用到实际中,存在较大风险,如果存放namenode的主机出现问题,整个文件系统将被破坏,严重的情况是所有文件都丢失。现在来配置hadoop将namenode和secondaryNameNode配置在不同的机器上。在此部署环境中我们将slave1作为配置secondaryNameNode的节点。

 为了将secondary namenode 与master的namenode分开配置在不同机器上,需增加一个master文件
      vim master  增加slave1

    3.  修改hadoop的配置文件

         3.1.  core-site.xml    

    <configuration><property>     <name>fs.defaultFS</name>      <value>hdfs://master:9000</value>      <description>主节点namenode的host和端口</description></property><!-- Size of read/write buffer used in SequenceFiles. --><property>     <name>io.file.buffer.size</name>     <value>131072</value></property><property>      <name>hadoop.tmp.dir</name>    <value>/data/hadoop/tmp</value>    <description>hdfs中namenode和datanode数据的默认存放目录,开机启动默认从此目录开始,可在hdfs中分别配置其目录</description></property>
        <!--将secondary namenode 与master的namenode分开配置在不同机器上,需增加如下配置    -->
        <property>    <name>fs.checkpoint.period</name>    <value>60</value>    <description>The number of seconds between two periodic checkpoints.    </description>  </property>  <property>    <name>fs.checkpoint.size</name>    <value>67108864</value>  </property>  
    </configuration>
需要手动创建此目录/data/hadoop/tmp

        3.2.  hdfs-site.xml

    <configuration>
    <property>  <name>dfs.http.address</name>  <value>master:50070</value>  <description>  The address and the base port where the dfs namenode web ui will listen on.  If the port is 0 then the server will start on a free port.  </description>  </property>  <property>  <name>dfs.namenode.secondary.http-address</name>  <value>slave1:50090</value>  </property> 
    <property>      <name>dfs.replication</name>      <value>2</value>    </property>    <property>      <name>dfs.namenode.name.dir</name>      <value>file:/data/hadoop/hdfs/name</value>    </property>    <property>     <name>dfs.datanode.data.dir</name>      <value>file:/data/hadoop/hdfs/data</value>    </property></configuration>

        注:访问namenode的hdfs使用50070端口,访问datanode的webhdfs使用50075端口。要想不区分端口,直接使用namenode的IP和端口进行所有的webhdfs操作,就需要在所有的datanode上都设置hdfs-site.xml中的dfs.webhdfs.enabled为true。

        3.3.  mapred-site.xml

<configuration>    <property>          <name>mapreduce.framework.name</name>          <value>yarn</value>    </property>    <property>          <name>mapreduce.jobhistory.address</name>          <value>master:10020</value>    </property>    <property>          <name>mapreduce.jobhistory.address</name>          <value>master:19888</value>    </property></configuration>

       jobhistory是Hadoop自带了一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动:

sbin/mr-jobhistory-daemon.sh start historyserver 

         3.4.  yarn-site.xml

<configuration><!-- Site specific YARN configuration properties -->     <property>          <name>yarn.nodemanager.aux-services</name>          <value>mapreduce_shuffle</value>     </property>     <property>           <name>yarn.resourcemanager.address</name>           <value>master:8032</value>     </property>     <property>          <name>yarn.resourcemanager.scheduler.address</name>          <value>master:8030</value>      </property>     <property>         <name>yarn.resourcemanager.resource-tracker.address</name>         <value>master:8031</value>     </property>     <property>         <name>yarn.resourcemanager.admin.address</name>         <value>master:8033</value>     </property>     <property>         <name>yarn.resourcemanager.webapp.address</name>         <value>master:8088</value>     </property></configuration>

        3.5  编辑slaves

masterslave1slave2
    3.6 编辑master
      slave1

        3.7  同步配置     

 将hadoop配置拷贝到其他节点

scp -r /usr/local/hadoop-2.7.3/etc/* slav1:/usr/local/hadoop-2.7.3/etc/scp -r /usr/local/hadoop-2.7.3/etc/* slav2:/usr/local/hadoop-2.7.3/etc/

四、启动hadoop集群

    1.  格式化namenode(初次启动执行)

bin/hdfs namenode –format    

    2.  启动hdfs

sbin/start-dfs.sh

    3.  启动yarn

start-yarn.sh 

    4.  jps查看进程

        4.1  master进程

ResourceManagerJobHistoryServerNameNodeSecondaryNameNodeDataNodeJps

        4.2  slave进程

DataNodeJps

五、通过浏览器查看集群运行状态

1.http://master:50070                   namenode的hdfs页面地址2.http://master:8088/cluster/cluster    yarn资源的页面地址
参考网址:https://my.oschina.net/u/2500254/blog/806114
http://blog.csdn.net/dream_an/article/details/52946840