0


保姆级教程教你如何安装Hadoop,实现Hadoop单机(非分布式)配置

下载Ubutu镜像

前往阿里镜像站

https://mirrors.aliyun.com/oldubuntu-releases/releases/16.04.0/?spm=a2c6h.25603864.0.0.6be57ff3u2zMGR

选择下载

ubuntu-16.04-desktop-amd64.iso

下载时间较久,请耐心等待

创建实验用虚拟机

选择

创建新的虚拟机

在这里插入图片描述选择

典型

并下一步

在这里插入图片描述

选择

安装程序光盘映像文件

点击

浏览

,选中此前下载的光盘镜像文件

在这里插入图片描述

如下图设置
在这里插入图片描述
在这里插入图片描述

设置最大虚拟机占用内存

100GB

(并不会立即使用100GB),并选中

将虚拟磁盘存储为单个文件

在这里插入图片描述

点击

完成

在这里插入图片描述
等待虚拟机安装完成
安装完成后,如下图所示
在这里插入图片描述
选择

xmudblab

并输入

123456

,回车即登录完成
按下

CTRL
  • ALT
    
  • T
    
    键,即可打开终端命令行
    点击窗口左上角的
    圆X
    
    按钮,即可关闭终端
    在这里插入图片描述选择左边栏中的
    Floppy Disk
    
    即可进行系统文件管理(类似打开Windows我的电脑)
    打开后,选中
    Floppy Disk
    
    右键,再点击
    Quit
    
    ,即可关闭
    在这里插入图片描述
    至此,完成虚拟机的安装

配置虚拟机环境

创建hadoop用户

sudouseradd -m hadoop -s /bin/bash
sudopasswd hadoop        # 给Hadoop用户设置密码sudo adduser hadoop sudo# 给Hadoop用户提权,避免不必要的权限问题

配置网络

点击VM上边的编辑,选择虚拟网络编辑器,点击右下角的

更改设置

,对NAT模式进行修改
在这里插入图片描述选择名称为

VMnet8

的NAT模式,取消使用本地DHCP服务器,并如下设置子网IP及子网掩码
先点击应用,再点击确定,保存设置
在这里插入图片描述在Ubutu虚拟机中,点击喇叭左边的按钮,选择编辑网络连接

在这里插入图片描述
点击因特网,选中第一个网络连接,并点击编辑在这里插入图片描述
点击IPV4,并点击下方的Method,选中Manual选项
然后点击

Add

添加IPV4地址,子网地址为

172.25.254.10

子网掩码为

255.255.255.0

网关为

172.25.254.2

IPV4地址的设置与VM的虚拟网络编辑器息息相关

然后设置DNS:114.114.114.114
最后点击Save,进行保存退出,再点击Close,然后重启Ubutu虚拟机在这里插入图片描述

更新apt

点击右边的设置界面,选择软件包&更新
在这里插入图片描述
点击

Download ...

右边的倒三角,在弹出的窗口中,往上滑,找到

China

并点击,选择

...aliyun...

,并点击

Choose Server

在这里插入图片描述
点击

Reload

重新加载,等待加载完成,若加载失败,选择其他中国服务器,再进行加载在这里插入图片描述

# 加载完成后,打开终端,并输入命令,进行更新sudoapt-get update    # 成功更新,如下图所示sudoapt-getinstallvim -y # 安装新的编辑器

在这里插入图片描述

安装SSH、配置SSH无密码登陆

sudoapt-getinstall openssh-server    # Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH serverssh localhost    # 尝试远程连接本机exit# 退出刚才的 ssh localhostcd ~/.ssh/    # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa    # 会有提示,都按回车就可以cat ./id_rsa.pub >> ./authorized_keys    # 加入授权# 这样,本机就可以被远程连接(使用xshell来代替VM)# 另一方面,实现了Hadoop集群、单节点模式 SSH 的免密登陆# 从此处开始,以后操作均在xshell中进行

