零基础小白hadoop分布式集群环境搭建(超详细)

news2024/11/18 7:32:03

搭建集群所需要安装包

虚拟机、ubuntu镜像文件、jdk安装包、hadoop安装包
百度云盘地址:

  • 链接:https://pan.baidu.com/s/1ejVamlrlyoWtJRo1QQqlsA
  • 提取码:fcqm

本文的环境是两台windows笔记本,在每台笔记本上安装一个虚拟机,并安装一个ubuntu系统,将其中一台主机作为master结点,另一台作为slave结点(或者使用一台主机,安装一个虚拟机,复制多个ubuntu子系统出来)

安装虚拟机

找到虚拟机可执行程序,点击运行
在这里插入图片描述
点击下一步
在这里插入图片描述

新建一个虚拟Ubuntu子系统

  • 打开VMware Workstation
    在这里插入图片描述
  • 点击左上角新建文件,选择典型配置,并点击下一步
    在这里插入图片描述
  • 首先浏览文件夹,找到ubuntu镜像文件所在位置,点击确定;然后点击下一步
    在这里插入图片描述
  • 创建虚拟机名称和系统用户名称和密码,然后点击下一步。
    在这里插入图片描述
  • 创建虚拟机名称并选择虚拟机安装在本机的位置,然后点击下一步
    在这里插入图片描述
  • 修改内存,并将虚拟内存存为单个文件,然后点击下一步
    在这里插入图片描述
  • 点击确认并在安装后开启此虚拟机,会帮您自动安装,安装过程需要一个小时左右,耐心等待。

安装jdk和hadoop环境

  • 打开虚拟机,登录ubuntu系统。
  • 使用快捷键 Ctrl+Alt+T调出命令行窗口
    登陆后先更新一下 apt,后续使用apt安装软件安装不了,可以执行以下下面的命令
sudo apt-get update

方便后面执行ifconfig,查看该虚拟机ip地址

sudo apt-get install net-tools

安装一下vim,后续需要修改很多文件

sudo apt-get install vim

vim有多种模式

  1. 正常模式
    执行vi命令修改文本时,打开的文本都是只读文件,不可修改,即正常模式。
  2. 插入编辑模式
    在正常模式下,输入i键,即可修改文本内容
  3. 推出vim
    当我们修改好文本文件后,可以先按Esc键,退回到正常模式,然后输入:wq就可以保存文件并退回到命令行模式。

虚拟主机互联

点击虚拟机中的设置选项
在这里插入图片描述
点击网络适配器,改为桥接模式
在这里插入图片描述

ifconfig

显示以下信息就ok了
在这里插入图片描述

修改hostname配置信息

我有两台虚拟机主机,其中一台命名为master,另一台命名为slave01。在master这台主机上修改hostname为master,在slave01这台主机上修改hostname为slave01。注意:下面这条命令要分别在两台主机上执行。

sudo vim /etc/hostname

修改好后,重启两台主机,我们就可以看到以下的变化
在这里插入图片描述
在两台主机上分别测试是否可以互相ping的通
在主机master上输入

ping slave01

在主机slave01上输入

ping master

出现下面画面,说明可以互通
在这里插入图片描述

修改hosts信息

分别在两台主机中输入下面命令并修改内容

sudo vi /etc/hosts

我们通过在master和slave01上执行ifconfig后得到了两台主机的ip地址分别为192.168.1.103和192.168.1.107,j将主机名和ip地址映射起来。
在这里插入图片描述

安装SSH,配置免密登录

ssh命令可以远程登录其他主机,默认情况下是需要密码验证的,为了方便配置一下无密码登录

首先安装ssh server

sudo apt-get install openssh-server

安装后执行

ssh localhost

会提示输入密码,我们接下来配置一下无密码模式
先退出ssh登录,执行

exit

然后执行,注意两台主机上都要执行下面操作

cd ~/.ssh/                   
ssh-keygen -t rsa              #有提示信息,就按回车
cat ./id_rsa.pub >> ./authorized_keys  # 将密钥信息加入授权

