史上最简单详细的Hadoop完全分布式集群搭建

2023-11-04

一.安装虚拟机环境

Vmware12中文官方版 链接:https://pan.baidu.com/s/1IGKVfaOtcFMFXNLHUQp41w 提取码:6rep

激活秘钥:MA491-6NL5Q-AZAM0-ZH0N2-AAJ5A

这个安装就十分的简单了,只需要不断点击下一步,直到安装完成就OK了;

二.虚拟机的安装(Centos7)

这个步骤我分享一个详细安装地址:https://www.cnblogs.com/tony-hyn/p/9677902.html

三.搭建集群

(1)配置服务器(我这里是以3台为例)

1个主节点:Mage1(192.168.102.135),2个(从)子节点,Mage2(192.168.102.136),Mage3(192.168.102.137)

(2)配置主节点名(192.168.102.135)

在命令行输入: vi /etc/sysconfig/network
在这里插入图片描述
添加内容:
NETWORKING=yes
HOSTNAME=Mage1
在这里插入图片描述
配置两台子节点名(192.168.102.136)和(192.168.102.137):
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=Mage2

vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=Mage3

(3)配置hosts

打开主节点的hosts文件,将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加所有hadoop集群的主机息。

在命令行输入: vi /etc/hosts
添加3台服务器的节点名信息

192.168.102.135   Mage1
192.168.102.136   Mage2
192.168.102.137   Mage3

保存之后,将主节点的hosts分别拷贝到其他两个子节点
命令行分别输入:
scp /etc/hosts root@192.168.102.136:/etc/
scp /etc/hosts root@192.168.102.137:/etc/
然后分别执行(重启服务器也可以不执行下面的语句): /bin/hostname hostsname
例如:master上执行 /bin/hostsname master,使之生效。

(4)关闭防火墙

1.查看防火墙状态
firewall-cmd --state

2.停止firewall
systemctl stop firewalld.service

3.禁止firewall开机启动
systemctl disable firewalld.service

(5)时间同步

命令行输入:yum install ntp 下载ntp插件 ,
下载完成后 命令行输入:ntpdate -u ntp1.aliyun.com
然后命令行输入:date
如果出现如下情况表示配置成功:
在这里插入图片描述

(6)配置ssh无密码访问
生成公钥密钥对

在每个节点上分别执行:
命令行输入:ssh-keygen -t rsa
一直按回车直到生成结束
执行结束之后每个节点上的/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
其中前者为私钥,后者为公钥
在主节点上执行:
命令行输入:cp id_rsa.pub authorized_keys

将子节点的公钥拷贝到主节点并添加进authorized_keys

将两个子节点的公钥拷贝到主节点上
分别在两个子节点上执行:
scp /root/.ssh/id_rsa.pub root@Mage1:/root/.ssh/id_rsa_Mage2.pub
scp /root/.ssh/id_rsa.pub root@Mage1:/root/.ssh/id_rsa_Mage3.pub

然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
主节点上执行:
cat id_rsa_Mage2.pub>> authorized_keys
cat id_rsa_Mage3.pub>> authorized_keys

将主节点的authorized_keys文件分别替换子节点的authorized_keys文件
主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置
scp authorized_keys rootMage2:/root/.ssh/
scp authorized_keys rootMage3:/root/.ssh/

最后测试是否配置成功

在Mage1上分别执行
ssh Mage2
ssh Mage3
能正确跳转到两台子节点的操作界面即可,同样在每个子节点通过相同的方式登录主节点和其他子节点也能无密码正常登录就表示配置成功。

这里的配置方式可以有多种操作步骤,最终目的是每个节点上的/root/.ssh/authorized_keys文件中都包含所有的节点生成的公钥内容。

(7)安装jdk(三台机器都要安装)

安装在同一位置**/usl/local/jdk1.8.0_191**
下载JDK : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在这里插入图片描述
这里推荐一个Windows系统与虚拟机可以相互传输文件的软件FileZilla,下载解压即可用:
链接:https://pan.baidu.com/s/193E3bfbHVpn5lsODg2ijJQ 提取码:kwiw

解压JDK : tar -zxvf /usr/local/jdk-8u73-linux-x64.gz
配置环境变量, 编辑profile文件:
vi /etc/profile
在profile文件末尾添加以下代码:

export JAVA_HOME=/usr/local/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib

保存后,使刚才编辑的文件生效:source /etc/profile

