Hadoop搭建完全分布式平台

Hadoop分为本地模式、伪分布式、和完全分布式模式,本地模式指在一台服务器上配置Hadoop,伪分布式还是一台服务器但是多进程运行,完全分布式在不同服务器上运行,由于学习阶段没有足够多的服务器可供使用,所以采用通过vmware虚拟机搭建Hadoop完全分布式。

安装JDK

 官网下载jdk1.8:https://www.oracle.com/java/technologies/javase-downloads.html    (有点慢)

可以下载华为镜像:https://repo.huaweicloud.com/java/jdk/8u192-b12/  

 #解压
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt/module

配置环境变量

vim /etc/profile
 #在profile添加内容:
 $JAVA_HOME=/opt/module/jdk1.8.0_192
 $PATH=$PATH:$JAVA_HOME/bin
 #更新
 source /etc/profile

测试jdk安装是否成功   java  -version

 

安装Hadoop

 官网下载:https://hadoop.apache.org/releases.html

#解压
tar -zxvf  hadoop-2.7.7.tar.gz  -C /opt/module

配置环境变量

vim /etc/profile
#增加内容
export HADOOP_HOME=/opt/module/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#更新
source /etc/profile

测试Hadoop是否安装成功 hadoop version

准备虚拟机

克隆三台虚拟机,关闭防火墙、配置网络保证三台虚拟机之间网络的通畅性。由于NameNode和SecondaryNameNode所需要的内存是1:1的关系所以不能同时放在一个服务器上会降低机器性能(当然也是出于数据可靠性方面的考虑,SecondaeyNameNode能在NameNode出现故障时候恢复一部分数据剩下部分未更新的编辑日志不能更新外是可以代替NameNode工作的),同样ResourceManager不能和NN、2NN在同一个服务器,所以至少需要一台服务器。

  Hadoop-101 hadoop-102 hadoop-103
HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

配置集群

集群的配置在可以在hadoop-101一台服务器上配置,通过xsync分发到集群其他服务器

     1)核心配置文件

       配置NameNode地址时如果没有配置hosts文件可以写IP地址,记住端口号9000

 cd /opt/module/hadoop-2.7.7/
vim etc/hadoop/core-site.xml
#增加内容
<!--指定HDFS的NameNode地址-->
<property>
        <name>fs.defaultFS</name>
         <value>hdfs://hadoop-101:9000</value>'
</property>
<!--配置文件存储路径 -->
<property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/module/hadoop-2.7.7/data/tmp</value>
</property>

      2)  HDFS配置文件

vim  hadoop-env.sh
#加入jdk环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_231
vim  etc/hadoop/hdfs-site.xml
#增加新配置信息
<!--hdfs的副本数,默认为3时可以不写-->
<property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
<!-- 指定Hadoop的SecondaryNameNode-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop-103:50090</value>
    </property>

     3)YARN配置 

vim  etc/hadoop/yarn-env.sh
#加入jdk环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_231
vim etc/hadoop/yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<!-- 指定Yarn的ResorceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
       <value>hadoop-102</value>
    </property>

  4)MapReduce配置文件

vim mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_231
#加入jdk环境变量
vim etc/hadoop/mapred-site.xml
<!--指定mr在yarn上运行 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

简单的完全分布式已经配置完成,可以通过sbin/start-dfs.sh启动测试!

猜你喜欢

转载自www.cnblogs.com/assesion-tang-112/p/12597786.html
今日推荐