配置过后再次执行ssh localhost,就不需要密码了

主机master连接slave01配置

将主机master上的id_rsa.pub传送给主机slave01

scp ~/.ssh/id_rsa.pub hadoop@slave01:/home/hadoop/

将master的公钥加入slave01主机,在主机slave01上执行

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

在主机master上测试

ssh slave01

这是主机界面会切换为主机slave01

JDK和Hadoop安装与配置

采用只在主机master上安装与配置Hadoop,然后压缩发送给主机slave01,最后同时在两台主机上修改编辑~/.bashrc文件,将安装的JDK和Hadoopan路径加入进去,方便主机能够检索到java和hadoop。

JDK安装与配置

jdk安装

首先需要有安装包,安装包是本机与虚拟机通过Xftp传送过来的。

  • 注意jdk的安装与配置,两台机器要保持一样的操作,即主机master上配置一遍,主机slave上配置一遍。

进入/usr/lib,创建一个jvm路径,并将jdk压缩包解压缩到该目录下

cd /usr/lib
sudo mkdir jvm
#然后利用cd命令进入到jdk压缩包所在路径,每个人的路径不一样,我的压缩包在~、software目录下
cd ~/software
sudo -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm

jdk路径配置

执行下面命令

cd ~
vim ~/.bashrc

在配置文件里添加几行路径信息

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存并退出编辑模式,然后输入source ~/.bashrc,让配置文件立即生效。

source ~/.bashrc

下面信息表示安装与配置正确
在这里插入图片描述

Hadoop安装与配置

只在主机master上安装与配置Hadoop,最后打包发给slave01,然后解压缩,并将主机slave01上的~/.bashrc修改,将Hadoop路径信息添加进去就大功告成。

Hadoop安装与路径配置

进入hadoop安装包路径

cd ~/software
sudo tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local
cd /usr/local
sudo mv hadoop-3.1.3 hadoop #改名
sudo chown -R hadoop ./hadoop #将hadoop文件的权限给到hadoop用户,即目前登陆的用户

编辑~/.bashrc文件

vi ~/.bashrc

添加以下内容

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

输入source ~/.bashrc,让文件立即生效

source ~/.bashrc

测试hadoop是否可用

cd /usr/local/hadoop
./bin/hadoop version

出现下面画面说明配置成功
在这里插入图片描述

Hadoop集群信息配置

修改主机master中Hadoop的一些配置文件,配置文件均在
/usr/local/hadoop/etc/hadoop目录下:需要修改的文件都已经用红色框标出
在这里插入图片描述

  1. 修改workers
    把里面的内容替换为slave01
    2.修改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>
  1. 修改hdfs-site.xml
    /usr/local/hadoop/dfs/name和/usr/local/hadoop/dfs/data需要自己指定和创建
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/dfs/data</value>
        </property>
</configuration>

  1. 修改mapred-site.xml(若没有,可复制mapred-site.xml.template,再修改文件名)
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
  </configuration>
  1. 修改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>

配置好后,进入hadoop安装目录/usr/local,将hadoop整个打包发送给slave01主机,并在slave01主机上解压缩

主机master上执行

cd /usr/local
tar -zcf ~/hadoop.tar.gz ./hadoop
cd ~
scp ./hadoop.tar.gz slave01:/home/hadoop

主机slave01上执行

sudo tar -zxvf ~/hadoop.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop

最后一步要在主机slave01上配置一下hadoop路径信息
输入vi ~/.bashrc

vi ~/.bashrc

将hadoop路径加入进去

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

输入

source ~/.bashrc

让配置文件立即生效

启动hadoop集群

在master主机上执行

cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh

运行后,分别在master主机和slave01主机执行jps,查看进程

master主机页面
在这里插入图片描述
在master主机输入

ssh slave01
jps

在这里插入图片描述
自此,hadoop分布式集群环境搭建成功。