测试是否安装成功:java -version
如下表示jdk环境配置成功:
在这里插入图片描述

(8)安装hadoop

安装位置自定,例如安装在/usr/local目录下面
下载hadoop包:
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
放在/usr/local目录下,解压hadoop
tar -zxvf hadoop-2.7.7.tar.gz

在usr下面生成hadoop-2.7.7目录
配置环境变量:
vi /etc/profile
在末尾添加:

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

保存后使新编辑的profile生效:
source /etc/profile

(9)配置hadoop
配置hadoop配置文件

需要配置的文件的位置为/usr/local/hadoop-2.7.7/etc/hadoop,需要修改的有以下几个文件:
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml

yarn-site.xml
slaves
其中hadoop-env.sh和yarn-env.sh里面都要添加jdk的环境变量

hadoop-env.sh中

添加如下代码:export JAVA_HOME=/usr/local/jdk1.8.0_191 到如下位置:
在这里插入图片描述

yarn-env.sh中

添加如下代码:export JAVA_HOME=/usr/local/jdk1.8.0_191 到如下位置:
在这里插入图片描述

core-site.xml中

添加如下代码:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Mage1:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/temp</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
        </property>
</configuration>

注:上面代码中file后的路径下的temp文件夹需要自己创建

hdfs-site.xml中

添加如下代码:

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Mage1:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/dfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.web.ugi</name>
                <value>supergroup</value>
        </property>
</configuration>

注:上面代码中file后的路径下的/dfs/data文件夹需要自己创建

mapred-site.xml中
(注意要将mapred-site.xml.template重命名为 .xml的文件   Mv mapred-site.xml.template mapred-site.xml)

添加如下代码:

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

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>Mage1:8032</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>Mage1:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>Mage1:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>Mage1:8033</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>Mage1:8088</value>
        </property>
</configuration>
slaves中

修改成:
Mage1
Mage2

拷贝hadoop安装文件到子节点

主节点上执行:
scp -r /usr/hadoop-2.6.4 root@Mage2:/usr
scp -r /usr/hadoop-2.6.4 root@Mage3:/usr

拷贝profile到子节点

主节点上执行:
scp /etc/profile root@Mage2:/etc/
scp /etc/profile root@Mage3:/etc/

在两个子节点上分别使新的profile生效:

source /etc/profile

格式化主节点的namenode

主节点上进入hadoop目录
然后执行:
./bin/hadoop namenode -format
新版本用下面的语句不用hadoop命令了
./bin/hdfs namenode -format
提示:successfully formatted表示格式化成功

启动hadoop

主节点上在hadoop目录下执行:
./sbin/start-all.sh

主节点上jps进程如下:
NameNode
SecondaryNameNode
ResourceManager

每个子节点上的jps进程如下:
DataNode
NodeManager

如果这样表示hadoop集群配置成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

史上最简单详细的Hadoop完全分布式集群搭建 的相关文章

