安装一个最小化的Hadoop

为了学习HDFS和之后的MapReduce,我们需要安装一个Hadoop。

Hadoop一共有3种运行模式

  • 独立模式:不启动守护进程,所有程序运行在一个JVM进程中。独立模式运行Hadoop很方便,适合学习和开发阶段
  • 伪分布式:Hadoop运行在本机上,模拟一个小规模集群
  • 全分布式:Hadoop运行在集群上,相当于一个生产环境

本节主要对独立模式的安装进行讨论。

由于我的主力机器是Windows,为了之后书写代码方便。所以我选择在Windows安装Hadoop,Linux安装方法也类似,主要区别为配置环境变量不太一样,所以不过多赘述。

注意:在Windows设置环境变量可能不会立即生效,可以在当前窗口使用set命令(例如set JAVA_HOME=xxxx)进行测试,然后再修改环境变量保存。

本节环境为

  • Windows 11
  • JDK 11.0.17

一、前期准备

Hadoop是一个Java编写的程序,所以它既可以运行在Linux系统上,也可以运行在Windows上,官方下载的程序也具有Windows的支持。所以我们需要准备一个JDK,这里建议1.8以上。

二、下载程序

  1. 下载符合你操作系统的JDK,版本在1.8以上均可
  2. https://hadoop.apache.org/releases.html下载Hadoop程序。这里我下载的是2.10.2
  3. Windows需要额外下载winutils.exe和hadoop.dll,从https://github.com/cdarlint/winutils下载对应版本的winutils.exe和hadoop.dll。如果没有对应版本的目录,则主版本号一样的相近版本的文件即可,这里我选择下载的是hadoop-2.9.2/bin

三、安装

Step1:安装JDK和设置JAVA_HOME

安装JDK,安装完成后并且配置环境变量JAVA_HOME。然后在你的终端输入

Windows:
%JAVA_HOME%/bin/java -version
Linux:
$JAVA_HOME/bin/java -version

确保能够正常输出Java版本,例如

java version "11.0.17" 2022-10-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.17+10-LTS-269)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.17+10-LTS-269, mixed mode)

注意:JDK安装目录最好不要有空格,如果你的JDK安装在 Program Files 文件夹下,使用 PROGRA~1 代替 Program File。例如JDK安装目录为C:\Program Files\Java\jdk-11.0.17,则环境变量应该设置为C:\PROGRA~1\Java\jdk-11.0.17

如果不方便配置JAVA_HOME,也可以修改Hadoop程序目录下的etc/hadoop/hadoop-env文件,在里面加上一行

Windows:hadoop-env.cmd文件
set JAVA_HOME=你的JDK安装目录
Linux:hadoop-env.sh文件
export JAVA_HOME=你的JDK安装目录

Step2:解压Hadoop

解压Hadoop到任意位置,打开终端进入bin目录

输入hadoop version,你会在终端看到如下字样:

Hadoop 2.10.2
Subversion Unknown -r 965fd380006fa78b2315668fbc7eb432e1d8200f
Compiled by ubuntu on 2022-05-24T22:35Z
Compiled with protoc 2.5.0
From source with checksum d3ab737f7788f05d467784f0a86573fe
This command was run using /D:/hadoop-2.10.2/share/hadoop/common/hadoop-common-2.10.2.jar

Step3:设置Hadoop环境变量

  1. 设置HADOOP_HOME为Hadoop解压位置
  2. 添加HADOOP_HOME/bin到PATH下。这样就不用每次到Hadoop解压目录下运行hadoop了

Setp4:Windows额外步骤

Hadoop在Windows上需要一些本地库才能正常工作,包括访问file://文件系统,其中Hadoop使用一些Windows API来实现类似posix的文件访问权限。

  1. 复制winutils.exe和hadoop.dll到HADOOP_HOME的bin目录下

至此,一个运行在独立模式下的Hadoop安装完成。

