CentOS 6.X Hadoop 2.7 分布式集群环境搭建 -- 适用于四川信息职业技术学院“Hadoop应用基础教程”课程

简介: CentOS 6.X Hadoop 2.7 分布式集群环境搭建 -- 适用于四川信息职业技术学院“Hadoop应用基础教程”课程

前言

此教程适用于四川信息职业技术学院"Hadoop应用基础教程"一课,环境为CentOS 6.X系统,Namenode节点一台+Datanode节点2台,但是如果您的Hadoop集群需求与文章内的环境差别不大,亦可参考。

环境准备

  1. 装有 CentOS 6.X 32位系统的虚拟机或服务器 3 台(最好是全新安装的干净系统)
  2. Internet网络
  3. SSH连接软件(如Xshell、FinalShell等)

集群机器

一台CentOS主机系统作Master,一台CentOS主机系统做slave01,一台CentOS主机系统做slave02。三台主机机器处于同一局域网下。
这里使用三台主机搭建分布式集群环境,更多台机器同样可以使用如下配置。
首先需要确认用作Master的主机的IP,集群需要在同一个局域网网关下,可以用ifconfig命令查看当前主机IP

ifconfig

即可获得当前主机的IP在局域网的地址,如下图

ifconfig

修改三个主机的主机名,将IP为192.168.1.100的机器主机名改为:master

vim /etc/sysconfig/network

如图:
修改hostname1

退出vim后,输入一下代码

hostname master

然后重启机器。slave01、slave02修改方法与上相同

三台机器的名称和IP如下,

主机名称 IP地址
master 192.168.1.100
slave01 192.168.1.101
slave02 192.168.1.102

三台机器可以ping互相的ip来测试三台机器的网络连通性
在master节点主机上的Shell中运行如下命令,测试能否连接到slave01节点主机

ping 192.168.1.101

如果出现下图,说明连接成功

ping slave01

为了更好在shell中区分三台机器,修改其显示的主机名,执行如下命令

vim /etc/hosts

打开vim编辑器后将下列文字保存到文件中

127.0.0.1 localhost
192.168.1.100 master
192.168.1.101 slave01
192.168.1.102 slave02

配置ssh无密码登录本机和访问集群机器

首先需要在三台机器上生成秘钥,在三个机器上都执行下列代码

ssh-keygen -t rsa

随后将其发送到每个机器上,下列三行代码一段一段执行,并且三台机器都要执行:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master

ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave01

ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2

发送秘钥完毕后,可以测试一下三台机器是否能无密码直接登录:

#slave01或者slave02中执行下列代码
ssh master

#master或者slave02中执行下列代码
ssh salve01

#master或者slave01中执行下列代码
ssh slave02

查看生成的文件

cat ~/.ssh/ authorized_keys id_rsa id_rsa.pub known_hosts

JDK和Hadoop安装配置

  • 一键安装脚本(不推荐使用)
wget -q http://file.shujuhe.cn/master.sh && sh master.sh
  • 手动安装配置

分别在master主机和slave01slave02主机上安装JDK和Hadoop,并加入环境变量。

  • 安装JDK

分别在master主机和slave01,slave02主机上执行安装JDK的操作

cd /usr/lib/jvm
wget http://file.shujuhe.cn/jdk-8u5-linux-i586.tar.gz
tar -zxf jdk-8u5-linux-i586.tar.gz

编辑环境变量文件/etc/profile

vim /etc/profile

添加如下内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_05
export PATH=$PATH:$JAVA_HOME/bin

接着让环境变量生效,执行如下代码:

source /etc/profile


  • 安装Hadoop

先在master主机上做安装Hadoop,暂时不需要在slave01,slave02主机上安装Hadoop.稍后会把master配置好的Hadoop发送给slave01,slave02.
在master主机执行如下操作:

cd /usr/local
wget http://file.shujuhe.cn/hadoop-2.7.2.tar.gz
tar -zxf hadoop-2.7.2.tar.gz
mv ./hadoop-2.7.2/ ./hadoop

编辑环境变量文件/etc/profile

vim /etc/profile

