Hadoop集群部署

该教程部署的版本为Hadoop2.7.7

用户名:amax

集群机器:
node01:master
node05~node10:slave节点

大致流程

  • 选定一个节点作为master(本次部署使用node01作为master,node05~10作为slave节点)
  • 配置节点间可以免密ssh,以及免密ssh到localhost
  • 所有节点安装配置java环境
  • 在master配置hadoop,然后将配置好的hadoop包复制到其他slave节点
  • 在master开启hadoop

免密ssh

一般情况下,.ssh文件的路径为~/.ssh

  • 首先生成公钥和私钥:```ssh-keygen -trsa``。
    • authorized_keys:保存远程登录的公钥。
    • id_rsa:私钥
    • id_rsa.pub:公钥
  • 将node01的id_rsa.pub加入node02的authorized_keys文件,则node01可以免密ssh到node02
    • cat id_rsa.pub >> authorized_keys
    • scp authorized_keys node02:~/.ssh/:将当前节点的authorized复制到node02节点的~/.ssh目录下,如果配置各节点都可以免密ssh,直接使用cat将所有节点的id_rsa.pub(包括master的)加入到master的authorized_keys文件中,再将该文件复制给其他节点即可。

附录:

  • scp,cp如果是复制目录,需要加选项-r,文件则不需要

安装配置java

部署hadoop前,服务器集群已经安装好java,版本为java-1.8.0-openjdk-amd64。路径为/usr/lib/jvm/java-1.8.0-openjdk-amd64

如果没有安装可以在master安装后,使用scp复制到其他节点

安装之后注意为每个节点设置环境变量

  • 进入.bashrc文件添加环境变量
vi ~/.bashrc   //修改.bashrc文件添加环境变量
  • 进入之后,增加下面内容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64   //注意修改自己安装java的路径
export PATH=$PATH:JAVA_HOME/bin:JAVA_HOME/bin
  • 最后使用source ~/.bashrc让环境变量生效,否则则需要重启才生效
~/.bashrc

附录:

  • echo $JAVA_HOME:查看环境变量JAVA_HONE的路径
  • export查看系统所有的环境变量
  • export $JAVA_HOME=‘java路径’:可以临时设置JAVA_HOME环境变量,立刻生效,可用于测试。

安装配置Hadoop

  • 下载Hadoop安装包,本次操作下载的目录为~/hadoop-2.7.7.tar.gz,解压到/usr/local/

  • 在master执行下列操作

    sudo tar -zxf ~/hadoop-2.7.7.tar.gz -C /usr/local/    #解压到/usr/local/
    cd /usr/local/
    sudo mv hadoop-2.7.7 hadoop    #修改文件夹名字
    sudo chown -R amax hadoop     #amax为用户名
    
  • 添加以下环境变量(注意:必须为所有节点添加)。添加方法如上

    export HADOOP_HOME=/usr/local/hadoop  #注意更改为自己的路径
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
  • 进入/usr/local/hadoop/etc/hadoop/,修改以下配置文件

    • 修改hadoop-env.sh文件,配置java路径
    • 修改yarn-env.sh文件,配置java路径
    • 修改core-site.xml
      <configuration>
          <property>
                  <name>fs.defaultFS</name>
                  <value>hdfs://node01:9000</value>   #注意将node01节点修改为自己的master节点名称
          </property>
          <property>
                  <name>hadoop.tmp.dir</name>
                  <value>/usr/local/hadoop/tmp</value>
                  <description>Abase for other temporary directories.</description>
          </property>
      </configuration>
      
    • 修改hdfs-site.xml
      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>3</value>
          </property>
      </configuration>
      
    • 修改mapred-site.xml(修改mapred-site.xml.template,后使用mv命令修改名字)
       <configuration>
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
       </configuration>
      
    • 修改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.hostname</name>
                <value>node01</value>     #注意将node01修改为自己的master节点
            </property>
        </configuration>
      
    • 修改slaves文件,将自己的slave节点名字填下去
      node05
      node06
      node07
      node08
      node09
      node10
      
  • 配置完毕后,将配置好的hadoop文件打包压缩后,复制给其他slave节点

        cd /usr/local/
        rm -r hadoop/tmp
        rm -r hadoop/log/*
        tar -zcf ~/hadoop.master.tar.gz hadoop   #将hadoop打包压缩为hadoop.master.tar.gz,放在~/下
        scp ~/hadoop.master.tar.gz node05:~/
        ...
    
  • 在slave节点

    sudo rm -r /usr/local/hadoop 
    sudo tar -zxf hadoop.master.tar.gz /usr/local/hadoop    
    sudo chown -R amax /usr/local/hadoop
    

附录:

  • mv
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3M5w2nJ-1605012556204)(6D09D86AF7F14C1FAB9AC3180DD6A483)]
    • 如果source和dest都是文件,则是改名
    • 如果source是文件,dest是目录,则是移动到dest目录下
    • 如果dest是已存在的目录,则是将source移动到dest下。否则为改名
  • tar
    • -zxf:解压
    • -zcf:压缩

启动集群

  • 进入hadoop

  • 对namenode进行格式化

        bin/hdfs namenode -format
    
  • 启动所有节点

        sbin/start-all.sh
    
  • jps查看java进程

正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程。在 Slave 节点可以看到 DataNode 和 NodeManager 进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值