搭建Hadoop集群

搭建Hadoop集群

  1. 安装两个虚拟机(用户名尽量统一为hadoop)

    VMWare

    Ubuntu18.04.2

    jdk1.8.0_202

    hadoop-2.10.1

    master ip 192.168.80.138

    slave ip 192.168.80.128

  2. 配置节点ip,为后面ssh准备

    1. sudo gedit /etc/hosts

      image-20211111110406876

    2. 如下添加两个节点

      image-20211111110455630

    3. 在slave1上同样

  3. 设置root 账户

    1. 打开终端输入,sudo passwd root,
    2. 然后,输入密码并设置root的密码
    3. 最后在终端输入su,并输入干刚刚设置的密码,即可进入root
  4. 修改虚拟机名称,

    1. vim /etc/hostname
    2. 将ubuntu改成master(从机则改称slave1),重启后生效
  5. 安装jdk

    1. 官网下载jdk8,https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

    2. 在/home/slave1里新建一个java文件夹放jdk , mkdir /home/hadoop/java/

      image-20211111122324365

    3. 将下载的jdk移动到上面新建的文件下,mv Downloads/jdk-8u202-linux-x64.tar.gz /home/hadoop/java/

      image-20211111122352242

    4. 进入到java文件夹内,解压tar -zxvf jdk-8u202-linux-x64.tar.gz

      image-20211111122512343

  6. 配置jdk

    1. gedit /etc/profile

    2. 在最后加上如下配置

      export JAVA_HOME=/home/hadoop/java/jdk1.8.0_202
      export JRE_HOME=/home/hadoop/java/jdk1.8.0_202/jre
      export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
      

      image-20211111122119420

    3. 使配置生效 soruce /etc/profile,然后重启,检查java -version是否跳出版本信息,如有则说明安装成功。

      image-20211111122551610

      image-20211111093636020

  7. 安装ssh

    1. 终端输入apt-get install openssh-server

      image-20211111122637414

    2. 检查ssh是否启动,终端输入ps -e |grep ssh,如果有sshd,说明已经启动,如果没有,输入service ssh start

      image-20211111122720787

    3. 生成公钥和密钥ssh-keygen -t rsa -P “” ,此步骤不需要再root里操作。生成的文件会放在/home/slave1/.ssh之下

      image-20211111122800125

    4. 进入到/home/slave1/.ssh,将id_rsa.pub加入到授权文件authorized_keys中。cat id_rsa.pub >> authorized_keys

      image-20211111122845542

    5. 登录localhost , ssh localhost , 推出 exit

      image-20211111122923378

      image-20211111122934294

  8. 以上的步骤在master和其他slave上做一模一样的操作

  9. 配置master无秘登录slave

    1. master主机中复制一份公钥到home. cp .ssh/id_rsa.pub ~/id_rsa_master.pub

    2. 把master的id_rsa_master.pub拷贝到slave1下。scp /home/hadoop/id_rsa_master.pub slave1:/home/hadoop/

      image-20211111123443004

    3. 在slave1下终端输入 sudo cat id_rsa_master.pub >> .ssh/authorized_keys

    4. 至此实现了master对slave1的免密登录

  10. 安装hadoop(master上)

    1. 下载Hadoop,我下载的 hadoop-2.10.1,下载到/home/hadoop

    2. 解压 tar -zxvf hadoop-2.10.1.tar.gz

    3. 在 hadoop-2.10.1内创建四个文件夹

      · hadoop-2.10.1/hdfs

      · hadoop-2.10.1/hdfs/tmp

      · hadoop-2.10.1/hdfs/name

      · hadoop-2.10.1/hdfs/data

  11. 配置hadoop的配置文件(master)

    1. 配置文件都在/hadoop2.10.1/etc/hadoop

      image-20211111104139980

    2. core-site.xml(注意配置中的路径对应自己的路径,就是之前创建的文件夹)

      <configuration>
      <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/home/hadoop/hadoop-2.10.1/hdfs/tmp</value>
         <description>A base for other temporary directories.</description>
       </property>
       <property>
        <name>io.file.buffer.size</name>
         <value>131072</value>
       </property>
       <property>
         <name>fs.defaultFS</name>
         <value>hdfs://master:9000</value>
       </property>
      </configuration>
      
    3. hdfs-site.xml(注意路径对应,name和data)

      <configuration>
      <property>
       <name>dfs.replication</name>
         <value>1</value>
       </property>
       <property>
         <name>dfs.namenode.name.dir</name>
         <value>file:/home/hadoop/hadoop-2.10.1/hdfs/name</value>
         <final>true</final>
      </property>
       <property>
         <name>dfs.datanode.data.dir</name>
         <value>file:/home/hadoop/hadoop-2.10.1/hdfs/data</value>
         <final>true</final>
       </property>
       <property>
        <name>dfs.namenode.secondary.http-address</name>
         <value>master:9001</value>
       </property>
       <property>
         <name>dfs.webhdfs.enabled</name>
         <value>true</value>
       </property>
       <property>
         <name>dfs.permissions</name>
         <value>false</value>
       </property>
      </configuration>
      
    4. 复制mapred-site.xml.template,并命名为mapred-site.xml。然后加入配置

      <configuration>
      <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
       </property>
      </configuration>
      
    5. yarn-site.xml

      <configuration>
      
      <!-- Site specific YARN configuration properties -->
      <property>
       <name>yarn.resourcemanager.address</name>
         <value>master:18040</value>
       </property>
       <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>master:18030</value>
       </property>
       <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>master:18088</value>
       </property>
       <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>master:18025</value>
       </property>
       <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>master:18141</value>
       </property>
       <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
       </property>
       <property>
           <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
           <value>org.apache.hadoop.mapred.ShuffleHandler</value>
       </property>
      
      </configuration>
      
    6. 配置hadoop-env.sh和yarn-env.sh的JAVA_HOME

      image-20211111113448955

      image-20211111113506926

    7. 配置slave文件

      image-20211111105233934

    8. 配置hadoop环境变量

      export HADOOP_HOME=/home/hadoop/hadoop-2.10.1
      export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
      

      image-20211111105708912

    9. 将master上的hadoop-2.10.1传到slave1上,然后同样配置slave1的hadoop环境变量(配置文件的路径如果不一样要改)

      scp -r /home/hadoop/hadoop-2.10.1/ slave1:/home/hadoop/
      

      image-20211111123648804

      image-20211111123830111

  12. 开启hadoop

    1. 初始化hadoop, hdfs namenode -format

      image-20211111112504154

    2. start-dfs.sh

    image-20211111124117698

    1. start-yarn.sh

      image-20211111124129982

    2. 上面两部也可以使用start-all.sh一步运行

    3. 在master输入jps,如下

      image-20211111124228675

    4. 在slave1输入jps,如下

      image-20211111124254400

  13. 搭建完成

    测试一下

    hadoop jar /home/hadoop/hadoop-2.10.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar  pi 10 10
    

    image-20211111124605244

  14. 增加节点

    1. 修改hosts

    2. 修改配置文件

      hdfs-site.xml 1->2

      slaves +slave2

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>