Hadoop原生搭建

IT智囊 2019-12-08

版本:(centos7.6)

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

ps:MySQL创建用户并授权:

1 grant all privileges on *.* to ‘root‘@‘localhost‘ identified by ‘123456‘ 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


ln -s  /usr/local/jdk1.8.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 zxvf hadoop-2.9.0.tar.gz

  创建软连接

ln -s /usr/local/hadoop-2.9.0/ /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>131702</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>1</value>
    </property>
    <property>
        <name>dfs.nameslave.secondary.http-address</name>
        <value>master:50090</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:50030</value>
  </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</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: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>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.slavemanager.resource.memory-mb</name>
    <value>2048</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命令查看节点启动的服务是否正确

  Hadoop原生搭建

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

Hadoop原生搭建

 Hadoop原生搭建

 Hadoop原生搭建

相关推荐