Hadoop原生搭建

2019-12-08 来源: zxd8520 发布在  https://www.cnblogs.com/zxd-8520/p/12004665.html

版本:(centos7.6)

在开始搭建平台前我已经预装了MySQL

  ps:MySQL创建用户并授权:

 grant all privileges on *.* to ' with grant option

好了,不多说,开始配置:

  我采用了master,slave1,slave2三个节点,我自己是利用kvm化的虚拟机。

对应IP地址: 

    master:172.16.90.145

    slave1:172.16.90.147

    slave2:172.16.90.148

  1、为了方便,加上自己在虚拟机上搭建,关闭Selinux,firewalld

  2、更改hosts,即配置主机映射,更改完成scp拷贝

 echo '172.16.90.145 master' >> /etc/hosts
 echo '172.16.90.147 slave1' >> /etc/hosts
 echo '172.16.90.148 slave2' >> /etc/hosts

scp /etc/hosts slave1:/etc/hosts
scp /etc/hosts slave2:/etc/hosts

  3、配置ssh免密:(这里为了方便我设置的空密码,并做的三方免密)

ssh-keygen

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

  4、安装jdk(即Java)

    导入jdk后解压,创建软连接,加入环境变量,source环境变量文件,最后查看版本号

tar zxvf  jdk-8u111-linux-x64.tar.gz

.0_111 /usr/local/java

echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
echo 'JAVA_HOME=/usr/local/jdk1.8.0_111'  >> /etc/profile

source /etc/profile

java -version

  5、安装Hadoop:

    解压

.tar.gz

    创建软连接

/ /usr/local/hadoop

    加入环境变量并使之生效

echo 'HADOOP_HOME=/usr/local/hadoop-2.9.0/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin,sbin' >> /etc/profile
source /etc/profile

    修改配置文件

      在master主机上建立namenode本地数据目录

mkdir  -p /data/nn

      在slave1,slave2中建立datanode本地数据目录

mkdir  -p /data/dn

      在master中编辑core-site.xml,在 <configuration> 节点中增加如下内容

<property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
</property>
<property>
        <name>io.file.buffer.size</name>
        <value></value>
</property>

      在master中编辑 hdfs-site.xml,在 <configuration> 节点中增加如下内容

<property>
        <name>dfs.nameslave.name.dir</name>
        <value>file:///data/nn</value>
    </property>
    <property>
        <name>dfs.dataslave.data.dir</name>
        <value>file:///data/dn</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value></value>
    </property>
    <property>
        <name>dfs.nameslave.secondary.http-address</name>
        <value>master:</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </proper

      在master中,将mapred-site.xml.template 复制一份 ,变成mapred-site.xml,编辑mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
          <final>true</final>
    </property>
  <property>
     <name>mapreduce.jobtracker.http.address</name>
     <value>master:</value>
  </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>http://master:9001</value>
    </property>

      在master中,编辑yarn-site.xml,

<property>
    <name>yarn.slavemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.slavemanager.auxservices.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.slavemanager.resource.memory-mb</name>
    <value></value>
  </property>

     将 master服务器上已经完成的 hadoop 配置 复制到各个节点对应位置上,输入以下命令进行 scp 传送:

scp -r    /usr/local/hadoop/*  slave1:  /usr/local/hadoop/
scp -r    /usr/local/hadoop/*  slave2:  /usr/local/hadoop/

     在master中,初始化hadoop的namenode

     启动hadoop

hadoop-daemon.sh  namenode   -format
./start-all.sh

    最后使用jps命令查看节点启动的服务是否正确

    

    启动成功可以查看web界面了

相关文章