随机推荐

  • 常量和标识符

    常量 常量是固定值 在程序执行期间不会改变 这些固定的值 又叫做字面量 常量可以是任何的基本数据类型 可分为整型数字 浮点数字 字符 字符串和布尔值 常量就像是常规的变量 只不过常量的值在定义后不能进行修改 在 C 中 有两种简单的定义常量
  • 用户端APP自动化测试_L2

    目录 appium server 环境安装 capability 进阶用法 元素定位工具 高级定位技巧 xpath 定位 高级定位技巧 css 定位与原生定位 特殊控件 toast 识别 显式等待高级使用 高级控件交互方法 设备交互api
  • sass中变量引入html,Sass变量、嵌套_html/css_WEB-ITnose

    声明变量 定义变量的语法 Sass 的变量包括三个部分 声明变量的符号 变量名称 赋予变量的值 简单的示例 假设你的按钮颜色可以给其声明几个变量 1 brand primary darken 428bca 6 5 default 337ab
  • rust使用rhai和actix实现web接口

    初始化项目 cargo new acix rhai web 依赖 Cargo toml package name actix sim yt version 0 1 0 edition 2021 See more keys and their
  • flutter图片显示

    图片显示 本地图片显示 首先项目根目录下创建一个用于放置图片的文件夹 将要显示的图片放进去 如下图 然后在项目根目录的pubspec yaml文件中的assets下添加图片路径 如下图 在需要显示图片的地方使用Image asset 进行加
  • 2021CCPC河南省省赛

    文章目录 1001 收集金币 1002 使用技能 1003 欢度佳节 1005 闯关游戏 1010 小凯的书架 1001 收集金币 题目链接 dp i 0 表示前i个事件都没有选择使用技能 dp i 1 表示前i个事件已经选择使用技能了 i
  • 关于Qt下中静态变量的使用

    需求是这样的 在主窗口类Widget中启动一个子线程去执行录音操作 然后使用共享的静态变量来结束录音 在Widget类中发出停止命令 MyThread类则停止录音操作 status定义 class MyThread public QObje
  • SparkStreaming从kafka消费数据

    val spark SparkSession builder master local appName myKafka getOrCreate 5秒一个窗口 val ssc new StreamingContext spark sparkC
  • ES6中数组首尾两端和中间添加/移除数据方法

    1 push 尾端插入 返回数组长度 let arr 1 hello true console log arr push 22 4 console log arr arr 1 hello true 22 console log arr pu
  • C++11中头文件atomic的使用

    原子库为细粒度的原子操作提供组件 允许无锁并发编程 涉及同一对象的每个原子操作 相对于任何其他原子操作是不可分的 原子对象不具有数据竞争 data race 原子类型对象的主要特点就是从不同线程访问不会导致数据竞争 因此从不同线程访问某个原
  • 结构体内存对齐及结构体大小计算,位域计算

    1 什么是结构体内存对齐 结构体内存对齐是指在编程语言中 为了提高内存访问效率和性能 将结构体的成员按照特定规则进行排列 保证每个成员在内存中的起始地址符合特定的对齐要求 2 为什么要结构体内存对齐 网上的文章都是说这两个原因 1 平台原因
  • C++——指针作为参数传递

    C 指针作为参数传递 在写这一篇之前 受到了两个博主两篇博文 博文1 博文2 的启发 对指针作为参数传递时 有了很大的启发 所以在看完之后并把自己的感悟写出来 对于指针的变化作了更详细的讲解 1 指针作为参数传递时 是值传递不是引用传递 2
  • 设置ipv4固定ip

    选择 打开 网络和Intemet 设置 点击进入之后 选择 更改适配器选项 选择需要设置的网络 右击选择 属性 选择 Interent协议版本4 TCP IPv4 选择 属性 cmd输入ipconfig查看当前的IP信息 选择 使用下面IP
  • shinblink HX711称重/形变/压力测量

    HX711称重 形变 压力测量 一 本例程实现功能 二 基本概念 三 接线图 五 完整代码 六 代码运行结果 一 本例程实现功能 Core通过HX711差分电压采集模块测量电桥式传感器输出的差分电压AD值 并通过print 函数在电脑串口调
  • SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号 括号的字符型注入 后台过滤了关键字 and or 注释 空格 这篇文章提供联合注入 布尔盲注 两种解题方式 SQLi LABS其他关卡可以参考 SQLi LABS 靶场通关教程 一 功能分析 这关是一个查询功能 地址栏输
  • 多播路由技术

    什么是多播转发树 用图论术语描述从特定源节点到多播组的所有成员的一组路径 这些路径定义了图论中的树 tree 是不含任何回路的图 即一个路由器不会在一条路径上出现两次或两次以上 有时也称为转发树 每个多播路由器对应于树中的一个结点 连接两个
  • LeetCode 1603. 设计停车系统

    题目链接 1603 设计停车系统 class ParkingSystem public vector
  • 九、UI系统

    目录 血条 Health Bar 的预制设计 设计过程 1 使用 IMGUI 2 使用 UGUI 两种实现的优缺点 IMGUI UGUI 效果展示 血条 Health Bar 的预制设计 血条 Health Bar 的预制设计 具体要求如下
  • Azure RTOS定价(ThreadX 等)

    Azure RTOS定价 Azure RTOS定价 https azure microsoft com zh cn pricing details rtos 使嵌入式 IoT 开发和连接变得轻松 Azure RTOS 是一种易于使用 经过市
  • 史上最简单详细的Hadoop完全分布式集群搭建

    一 安装虚拟机环境 Vmware12中文官方版 链接 https pan baidu com s 1IGKVfaOtcFMFXNLHUQp41w 提取码 6rep 激活秘钥 MA491 6NL5Q AZAM0 ZH0N2 AAJ5A 这个安