02安装一个最小化的Hadoop
安装一个最小化的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以上。
二、下载程序
- 下载符合你操作系统的JDK,版本在1.8以上均可
- 从https://hadoop.apache.org/releases.html下载Hadoop程序。这里我下载的是2.10.2
- 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环境变量
- 设置HADOOP_HOME为Hadoop解压位置
- 添加HADOOP_HOME/bin到PATH下。这样就不用每次到Hadoop解压目录下运行hadoop了
Setp4:Windows额外步骤
Hadoop在Windows上需要一些本地库才能正常工作,包括访问file://文件系统,其中Hadoop使用一些Windows API来实现类似posix的文件访问权限。
- 复制winutils.exe和hadoop.dll到HADOOP_HOME的bin目录下
至此,一个运行在独立模式下的Hadoop安装完成。
02安装一个最小化的Hadoop的更多相关文章
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(四)码农网
17. 安装 Webmin Webmin 是基于 Web 的 Linux 配置工具.它像一个中央系统,用于配置各种系统设置,比如用户.磁盘分配.服务以及 HTTP 服务器.Apache.MySQL 等 ...
- 实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑
简介 以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCocoa的依赖.原来的文章,可以先看这里: htt ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(五)
25. 安装 Linux Malware Detect (LMD) Linux Malware Detect (LMD) 是 GNU GPLv2 协议下发布的开源 Linux 恶意程序扫描器,它是特别 ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网
7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言.它也经常被用作通用编程语言.在最小化安装的 CentOS 中安装 PHP: # yum install php 安装完 php ...
- Spark standalone安装(最小化集群部署)
Spark standalone安装-最小化集群部署(Spark官方建议使用Standalone模式) 集群规划: 主机 IP ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)
本文导航 -7. 安装 PHP0 -8. 安装 MariaDB 数据库 -9. 安装和配置 SSH 服务器 -10. 安装 GCC (GNU 编译器集) -11. 安装 Java 7. 安装 PHP ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)
本文导航 -1. 注册并启用红帽订阅 -2. 使用静态 IP 地址配置网络 -3. 设置服务器的主机名称 -4. 更新或升级最小化安装的 CentOS -5. 安装命令行 Web 浏览器 -6. 安装 ...
- LoadRunner 12.02 安装以及汉化教程
LoadRunner 12.02 安装 一.下载 首先下载Loadrunner12安装包. 下载后有四个安装包: HP_LoadRunner_12.02_Community_Edition_Addit ...
随机推荐
- TCP 序列号和确认号是如何变化的?
大家好,我是小林. 在网站上回答了很多人的问题,我发现很多人对 TCP 序列号和确认号的变化都是懵懵懂懂的,只知道三次握手和四次挥手过程中,ACK 报文中确认号要 +1,然后数据传输中 TCP 序列号 ...
- 关于Object.keys()和Object.values()的使用
关于Object.keys()和Object.values()的使用 1. 关于Object.keys() 1) 处理对象,返回可枚举的所有可枚举属性的字符串数组 let person ={ name ...
- vulnhub靶场之ICA: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:ICA: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/ica/i ...
- python中的字符串学习
# 1.字符串的下标(索引) # 取字符串中的子串 print('1.字符串的下标(索引)') str1 = 'PYTHON' print(str1[0]) print(str1[-4]) # 2.字 ...
- Python基础之模块:6、hashlib模块 subprocess模块 logging模块
目录 一.hashlib模块 1.简介 2.基本操作与用法 二.subprocess模块 1.简介 2.基本操作与用法 三.logging模块 1.简介 2.基本操作与用法 一.hashlib模块 1 ...
- String常用API
String常用API 1. 获取字符串长度 int length = str.length(); 2. 根据索引,返回字符串中对应的字符 char c = str.chaeAt(length-1); ...
- Django更换数据库和迁移数据方案
前言 双十一光顾着买东西都没怎么写文章,现在笔记里还有十几篇半成品文章没写完- 今天来分享一下 Django 项目切换数据库和迁移数据的方案,网络上找到的文章方法不一,且使用中容易遇到各类报错,本文根 ...
- swap,传参实质
void swap(int a,int b){ int s=a; a=b; b=s; } int main(){ int x=1,y=2; swap(x,y); } 上面的函数并不能实现交换,因为传参 ...
- NET 6 实现滑动验证码(三)、接口
题外话,有网友说,这玩意根本很容易破解,确实是这样.但验证码这东西,就跟锁子很类似,防君子不防小人.验证码的发明其实是社会文明的退步.因为它阻碍了真正的使用者,却无法阻挡别有用心的人.但又有什么办法呢 ...
- Go1.20 新版覆盖率方案解读
玩过Go覆盖率的同学当有所了解,Go的覆盖率方案最初的设计目标仅是针对单测场景,导致其局限性很大.而为了适配更多的场景,行业内各种博客.插件.黑科技介绍也层出不穷.当然,过去我们也开源过Go系统测试覆 ...