【Linux】Hadoop-3.4.1的伪分布式集群的初步配置

配置步骤

一、检查环境

  • JDK
bash 复制代码
# 目前还是 JDK8 最适合 Hadoop
java -version
echo $JAVA_HOME
  • Hadoop
bash 复制代码
hadoop version
echo $HADOOP_HOME

二、配置SSH免密登录

Hadoop需要通过SSH管理节点(即使在伪分布式模式下)

bash 复制代码
sudo apt install openssh-server    # 安装SSH服务(如未安装)

cd ~/.ssh/

ssh-keygen -t rsa    # 生成密钥对

cat ./id_rsa.pub >> ./authorized_keys    # 添加公钥到授权列表

ssh localhost    # 测试免密登录(首次可能需输入yes)

ssh-copy-id xxx
ssh xxx

三、修改Hadoop核心配置文件

进入配置文件目录:

bash 复制代码
cd $HADOOP_HOME/etc/hadoop
bash 复制代码
# 手动创建文件夹
mkdir -p /opt/software/hadoop/data/tmp
mkdir -p /opt/software/hadoop/data/logs
mkdir -p /opt/software/hadoop/data/namenode
mkdir -p /opt/software/hadoop/data/datanode
bash 复制代码
vim hadoop-env.sh

# 在文件最后一行加上
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
export HADOOP_CONF_DIR=/opt/software/hadoop/etc/hadoop
export HADOOP_LOG_DIR=/opt/software/hadoop/data/logs
export HADOOP_PID_DIR=/opt/software/hadoop/data/tmp
bash 复制代码
vim hadoop-env.sh

# 在文件最后一行加上
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
bash 复制代码
vim mapred-env.sh

# 在文件最后一行加上
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

把环境刷新一下

bash 复制代码
source hadoop-env.sh
source yarn-env.sh
source mapred-env.sh
  • core-site.xml
bash 复制代码
<configuration>
    <!-- 指定 NameNode 通信的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:8020</value>
    </property>
    <!-- 指定 hadoop 运行过程中临时数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/software/hadoop/data/tmp</value>
    </property>
</configuration>
  • hdfs-site.xml
bash 复制代码
<configuration>
    <!-- NameNode 存放元数据的本地目录-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/software/hadoop/data/namenode</value>
    </property>
    <!-- NameNode web 端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop01:9870</value>
    </property>
    <!-- Datanode 在本地存储 block 块的目录 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/software/hadoop/data/datanode</value>
    </property>
    <!-- HDFS blocksize block 块大小 -->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <!-- HDFS blocksize 也就是 block 的副本数-->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>
  • mapred-site.xml
bash 复制代码
<configuration>
    <!-- 指定 MapReduce 程序运行在 Yarn 上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • yarn-site.xml
bash 复制代码
<configuration>
    <!-- 指定 MR 走 shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HA
        DOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_H
        OME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

四、初始化与启动Hadoop

  • 格式化HDFS
bash 复制代码
hdfs namenode -format

# 成功标志:Storage directory ... has been successfully formatted
  • 启动HDFS和YARN
bash 复制代码
start-dfs.sh   # 启动NameNode和DataNode
start-yarn.sh  # 启动ResourceManager和NodeManager
  • jps 验证进程
bash 复制代码
jps

结束

相关推荐
行走的陀螺仪1 分钟前
Claude Code 从入门到实战(三):Hooks、Skills、SubAgents 高级扩展
linux·编辑器·vim
Brilliantwxx13 分钟前
【STM32】 内部 Flash 的 HAL 库函数详解与自定义封装实战
linux·服务器·网络
码途行者1 小时前
Linux 服务器 Golang 安装及环境变量配置
linux·运维·服务器
叼烟扛炮1 小时前
Linux 学习笔记(四十七):TCP 状态机与 tcpdump 抓包排雷实战
linux·网络·笔记·学习·tcp/ip·tcpdump
爱和冰阔落1 小时前
【Linux网络】UDP 聊天室怎么实现?从在线用户管理、消息广播到双线程收发与线程池
linux·运维·网络·udp
雪落漂泊1 小时前
Linux进程(三)概念:进程优先级与进程切换篇
linux·运维·服务器
拂拉氏1 小时前
【知识讲解】 Linux信号与可重入函数的认识
linux·运维·服务器
cynicism??1 小时前
Linux 与 ZXISOS 驱动开发架构对比
linux·驱动开发·架构
djjjx.2 小时前
Linux进程篇(十二):从零构建属于你的自定义 Shell 解释器
linux·运维·服务器
Gl�ria2 小时前
Hadoop 速刷:HDFS / MR / YARN / Spark / Hive
hadoop·hdfs·mr