CentOS 安装Hadoop 单机版[Hadoop 3 学习笔记]

我们可以在官方网站Apache Hadoop上查看最新的信息,当我们需要安装Hadoop时我们可以在Hadoop Download上进行下载。

我本次安装的是Hadoop 3.3.x,它需要Linux中有安装JDK,JDK的版本最好是8。关于详细的Hadoop和Java版本兼容性请看Hadoop Java Versions

单机版本

单机安装是最简单的Hadoop环境搭建方式,但是它不具备Hadoop分布式设计思想,不能通过多服务器水平扩展实现计算能力的提升,也不能容忍单台机器故障。所以适合学习和开发用途。

单机模式的特点:运行在一台主机上,按默认配置以非分布式模式运行的一个独立Java进程。它直接使用本地文件系统,而不是分布式文件系统,不需要加载任何 Hadoop 的守护进程,一般用于本MapReduce 程序的调试。默认情况下,Hadoop处于该模式,用于开发和调试。

我们可以参考Local (Standalone) Mode进行单机安装。安装的环境为亚马逊云宁夏区域的一台X64 EC2上,运行的Linux为Amazon Linux 2023(属于RHEL系,兼容CentOS、RHEL、Fedora)。

安装JDK8

首先下载JDK8

ruby 复制代码
# 方便起见使用Amazon corretto JDK8 X64版本
wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz

然后解压并配置JAVA_HOME环境变量

bash 复制代码
# 解压
tar -zxvf amazon-corretto-8-x64-linux-jdk.tar.gz 
# 重命名解压后得到的jdk文件夹,方便后续管理,我命名为jdk8
mv amazon-corretto-8.402.06.1-linux-x64/ jdk8

配置JAVA_HOME环境变量和PATH

bash 复制代码
# 查看当前目录的路径
pwd
# 查看当前目录下的文件列表,找到jdk8
ls
# 编辑当前用户的环境变量
vim ~/.bash_profile

当前用户的环境变量中,我们可以直接指定JAVA_HOME环境变量和PATH

bash 复制代码
export JAVA_HOME=/home/ec2-user/jdk8
export PATH=$PATH:$JAVA_HOME/bin

最后我们应用当前环境变量设置,并检测JDK8是否安装正确

安装Hadoop

本次我安装的是Hadoop 3.3.6,我们可以直接在hadoop-3.3.6.tar.gz Download找到下载连接

下载

bash 复制代码
# 下载
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
# 解压
tar -zxvf hadoop-3.3.6.tar.gz

由于网络原因,一般在国内下载会非常慢,如你发现类似问题,建议直接用迅雷等工具下载好了再传到服务器上

然后解压并配置HADOOP_HOME环境变量

bash 复制代码
# 解压
tar -zxvf hadoop-3.3.6.tar.gz
# 编辑当前用户的环境变量
vim ~/.bash_profile

当前用户的环境变量中,我们可以直接指定HADOOP_HOME环境变量和PATH

bash 复制代码
export HADOOP_HOME=/home/ec2-user/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 

最后我们应用当前环境变量设置,并检测HADOOP是否安装正确

bash 复制代码
# 检查JAVA_HOME
echo $JAVA_HOME
# 检查java版本
java -version
# 检查hadoop版本
hadoop version

测试

hadoop自带一些简单的样例,我们可以利用这些样例来进行功能测试

测试1:wordcount 单词次数统计

可以统计一个文件里面单词出现的次数

我们首先可以创建一个文件

bash 复制代码
# 进入用户home目录
cd ~
# 创建一个文件
vim wordcount_test.txt

在wordcount_test.txt中填入下面的文字

Amazon EMR Easily run and scale Apache Spark, Hive, Presto, and other big data workloads

然后进入到hadoop自带的mapreduce文件样例文件夹中,执行测试

bash 复制代码
#进入到hadoop自带的mapreduce文件样例文件夹中
cd hadoop-3.3.6/share/hadoop/mapreduce/
ls
# 执行测试,使用hadoop-mapreduce-examples-3.3.6.jar中的wordcount方法来统计~/wordcount_test.txt中单词出现的个数并将结果输出到~/output
hadoop jar hadoop-mapreduce-examples-3.3.6.jar wordcount ~/wordcount_test.txt ~/output

查看结果,输出的统计结果在~/output文件夹下

bash 复制代码
cat ~/output/part-r-00000

我们可以看到单词被正确的统计了

测试2:圆周率计算

Hadoop自带圆周率估算函数,我们可以用来进行功能测试,比如下面的命令:第一个100是运行100次map任务,第二个200是每个map任务投掷次数,所以总投掷次数是100×200,你可以调整这2个值。值越大运算耗时越长但是估算出的圆周率越精确

lua 复制代码
hadoop jar hadoop-mapreduce-examples-3.3.6.jar pi 100 200
相关推荐
TM1Club5 小时前
AI驱动的预测:新的竞争优势
大数据·人工智能·经验分享·金融·数据分析·自动化
zhang133830890755 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
电商API_180079052477 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
龙山云仓7 小时前
No140:AI世间故事-对话康德——先验哲学与AI理性:范畴、道德律与自主性
大数据·人工智能·深度学习·机器学习·全文检索·lucene
躺柒8 小时前
读数字时代的网络风险管理:策略、计划与执行04风险指引体系
大数据·网络·信息安全·数字化·网络管理·网络风险管理
独自归家的兔9 小时前
从 “局部凑活“ 到 “全局最优“:AI 规划能力的技术突破与产业落地实践
大数据·人工智能
海域云-罗鹏10 小时前
国内公司与英国总部数据中心/ERP系统互连,SD-WAN专线实操指南
大数据·数据库·人工智能
策知道11 小时前
依托政府工作报告准备省考【经验贴】
大数据·数据库·人工智能·搜索引擎·政务
Henry-SAP11 小时前
SAP(ERP) 组织结构业务视角解析
大数据·人工智能·sap·erp·sap pp
TracyCoder12312 小时前
ElasticSearch内存管理与操作系统(一):内存分配底层原理
大数据·elasticsearch·搜索引擎