当前位置:首页 > 技术 > 正文内容

Hadoop2.6.5集群部署实战指南

访客 技术 2026年6月24日 1

一、Hadoop分布式运行模式概述

Hadoop支持三种运行模式:本地模式、伪分布式模式和完全分布式模式。安装后默认采用本地模式,此时Hadoop使用本地文件系统而非HDFS,不启动任何守护进程,Map和Reduce任务在同一进程中执行,仅适用于单机开发或MapReduce程序调试。伪分布式模式下,所有进程运行于同一主机,但使用分布式文件系统,任务由JobTracker管理,副本数限制为1,常用于测试完全分布式逻辑。要发挥Hadoop最大性能,需部署完全分布式集群,且因ZooKeeper高可用要求奇数节点,至少需要3个节点。

二、环境准备

1. 部署环境

使用三台机器:master(192.168.1.250)、slave1(192.168.1.249)、slave2(192.168.1.248)。

2. 域名解析与防火墙配置(所有节点执行)

/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.250 master
192.168.1.249 slave1
192.168.1.248 slave2

# 关闭SELinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0

# 关闭iptables
service iptables stop
chkconfig iptables off

3. 时间同步与源配置

所有节点同步系统时间,并配置YUM和EPEL源。

4. SSH免密登录配置

配置master到所有节点的SSH互信。

三、安装JDK及环境变量(所有节点)

[root@master ~]# rpm -ivh jdk-8u25-linux-x64.rpm
# 创建环境变量文件
[root@master ~]# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export CLASSPATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH 
[root@master ~]# . /etc/profile.d/java.sh
[root@master ~]# java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

四、安装与配置Hadoop

1. 安装Hadoop(master节点)

[root@master ~]# tar xf hadoop-2.6.5.tar.gz -C /usr/local
[root@master local]# ln -sv hadoop-2.6.5 hadoop
# 配置环境变量
[root@master local]# cat /etc/profile.d/hadoop.sh
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[root@master local]# . /etc/profile.d/hadoop.sh

2. 修改核心配置文件(路径:/usr/local/hadoop/etc/hadoop)

hadoop-env.sh

export JAVA_HOME=/usr/java/latest

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/name</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/data</value>
    </property>
</configuration>

mapred-site.xml(先重命名模板文件):

[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <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>
</configuration>

masters

slave1

slaves

slave1
slave2

3. 创建数据目录

[root@master local]# mkdir -pv /data/hadoop/{name,data,tmp}

4. 分发安装文件

[root@master local]# scp -r hadoop-2.6.5 slave1:/usr/local/
[root@master local]# scp -r hadoop-2.6.5 slave2:/usr/local/
[root@master local]# scp /etc/profile.d/hadoop.sh slave1:/etc/profile.d/
[root@master local]# scp /etc/profile.d/hadoop.sh slave2:/etc/profile.d/
# 在slave节点执行
[root@slave1 ~]# cd /usr/local && ln -sv hadoop-2.6.5 hadoop
[root@slave1 ~]# . /etc/profile.d/hadoop.sh

五、启动集群

1. 格式化NameNode(master节点)

[root@master local]# hdfs namenode -format

2. 启动DFS和YARN

[root@master local]# cd /usr/local/hadoop/sbin
[root@master sbin]# start-dfs.sh
[root@master sbin]# start-yarn.sh

3. 验证进程

master节点:

[root@master sbin]# jps | grep -v Jps
3746 ResourceManager
3496 NameNode

slave1节点:

[root@slave1 ~]# jps | grep -v Jps
3906 DataNode
4060 NodeManager
3996 SecondaryNameNode

slave2节点:

[root@slave2 ~]# jps | grep -v Jps
3446 NodeManager
3351 DataNode

六、测试验证

1. 查看集群状态

[root@master sbin]# hdfs dfsadmin -report

2. YARN管理界面

访问 http://master:8088 查看YARN状态。

3. HDFS管理界面

访问 http://master:50070 查看HDFS状态。

4. 提交MapReduce任务

[root@master sbin]# hdfs dfs -mkdir -p /user/hadoop/test
[root@master ~]# hdfs dfs -put install.log /user/hadoop/test
[root@master ~]# hdfs dfs -ls /user/hadoop/test

若遇到NativeCodeLoader警告,可参考相关文档解决。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。