参考文献:
https://dblab.xmu.edu.cn/blog/1177/
https://dblab.xmu.edu.cn/blog/7/
https://blog.csdn.net/weixin_47677170/article/details/125668673
https://blog.csdn.net/a8131357leo/article/details/81281392
https://www.jianshu.com/p/d2b4a79d631b
https://www.likecs.com/show-204996897.html
https://blog.csdn.net/a6661314/article/details/124391249

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超详细的水果FL Studio21最新版更新全功能详细介绍!80项更新与改进!

万众期待的 FL Studio 21 版本将于正式发布上线&#xff0c;目前在紧锣密鼓的安排上线中&#xff0c;届时所有购买正版 FL Studio 的用户&#xff0c;都可以免费升级到21版&#xff01;按照惯例&#xff0c;本次新版也会增加全新插件&#xff0c;来帮助大家更好地创作。今天先给…

SMART原则介绍

一、SMART原则简介 什么是SMART原则? SMART原则(S=Specific、M=Measurable、A=Attainable、R=Relevant、T=Time-bound)是为了利于员工更加明确高效地工作,更是为了管理者将来对员工实施绩效考核提供了考核目标和考核标准,使考核更加科学化、规范化,更能保证考核的公正、…

五万字详解“GoF”的23种设计模式

大家好&#xff0c;我是栗筝i&#xff0c;近期我总结梳理了 “GoF”的 23 种设计模式&#xff0c;并使用 Java 对每种设计模式都进行了伪代码与 Demo 实现&#xff0c;并总结了每种设计模式的应用场景&#xff0c;优缺点&#xff0c;UML图等相关内容&#xff0c;字/词数达到了5…

Java中的String

/*** 关于java.lang.String类* 1、String表示字符串类型&#xff0c;属于引用数据类型&#xff0c;不属于基本数据类型* 2、在java中用双引号括起来的都是String对象* 3、java中规定&#xff0c;字符串是不可变的* 4、字符串存储在方法区的字符串常量池当中*/ …

单例模式(python)

一、模式定义 1. 单例模式(Singleton Pattern)&#xff1a;确保某一个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例&#xff0c;这个类称为单例类&#xff0c;它提供全局访问的方法。 2. 单例模式的要点有三个&#xff1a; 某个类只能有一个实例 必须自…

[激光原理与应用-41]:《光电检测技术-8》- 白光干涉仪

目录 第1章 白光干涉仪概述 第2章 常见干涉仪 2.1 激光量块干涉仪 2.2 白光干涉测量表面形貌的系统 第1章 白光干涉仪概述 用于光在两个不同表面反射后形成的干涉条纹进行分析的设备。 干涉仪是一种对光在两个不同表面反射后形成的干涉条纹进行分析的仪器。 其基本原理就…

SpringColud——Ribbon(负载均衡)Hystrix(熔断器)

目录 1、Ribbon 1.1、什么是Ribbon&#xff08;负载均衡&#xff09; 1.2、创建两个user-service实例 1.3、开启负载均衡 2、Histrix&#xff08;熔断器&#xff09; 2.1、什么是Histrix 2.2、雪崩问题 2.3、服务降级 2.4、开启熔断 2.5、编写降级逻辑 2.6、编写降级…

顶象App加固——助力微投证券融入IOS生态

过去十年里&#xff0c;App几乎重新定义了互联网&#xff0c;如今所有人的智能手机里都有着无数个App。 以App store 为例。最新数据显示&#xff0c;当前61个国家/地区在 App Store 现存的App总数为29,085,727。其中虽包含重复的App&#xff0c;但也可见在不同国家/地区&…

毕业设计 基于STM32单片机的老人防摔倒报警系统 - 物联网 嵌入式

文章目录0 前言1 整体设计2 硬件电路3 软件设计4 跌倒检测算法5 关键代码6 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉…

Partition of an interval