安装Java环境

# 安装 Java 环境(Java 21.0.04)sudoapt-getinstallwget -y    # 安装下载工具wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz    
# 若虚拟机下载失败,请使用Windows前往官网进行下载,下载完成后,上传至虚拟机sudomkdir /usr/lib/jvm -p    # 创建放置Java的目录sudotar -zxvf ./jdk-21_linux-x64_bin.tar.gz -C /usr/lib/jvm    # 解压Java压缩包vim ~/.bashrc    # 编辑环境变量...    # 在最下一行输入exportJAVA_HOME=/usr/lib/jvm/jdk-21.0.4
exportJRE_HOME=${JAVA_HOME}/jre 
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
exportPATH=${JAVA_HOME}/bin:$PATHsource ~/.bashrc    # 刷新环境变量
java -version    # 安装成功,命令显示如下

在这里插入图片描述

安装 Hadoop3.3.5

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz    # 同理,下载Hadoopsudotar -zxvf ./hadoop-3.3.5.tar.gz -C /usr/local

cd /usr/local/
sudomv ./hadoop-3.3.5/ ./hadoop
sudochown -R hadoop:hadoop hadoop/    # 修改权限

在这里插入图片描述

/usr/local/hadoop/bin/hadoop version    # 安装成功,显示如下

在这里插入图片描述

Hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行
非分布式即单 Java 进程,方便进行调试

运行例子:将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中

cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep ./input ./output 'dfs[a-z.]+'cat ./output/*          # 查看运行结果

在这里插入图片描述Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将

./output

删除

rm -r ./output

部署Hadoop伪分布式

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件

Hadoop 的配置文件位于

/usr/local/hadoop/etc/hadoop/


Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现

# 以下是伪分布式需要修改的配置文件vim ./etc/hadoop/core-site.xml
...
<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>

Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件)
因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项
在这里插入图片描述

vim ./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/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>

在这里插入图片描述

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# 在第54行基础上,去掉注释,并添加JAVA的具体路径exportJAVA_HOME=/usr/lib/jvm/jdk-21.0.4

在这里插入图片描述配置完成后,执行 NameNode 的格式化

cd /usr/local/hadoop
./bin/hdfs namenode -format    # 启动完成,如下图所示

在这里插入图片描述开启 NameNode 和 DataNode 守护进程

cd /usr/local/hadoop
./sbin/start-dfs.sh  # start-dfs.sh是个完整的可执行文件,中间没有空格# 启动完成,如下图所示

在这里插入图片描述

# 可通过 jps 命令来判断是否启动成功
hadoop@ubuntu:/usr/local/hadoop$ jps
6355 SecondaryNameNode
6566 Jps
6007 NameNode
6138 DataNode
# SecondaryNameNode NameNode DataNode 均出现,表示启动成功

启动成功后,可以访问Web界面

http://localhost:9870

查看NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件,此方法需要Windows主机有虚拟机的主机解析?

运行Hadoop伪分布式

./bin/hdfs dfs -mkdir -p /user/hadoop    # 在 HDFS 中创建用户目录
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input    # 查看文件列表

在这里插入图片描述
伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(不是Ubutu虚拟机中的文件)

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+'

./bin/hdfs dfs -cat output/* # 查看的是位于 HDFS 中的输出结果

在这里插入图片描述Hadoop 运行程序时,输出目录不能存在,否则会提示错误
因此若要再次执行,需要执行如下命令删除 output 文件夹

./bin/hdfs dfs -rm -r output    # 删除 output 文件夹

若要关闭 Hadoop,则运行

./sbin/stop-dfs.sh

下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行

./sbin/start-dfs.sh

就可以


本文转载自: https://blog.csdn.net/m0_70851096/article/details/142391197
版权归原作者 Deutsch. 所有, 如有侵权,请联系我们删除。

“保姆级教程教你如何安装Hadoop,实现Hadoop单机(非分布式)配置”的评论:

还没有评论