02安装一个最小化的Hadoop的更多相关文章

  1. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(四)码农网

    17. 安装 Webmin Webmin 是基于 Web 的 Linux 配置工具.它像一个中央系统,用于配置各种系统设置,比如用户.磁盘分配.服务以及 HTTP 服务器.Apache.MySQL 等 ...

  2. 实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑

    简介 以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCocoa的依赖.原来的文章,可以先看这里: htt ...

  3. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(五)

    25. 安装 Linux Malware Detect (LMD) Linux Malware Detect (LMD) 是 GNU GPLv2 协议下发布的开源 Linux 恶意程序扫描器,它是特别 ...

  4. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网

    7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言.它也经常被用作通用编程语言.在最小化安装的 CentOS 中安装 PHP: # yum install php 安装完 php ...

  5. Spark standalone安装(最小化集群部署)

    Spark standalone安装-最小化集群部署(Spark官方建议使用Standalone模式)        集群规划:    主机        IP                    ...

  6. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网

    CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

  7. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安

    CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

  8. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)

    本文导航 -7. 安装 PHP0 -8. 安装 MariaDB 数据库 -9. 安装和配置 SSH 服务器 -10. 安装 GCC (GNU 编译器集) -11. 安装 Java 7. 安装 PHP ...

  9. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)

    本文导航 -1. 注册并启用红帽订阅 -2. 使用静态 IP 地址配置网络 -3. 设置服务器的主机名称 -4. 更新或升级最小化安装的 CentOS -5. 安装命令行 Web 浏览器 -6. 安装 ...

  10. LoadRunner 12.02 安装以及汉化教程

    LoadRunner 12.02 安装 一.下载 首先下载Loadrunner12安装包. 下载后有四个安装包: HP_LoadRunner_12.02_Community_Edition_Addit ...

随机推荐

  1. TCP 序列号和确认号是如何变化的?

    大家好,我是小林. 在网站上回答了很多人的问题,我发现很多人对 TCP 序列号和确认号的变化都是懵懵懂懂的,只知道三次握手和四次挥手过程中,ACK 报文中确认号要 +1,然后数据传输中 TCP 序列号 ...

  2. 关于Object.keys()和Object.values()的使用

    关于Object.keys()和Object.values()的使用 1. 关于Object.keys() 1) 处理对象,返回可枚举的所有可枚举属性的字符串数组 let person ={ name ...

  3. vulnhub靶场之ICA: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:ICA: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/ica/i ...

  4. python中的字符串学习

    # 1.字符串的下标(索引) # 取字符串中的子串 print('1.字符串的下标(索引)') str1 = 'PYTHON' print(str1[0]) print(str1[-4]) # 2.字 ...

  5. Python基础之模块:6、hashlib模块 subprocess模块 logging模块

    目录 一.hashlib模块 1.简介 2.基本操作与用法 二.subprocess模块 1.简介 2.基本操作与用法 三.logging模块 1.简介 2.基本操作与用法 一.hashlib模块 1 ...

  6. String常用API

    String常用API 1. 获取字符串长度 int length = str.length(); 2. 根据索引,返回字符串中对应的字符 char c = str.chaeAt(length-1); ...

  7. Django更换数据库和迁移数据方案

    前言 双十一光顾着买东西都没怎么写文章,现在笔记里还有十几篇半成品文章没写完- 今天来分享一下 Django 项目切换数据库和迁移数据的方案,网络上找到的文章方法不一,且使用中容易遇到各类报错,本文根 ...

  8. swap,传参实质

    void swap(int a,int b){ int s=a; a=b; b=s; } int main(){ int x=1,y=2; swap(x,y); } 上面的函数并不能实现交换,因为传参 ...

  9. NET 6 实现滑动验证码(三)、接口

    题外话,有网友说,这玩意根本很容易破解,确实是这样.但验证码这东西,就跟锁子很类似,防君子不防小人.验证码的发明其实是社会文明的退步.因为它阻碍了真正的使用者,却无法阻挡别有用心的人.但又有什么办法呢 ...

  10. Go1.20 新版覆盖率方案解读

    玩过Go覆盖率的同学当有所了解,Go的覆盖率方案最初的设计目标仅是针对单测场景,导致其局限性很大.而为了适配更多的场景,行业内各种博客.插件.黑科技介绍也层出不穷.当然,过去我们也开源过Go系统测试覆 ...