目的 可以快速使用 Hadoop 的 MapReduce 和 HDFS 执行某些操作,主要用于学习的目的。
先决条件 环境信息
操作系统:deepin 20.9 社区版
内核:5.18.17-amd64-desktop-hwe
Hadoop版本:Apache Hadoop 3.3.6
Java版本:java version “11.0.21” 2023-10-17 LTS
安装必要的软件 1 2 $ sudo apt-get install ssh $ sudo apt-get install pdsh
pdsh 是一个多线程并发在远程服务器上执行命令的 shell 客户端。项目地址:https://github.com/chaos/pdsh 。
Hadoop 安装 下载 Hadoop:Apache Download Mirrors 。下载完成后解压至本地的目录。在解压后的目录中,编辑 etc/hadoop/hadoop-env.sh
文件,增加 JAVA_HOME 环境变量定义。如下:
1 2 export JAVA_HOME=/opt/java
执行以下命令会显示 hadoop 命令的使用文档,如下:
1 2 3 4 $ bin/hadoop Usage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS] or hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS] where CLASSNAME is a user-provided Java class
伪分布式 配置 使用以下配置。
etc/hadoop/core-site.xml:
1 2 3 4 5 6 <configuration > <property > <name > fs.defaultFS</name > <value > hdfs://localhost:9000</value > </property > </configuration >
etc/hadoop/hdfs-site.xml:
1 2 3 4 5 6 <configuration > <property > <name > dfs.replication</name > <value > 1</value > </property > </configuration >
配置 ssh 免密登录 见我的另外一篇文章中的章节:Linux下Spark Standalone测试环境部署 。
启动 HDFS
格式换 HDFS
1 $ bin/hdfs namenode -format
启动 NameNode 和 DataNode
NameNode WebUI
http://localhost:9870/
停止 NameNode 和 DataNode
默认的 HDFS 元数据信息会存储在临时目录 tmp 下,机器重启后再次启动 HDFS 时会出现错误,见我的另外一篇文章:Directory /tmp/hadoop-zhangjc/dfs/name is in an inconsistent state 。
单节点 Yarn
添加以下配置
etc/hadoop/mapred-site.xml:
1 2 3 4 5 6 7 8 9 10 <configuration > <property > <name > mapreduce.framework.name</name > <value > yarn</value > </property > <property > <name > mapreduce.application.classpath</name > <value > $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value > </property > </configuration >
etc/hadoop/yarn-site.xml:
1 2 3 4 5 6 7 8 9 10 <configuration > <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,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value > </property > </configuration >
启动 ResourceManager 和 NodeManager
ResourceManager WebUI
http://localhost:8088/
停止 ResourceManager 和 NodeManager