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
相关推荐
Data 31710 分钟前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop
bubble小拾4 小时前
ElasticSearch高级功能详解与读写性能调优
大数据·elasticsearch·搜索引擎
ZOHO项目管理软件4 小时前
EDM平台大比拼 用户体验与营销效果双重测评
大数据
HyperAI超神经5 小时前
Meta 首个多模态大模型一键启动!首个多针刺绣数据集上线,含超 30k 张图片
大数据·人工智能·深度学习·机器学习·语言模型·大模型·数据集
Hello.Reader7 小时前
TopK算法在大数据重复数据分析中的应用与挑战
大数据·算法·数据分析
数据龙傲天7 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
Elastic 中国社区官方博客7 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
Jason不在家9 小时前
Flink 本地 idea 调试开启 WebUI
大数据·flink·intellij-idea
Elastic 中国社区官方博客10 小时前
使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序
大数据·人工智能·elasticsearch·搜索引擎·全文检索
CHICX122911 小时前
【Hadoop】改一下core-site.xml和hdfs-site.xml配置就可以访问Web UI
xml·大数据·hadoop