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
相关推荐
青云交1 小时前
大数据新视界 -- Hive 查询性能优化:基于成本模型的奥秘(上)(5/ 30)
大数据·优化器·执行计划·统计信息·hive 查询性能·成本模型·hive 优化
gma9991 小时前
【BUG】ES使用过程中问题解决汇总
大数据·elasticsearch·搜索引擎
Mephisto.java2 小时前
【大数据学习 | Spark-Core】RDD的缓存(cache and checkpoint)
大数据·学习·spark
zmd-zk2 小时前
flink学习(3)——方法的使用—对流的处理(map,flatMap,filter)
java·大数据·开发语言·学习·flink·tensorflow
NiNg_1_2342 小时前
Hadoop的MapReduce详解
大数据·hadoop·mapreduce
在下不上天2 小时前
flume-将日志采集到hdfs
大数据·linux·运维·hadoop·hdfs·flume
zmd-zk2 小时前
flink学习(1)——standalone模式的安装
大数据·hadoop·flink·实时
Dreams°1232 小时前
【大数据测试Flume:从 0-1详细教程】
大数据·python·单元测试·自动化·flume
开利网络4 小时前
数字化转型:企业降本增效的关键之路
大数据·物联网·搜索引擎·信息可视化·1024程序员节
Elastic 中国社区官方博客8 小时前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure