Hadoop伪分布式安装
本文发布于 277 天前,最后更新于 227 天前,其中文章内容可能会较为陈旧,如果文章内容失效或文章部分资源无法访问,请在本文评论区进行反馈。

中文|English

本章节使用的系统为阿里云轻量应用服务器的Debian 11系统
理论上包括macOS在内的非Windows系统也可以参考本教程安装
Windows系统不建议参考本教程

安装前准备

安装前请尽量使用全新的环境进行安装

Hadoop用户配置

新建hadoop用户,并对计算机进行安装前配置,且后续的安装均为使用hadoop用户进行配置。

# 新建hadoop用户,并设置用户目录为/usr/lib/hadoop
sudo useradd -d /usr/lib/hadoop/ hadoop
# 为hadoop用户设置密码
sudo passwd hadoop

SSH免密登录

确保电脑下载ssh并启动sshd服务,一般服务器环境都已经完成安装,如果在自己电脑/虚拟机上安装,请自行安装openssh-server

安装后运行以下命令ssh连接本机

ssh localhost

如果此时无需密码,请忽略以下的免密码配置步骤,配置ssh免密登录必须使用hadoop用户进行配置

cd  ~/.ssh
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys

此时再次ssh本机,会发现无需密码即可登录,这种情况下可以进行Java安装等操作

Java环境准备

要运行Hadoop,必须先安装Java环境

如果你已安装Java,请忽略Java安装步骤,如果没有,请先安装Java

如果你找不到Java的安装目录,请卸载Java并重新安装
如果你不告诉Hadoop Java的安装目录,Hadoop可能无法正常运行

安装Java

本次安装的是Adoptium,即OpenJDK,为Java的开源版本,功能和Oracle的Java功能相同,不在Oracle官网下载的原因是Adoptium无需登录Oracle甲骨文账号

下载前请确保你的电脑里没有Java。

即使Java8是旧版本的Java,但是其为LTS长期支持版本,目前仍在进行Bug修复之类的更新,所以本网站不便于提供准确的下载地址,如果想要下载,请点击 此处 前往清华大学开源镜像站下载。

下载完后为OpenJDK8U-*.tar.gz格式的文件,此时需要进行解压操作,解压命令为

tar zxvf OpenJDK8U-*.tar.gz

解压后会得到一个文件夹,假设你的文件夹名为 openjdk-8-jdk,则你需要将其复制在指定的目录下。

sudo mkdir -p /usr/lib/jvm
sudo cp -r openjdk-8-jdk /usr/lib/jvm/openjdk-8-jdk

设置环境变量,编辑/etc/profile文件,然后追加以下内容

export JAVA_HOME=/usr/lib/jvm/openjdk-8-jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

刷新环境变量并进行测试Java环境

# 刷新环境变量
source /etc/profile
# 测试Java环境
java -version
# 如果不提示Command not found或找不到命令,并正确显示Java版本号,则说明Java安装成功。

安装Hadoop

本次Hadoop从清华大学开源镜像站下载,由于Hadoop版本有更新,此处下载的为最新的稳定版本,截止到本文章发布,Hadoop的最新版本为3.3.4版本,如需下载,请点击 此处 ,记得下载二进制包,不要下载源码包。

下载完成后为hadoop-3.3.4.tar.gz格式的 文件,此时需要进行解压

tar zxvf hadoop-3.3.4.tar.gz

复制解压后的目录到hadoop用户目录,并设置文件所有者

sudo cp -r hadoop-3.3.4 /usr/lib/hadoop/hadoop-3.3.4
sudo chown -R hadoop /usr/lib/hadoop/hadoop-3.3.4

再次编辑/etc/profile文件,追加以下内容

export HADOOP_HOME=/usr/lib/hadoop/hadoop-3.3.4
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

刷新环境变量并进行测试Hadoop环境

# 刷新环境变量
source /etc/profile
# 测试hadoop环境
hadoop version
# 如果不提示Command not found或找不到命令,并正确显示Hadoop版本号,则说明Hadoop安装成功

修改Hadoop配置文件

因为Hadoop不知道我们的Java安装目录,我们需要修改指定的配置文件来告诉它。

修改hadoop-env.sh

编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/hadoop-env.sh,追加

export JAVA_HOME=/usr/lib/jvm/openjdk-8-jdk

修改core-site.xml

编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/lib/hadoop/hadoop-3.3.4/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改hdfs-site.xml

编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/lib/hadoop/hadoop-3.3.4/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/lib/hadoop/hadoop-3.3.4/tmp/dfs/data</value>
    </property>
</configuration>

修改yarn-site.xml

编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
</configuration>

修改mapred-site.xml

编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

初始化Hadoop

格式化hdfs

格式化整个hdfs

hdfs namenode -format
如果看到“successfully formatted” 和 “Exitting with status 0” 的提示,则说明格式化成功。

启动Hadoop

启动hdfs

start-dfs.sh

启动yarn

start-yarn.sh

访问网页端测试

  • NameNode网页访问 http://192.168.x.y:9870
Hadoop NameNode状态
  • yarn网页访问 http://192.168.x.y:8088
Hadoop Yarn状态
如果你无法访问NameNode网页端,请检查你是否为Hadoop 2.x版本,hadoop 2.x的NameNode默认端口号为50070
必须使用Java 8,使用Java 11或更新版本可能会导致无法正常访问以上两个网站。

查看jps

输入jps命令,可以看到有以下进程(进程号不同为正常现象)

28883 NodeManager
29043 Jps
2455 SecondaryNameNode
2183 NameNode
2283 DataNode
28779 ResourceManager
如果你成功访问以下网站且jps进程和上图一致,那么恭喜你,你的Hadoop可以正常访问
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