CentOS 安装Hadoop 伪分布式模式[[Hadoop 3 学习笔记]

本文介绍在Linux上搭建安装Hadoop 伪分布式环境。前面我们介绍了CentOS 安装Hadoop 单机版[Hadoop 3 学习笔记],和单机模式类似,伪分布式模式也运行在单台机器上,是一个的Hadoop运行环境。由于伪分布式也只需要一台服务器,它不具备计算能力的可扩展性和软硬件的故障容忍性,所以依然不适合用户生产环境使用。

Hadoop伪分布式模式介绍

伪分布模式是指运行在一台主机上,使用多个Java进程模仿完全分布式模式运行中的各类节点。它的优点是通过模拟,伪分布模式具备完全分布式模式的主要功能,并且硬件资源要求低;它的缺点是没有故障容忍性和计算资源可扩展性,这种模式非常适用于开发、测试环境,作为上线前进行低成本的全功能验证。

安装Hadoop伪分布式

检查DK8和Hadoop

我们可以接着复用CentOS 安装Hadoop 单机版[Hadoop 3 学习笔记]中现有的环境,继续进行伪分布式安装。可以参考Pseudo-Distributed Operation

前面我们正确的安装了JDK8和Hadoop并配置了JAVA_HOMEHADOOP_HOMEPATH,在伪分布式安装前再次检查下环境

下图我们检查完了JDK8和Hadoop是正常的

设置防火墙

如果你在自己的Linux上安装的话,建议新手关闭防火墙,避免部分hadoop必要端口无法访问导致的细节问题。

bash 复制代码
# 如果你的Linux安装了firewalld并默认开启了,建议新手第一安装时关闭firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl status firewalld
# 如果你的Linux安装了NetworkManager并默认开启了,建议新手第一安装时关闭NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

注意:

  • 当你熟悉Hadoop的安装后,我还是建议不要关闭防火墙,而是精确的设置防火墙来只放行必要的端口。
  • 如果你的Linux是互联网可访问的,你需要注意安全性,关闭防火墙、暴露的端口不需要认证即可访问会产生非常严重的安全问题,互联网上必须慎重考虑安全。
    • 建议在自己本地电脑开Linux虚拟机来进行实验或者在局域网内无公网IP的Linux上进行实验

设置Hadoop配置文件

Hadoop配置文件集中放在$HADOOP_HOME/etc/hadoop文件夹下

我们需要修改core-site.xml,内容如下

xml 复制代码
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <!--默认端口9000-->
            <value>hdfs://localhost:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <!--可以自己自定义hadoop临时文件的路径,我习惯的路径为$HADOOP_HOME/tmp-->
            <value>/home/ec2-user/hadoop-3.3.6/tmp</value>
        </property>
    </configuration>

我们需要修改hdfs-site.xml,内容如下

xml 复制代码
    <configuration>
        <property>
            <name>dfs.replication</name>
            <!--伪分布式集群中只有一个节点,因此副本数量replication的值也只能设置为1-->
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>localhost:9868</value>
        </property>
        <property>
            <name>dfs.namenode.http-address</name>
            <!--Web UI 默认允许任意IP访问,你可以精细化设置-->
            <value>0.0.0.0:9870</value>
        </property>
    </configuration>

我们需要修改hadoop-env.sh,内容如下

ini 复制代码
# JAVA_HOME
export JAVA_HOME=/home/ec2-user/jdk8
# 设置用户默认为root
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

格式化HDFS并启动

注意:下面的步骤以root身份运行

配置免密SSH

配置免密SSH,允许这台Linux通过SSH访问自己时不需要认证

bash 复制代码
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

格式化HDFS

$HADOOP_HOME目录下找到hdfs可执行文件,并执行

bash 复制代码
sudo bin/hdfs namenode -format

开始格式化 格式化完成

启动NameNod和DataNode

bash 复制代码
sudo bin/hdfs namenode -format

访问Web UI

我们可以直接访问http://x.x.x.x:9870看到Web UI,其中x.x.x.x是你Linux的IP

测试

我们可以直接以单词统计作测试,首先创建一个txt文件,里面包含了一段文字

css 复制代码
echo "Amazon EMR Serverless is a deployment option for Amazon EMR that provides a serverless runtime environment. This simplifies the operation of analytics applications that use the latest open-source frameworks, such as Apache Spark and Apache Hive. With EMR Serverless, you don't have to configure, optimize, secure, or operate clusters to run applications with these frameworks"  > words_test.txt

然后将这个文件上传到hdfs中

最后进行统计计算,输入为hdfs中的/words_test.txt(不是本地Linux的文件),输出为hdfs中的/output 查询结果

bash 复制代码
# ls hdfs中的文件列表
hdfs dfs -ls /
# 输出hdfs中output文件夹下的内容
hdfs dfs -cat /output/*

Web UI上也可以看到

参考

相关推荐
samFuB21 分钟前
面板数据-人力资源和社会保障事业发展统计核心指标数据(2000-2024)
大数据
Lalolander1 小时前
工厂手工统计耗时耗力怎么办?
大数据·制造执行系统·工厂管理系统·工厂工艺管理·工厂生产进度管理
小王毕业啦2 小时前
2010-2024年 上市公司-突破性创新和渐进性创新(数据+代码+文献)
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·经管数据
诗词在线3 小时前
孟浩然诗作数字化深度实战:诗词在线的意象挖掘、检索优化与多场景部署
大数据·人工智能·算法
赵谨言3 小时前
基于Python实现地理空间数据批处理技术探讨及实现--以“多规合一“总体规划数据空间叠加分析为例
大数据·开发语言·经验分享·python
天竺鼠不该去劝架3 小时前
RPA 平台选型指南(2026):金智维 vs 来也RPA vs 艺赛旗 vs 阿里云 RPA 深度对比
大数据·数据库·人工智能
瑞华丽PLM4 小时前
守住数字化的胜算:PLM项目实施风险控制全景方案
大数据·人工智能·plm·国产plm·瑞华丽plm·瑞华丽
babe小鑫5 小时前
企业客户数据分级防护发展指南
大数据·信息可视化·数据分析
yhdata5 小时前
3.6%年复合增速定调!雾化片赛道未来六年发展路径清晰,潜力稳步释放
大数据·人工智能
Lalolander6 小时前
从“大海捞针”到“秒级定位”:破解工厂质量追溯困局的系统性路径
大数据·mes·制造执行系统·工厂管理软件·工厂管理系统