阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop 2.7.2集群搭建详解

125次阅读
没有评论

共计 4523 个字符,预计需要花费 12 分钟才能阅读完成。

前言

因为比赛的限制是使用 Hadoop2.7.2,估在此文章下面的也是使用 Hadoop2.7.2, 具体下载地址为 Hadoop2.7.2

开始的准备

目前在我的实验室上有三台 Linux 主机,因为需要参加一个关于 spark 数据分析的比赛,所以眼见那几台服务器没有人用,我们团队就拿来配置成集群。具体打算配置如下的集群

主机名 IP 地址(内网)
SparkMaster 10.21.32.106
SparkWorker1 10.21.32.109
SparkWorker2 10.21.32.112

首先进行的是 ssh 免密码登录的操作

具体操作在 http://www.linuxidc.com/Linux/2017-08/146213.htm 已经写到了,在此不再详细说。

配置 Java 环境

因为我那三台电脑也是配置好了 JDK 了,所以在此也不详细说。
配置好 Java 的机子可以使用

java -version

来查看 Java 的版本

下载 Hadoop2.7.2

因为我最后的文件是放在 /usr/local 下面的,所以我也直接打开 /usr/local 文件夹下。直接

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

Hadoop 2.7.2 集群搭建详解

安装 Hadoop 以及配置 Hadoop 环境

解压

tar -zxvf hadoop-2.7.2.tar.gz

删除

rm -rf hadoop-2.7.2.tar.gz

解压删除之后打开 hadoop-2.7.2 文件夹,在 etc/hadoop/hadoop-env.sh 中配置 JDK 的信息
先查看本机的 jdk 目录地址在哪里

echo $JAVA_HOME

Hadoop 2.7.2 集群搭建详解

vi etc/hadoop/hadoop-env.sh

export JAVA_HOME=${JAVA_HOME}

改为

export JAVA_HOME=/usr/java/jdk1.8.0_131

Hadoop 2.7.2 集群搭建详解

为了方便我们以后开机之后可以立刻使用到 Hadoop 的 bin 目录下的相关命令,可以把 hadoop 文件夹下的 binsbin目录配置到 /etc/profile 文件中。

vi /etc/profile

添加

export PATH=$PATH:/usr/local/hadoop-2.7.2/bin:/usr/local/hadoop-2.7.7/sbin

按一下 esc, 按着shift+ 两次z 键保存

使用

source  /etc/profile

Hadoop 2.7.2 集群搭建详解

使得命令配置信息生效, 是否生效可以通过

hadoop version

查看

配置 Hadoop 分布式集群

前言

考虑是为了建立 spark 集群,所以主机命名为SparkMaster SparkWorker1 SparkWorker2

修改主机名

vi /etc/hostname

修改里面的名字为 SprakMaster, 按一下esc, 按着shift+ 两次z 键保存。

Hadoop 2.7.2 集群搭建详解

设置 hosts 文件使得主机名和 IP 地址对应关系

vi /etc/hosts

Hadoop 2.7.2 集群搭建详解

配置主机名和 IP 地址的对应关系。

Hadoop 2.7.2 集群搭建详解

Ps: 其他两台 slave 的主机也修改对应的 SparkWorker1 SparkWorker2,如果修改完主机名字之后户籍的名字没有生效,那么重启系统便可以。三台机子的 hostname 与 hosts 均要修改

Hadoop 2.7.2 集群搭建详解

在 == 三台 == 机子的总的 hadoop-2.7.2 文件夹下建立如下四个文件夹

  • 目录 /tmp,用来存储临时生成的文件
  • 目录 /hdfs,用来存储集群数据
  • 目录 hdfs/data,用来存储真正的数据
  • 目录 hdfs/name,用来存储文件系统元数据
mkdir tmp hdfs hdfs/data hdfs/name

配置 hadoop 文件

在此先修改 SparkMaster 的配置文件,然后修改完毕后通过 rsync 命令复制到其他节点电脑上。

修改 core-site.xml

vi etc/hadoop/core-site.xml

具体修改如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://SparkMaster:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop-2.7.2/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>

Hadoop 2.7.2 集群搭建详解

变量 fs.defaultFS 保存了 NameNode 的位置,HDFS 和 MapReduce 组件都需要它。这就是它出现在 core-site.xml 文件中而不是 hdfs-site.xml 文件中的原因。

修改 marpred-site.xml

具体修改如下

首先我们需要的是将 marpred-site.xml 复制一份:

cp etc/hadoop/marpred-site.xml.template etc/hadoop/marpred-site.xml
vi etc/hadoop/marpred-site.xml.template 

此处修改的是marpred-site.xml,不是marpred-site.xml.template

具体修改如下

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>SparkMaster:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>SparkMaster:19888</value>
    </property>
</configuration>

Hadoop 2.7.2 集群搭建详解

修改 hdfs-site.xml

vi etc/hadoop/hdfs-site.xml

具体修改如下

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop-2.7.2/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop-2.7.2/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>SparkMaster:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>

Hadoop 2.7.2 集群搭建详解

PS:变量 dfs.replication 指定了每个 HDFS 数据块的复制次数,即 HDFS 存储文件的副本个数. 我的实验环境只有一台 Master 和两台 Worker(DataNode),所以修改为 2。

配置 yarn-site.xml

vi etc/hadoop/yarn-site.xml

具体配置如下:

<configuration>
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
        <property>
               <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>SparkMaster:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>SparkMaster:8030</value>
       </property>
       <property>
               <name>yarn.resourcemanager.resource-tracker.address</name>
               <value>SparkMaster:8031</value>
       </property>
       <property>
               <name>yarn.resourcemanager.admin.address</name>
               <value>SparkMaster:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>SparkMaster:8088</value>
       </property>
</configuration>

Hadoop 2.7.2 集群搭建详解

修改 slaves 的内容

localhost 修改成为SparkWorker1SparkWorker2

Hadoop 2.7.2 集群搭建详解

SparkMaster 节点的 `hadoop-2.7.2/etc/ 下面的文件通过以下方式放去其他节点

rsync -av /usr/local/hadoop-2.7.2/etc/ SparkWorker1:/usr/local/hadoop-2.7.2/etc/
rsync -av /usr/local/hadoop-2.7.2/etc/ SparkWorker1:/usr/local/hadoop-2.7.2/etc/

完成之后可以查看 SparkWorker1SparkWorker2 下面的文件是否变了

启动 hadoop 分布式集群

SparkMaster 节点格式化集群的文件系统

输入

hadoop namenode -format

Hadoop 2.7.2 集群搭建详解

启动 Hadoop 集群

start-all.sh

Hadoop 2.7.2 集群搭建详解

查看各个节点的进程信息

使用

jps

查看各节点的进程信息
可以看到

Hadoop 2.7.2 集群搭建详解

Hadoop 2.7.2 集群搭建详解

Hadoop 2.7.2 集群搭建详解

此时分布式的 hadoop 集群已经搭好了

在浏览器输入

SparkMaster_IP:50070
SparkMaster_IP:8088

看到以下界面代表 Hadoop 集群已经开启了

Hadoop 2.7.2 集群搭建详解

Hadoop 2.7.2 集群搭建详解

结言

到此 Hadoop 的分布式集群就搭好了。这个 Spark 运行的基础。

dd

 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146212.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4523字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中