In mathematics, a partition of an interval [a, b] on the real line is a finite sequence x0, x1, x2, …, xn of real numbers such that a x0 < x1 < x2 < … < xn b. In other terms, a partition of a compact interval I is a strictly increasing seq…

《小白WEB安全入门》01. 扫盲篇

扫盲篇基础知识什么是WEB什么是前端什么是后端什么是数据库什么是协议什么是WEB安全什么是服务器什么是IP地址、端口什么是局域网、广域网、内网、外网什么是URL什么是MAC地址什么是&#xff08;端口&#xff09;映射什么是域名、DNS什么是网卡、网关什么是IPv4/IPv6什么是Linu…

51单片机的温控风扇设计

一.硬件方案 系统采用51单片机作为控制平台对风扇转速进行控制。可由用户设置高、低温度值&#xff0c;测得温度值在高低温度之间时打开风扇弱风档&#xff0c;当温度升高超过所设定的温度时自动切换到大风档&#xff0c;当温度小于所设定的温度时自动关闭风扇。风扇控制状态随…

论坛系统设计与实现

摘 要 网络技术的快速发展给各行各业带来了很大的突破&#xff0c;也给各行各业提供了一种新的管理模块&#xff0c;对于论坛交流将是又一个传统管理到智能化信息管理的改革&#xff0c;设计论坛系统设计与实现的目的就是借助计算机让复杂的论坛交流操作变简单&#xff0c;变…

第8部分 帧中继

帧中继线路是中小企业常用的广域网线路&#xff0c;其通信费用较低。由于帧中继技术的一些特殊性使得帧中继的配置较为复杂&#xff0c;特别是在帧中继上运行路由协议时更是如此。作为入门&#xff0c;对帧中继的理解应着重放在DLCI、PVC、帧中继映射和子接口等概念上。本章通过…

Redis--高级篇 D5 多级缓存(JVM进程缓存、Lua语法、OpenResty安装(通过lua扩展nginx))

1、JVM进程缓存 1.1 导入商品查询案例 案例导入说明 为了演示多级缓存&#xff0c;我们先导入一个商品管理的案例&#xff0c;其中包含商品的CRUD功能。我们将来会给查询商品添加多级缓存。 1.安装MySQL 后期做数据同步需要用到MySQL的主从功能&#xff0c;所以需要大家在虚…

【Pytorch】.item() 方法介绍

文章目录一、.item() 方法介绍1. 方法介绍2. 那么有什么用呢&#xff1f;二、实例参考链接一、.item() 方法介绍 1. 方法介绍 我们先看官网中是怎么介绍的&#xff1a; 返回这个张量的值作为一个标准的Python数字。 详情页中说&#xff1a; # TORCH.TENSOR.ITEM Tensor.ite…

配对交易之统计套利配对:模型的应用

接下来&#xff0c;介绍把协整模型应用到取对数之后的股价上面。 前提假设&#xff1a;股价取对数之后是一个随机游走过程&#xff0c;即非平稳的。 现在有股票A和B,股价取对数之后的两个时间序列是以及。使用误差修正的表达方式&#xff1a; 能够唯一确定以上式子的参数是协…

uView教程-抽屉菜单 #低代码 #小程序 #uView

这种抽屉效果是如何制作的呢&#xff1f; 在guiplan低代码开发工具中&#xff0c; 点击"uView框架", 输入关键字"弹出层"进行搜索&#xff0c; 找到"带用户菜单" 点击"一键插入", 这我们一个抽屉菜单就插入进来了&#xff0c; 底部…

MapReduce编程实例-词频统计实现

文章目录词频统计实现思路词频统计实现步骤1. 准备数据文件1.1 在虚拟机上创建文本文件1.2 上传文件到HDFS指定目录2. 创建Maven项目3. 添加相关依赖4. 创建日志属性文件5. 创建词频统计映射类6. 创建词频统计驱动器类7. 运行词频统计驱动器类&#xff0c;查看结果8. 修改词频统…

设计一个简单HTML爵士音乐网页(HTML+CSS)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…