添加如下内容:

export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

接着让环境变量生效,执行如下代码:

source /etc/profile

Hadoop集群配置

修改master主机修改Hadoop如下配置文件,这些配置文件都位于/usr/local/hadoop/etc/hadoop目录下。(以下操作需要有vim基础,若vim基础相对薄弱,可以进入图形化界面进行更改。)
修改slaves:
这里把DataNode的主机名写入该文件,每行一个。这里让master节点主机仅作为NameNode使用。

slave01
slave02

修改hadoop-env.sh:

打开hadoop-env.sh文件后,找到${JAVA_HOME}字段,将其替换为jdk的绝对路径

修改core-site.xml:

<configuration>
  <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/usr/local/hadoop/tmp</value>
      <description>Abase for other temporary directories.</description>
  </property>
  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
  </property>
</configuration>

修改hdfs-site.xml:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  </property>
</configuration>

修改mapred-site.xml(复制mapred-site.xml.template,再修改文件名)
mapred-site

  <configuration>
   <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
   </property>
 </configuration>

修改yarn-site.xml:

<configuration>
  <!-- Site specific YARN configuration properties -->
  <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
  </property>
  <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>master</value>
  </property>
</configuration>

配置好后,将 master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 master 节点主机上执行(建议一步一步执行):

cd /usr/local/
rm -rf ./hadoop/tmp
rm -rf ./hadoop/logs/*
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz slave01:/usr/local/hadoop.master.tar.gz
scp ./hadoop.master.tar.gz slave02:/usr/local/hadoop.master.tar.gz

在slave01,slave02节点上执行:

rm -rf /usr/local/hadoop/
tar -zxf ~/hadoop.master.tar.gz -C /usr/local

启动hadoop集群

在master主机上执行如下命令:

cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
若在运行过程中出现下图,直接输入mater机器的root密码即可:

运行

运行后,在master,slave01,slave02运行jps命令,查看:

jps

master运行jps后,如下图:

master运行jps

slave01、slave02运行jps,如下图:

slave运行jps

检查安装是否完全成功

在master上运行如下代码:

yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar pi 5 10
:命令中,“5”表示map进行5次,“10”表示每次map投掷10次(相当于扔飞镖10次计算出pi的值)

最终计算结果为如下图时,则表明Hadoop已完成安装并能够使用

成功运行

相关文章
|
5月前
|
负载均衡 测试技术 调度
大模型分布式推理:张量并行与流水线并行技术
本文深入探讨大语言模型分布式推理的核心技术——张量并行与流水线并行。通过分析单GPU内存限制下的模型部署挑战,详细解析张量并行的矩阵分片策略、流水线并行的阶段划分机制,以及二者的混合并行架构。文章包含完整的分布式推理框架实现、通信优化策略和性能调优指南,为千亿参数大模型的分布式部署提供全面解决方案。
1363 4
|
7月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
488 2
|
12月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
6月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
578 4
|
5月前
|
机器学习/深度学习 监控 PyTorch
68_分布式训练技术:DDP与Horovod
随着大型语言模型(LLM)规模的不断扩大,从早期的BERT(数亿参数)到如今的GPT-4(万亿级参数),单卡训练已经成为不可能完成的任务。分布式训练技术应运而生,成为大模型开发的核心基础设施。2025年,分布式训练技术已经发展到相当成熟的阶段,各种优化策略和框架不断涌现,为大模型训练提供了强大的支持。
|
6月前
|
JSON 监控 Java
Elasticsearch 分布式搜索与分析引擎技术详解与实践指南
本文档全面介绍 Elasticsearch 分布式搜索与分析引擎的核心概念、架构设计和实践应用。作为基于 Lucene 的分布式搜索引擎,Elasticsearch 提供了近实时的搜索能力、强大的数据分析功能和可扩展的分布式架构。本文将深入探讨其索引机制、查询 DSL、集群管理、性能优化以及与各种应用场景的集成,帮助开发者构建高性能的搜索和分析系统。
449 0
|
10月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
918 35
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
7月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
1300 69
|
6月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
2515 3

相关实验场景

更多