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

news2024/9/21 22:49:33

下载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用户

sudo useradd -m hadoop -s /bin/bash
sudo passwd 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重新加载,等待加载完成,若加载失败,选择其他中国服务器,再进行加载在这里插入图片描述

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

在这里插入图片描述

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

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

安装Java环境

# 安装 Java 环境(Java 21.0.04)
sudo apt-get install wget -y	# 安装下载工具
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz	
# 若虚拟机下载失败,请使用Windows前往官网进行下载,下载完成后,上传至虚拟机
sudo mkdir /usr/lib/jvm -p	# 创建放置Java的目录
sudo tar -zxvf ./jdk-21_linux-x64_bin.tar.gz -C /usr/lib/jvm	# 解压Java压缩包

vim ~/.bashrc	# 编辑环境变量
...	# 在最下一行输入
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.4
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

source ~/.bashrc	# 刷新环境变量
java -version	# 安装成功,命令显示如下

在这里插入图片描述

安装 Hadoop3.3.5

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

cd /usr/local/
sudo mv ./hadoop-3.3.5/ ./hadoop
sudo chown -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的具体路径
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.44

在这里插入图片描述配置完成后,执行 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 就可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

伊犁-linux 硬盘添加,分区,格式化

主要是linux 下操作硬盘分区&#xff0c;格式化 这样1个sata 盘就添加成功了 &#xff01;  继续添加三块 sata1 hda sata hdb sata hdc sata hdd scsi sda 作为启动盘 进行操作系统的引导 如果scsi 往下调整 先敲enter 在用&#xff0d; 号往下 如果是往上调整敲…

win7自带壁纸丢失主题丢失

有时候盗版破解或者其他美化工具会导致win7自带的壁纸丢失&#xff0c;从个性化管理里面无法恢复原始的壁纸&#xff08;如下图&#xff09;&#xff0c;但是由于工作原因公司的电脑又不方便设置第三方的壁纸&#xff0c;所以找了一下解决方案。 经典问题&#xff0c;百度找到的…

华为全联接大会HUAWEI Connect 2024印象(二):昇腾AI端侧推理

此次参加HUAWEI Connect 2024最主要目标是了解昇腾AI端侧推理技术&#xff0c;希望将其融合到我现在嵌入式系统课程中&#xff0c;不过刚开始在一楼找到一个小展台&#xff0c;看到了香橙派Orange Pi。香橙派是深圳迅龙的一个品牌&#xff0c;他们和很多芯片厂商都合作过&#…

创建Application(Qt)模板项目时的 Base class选择

在Qt中&#xff0c;当你使用Qt Creator新建一个Qt Widgets Application项目时&#xff0c;选择Base class是一个重要的步骤&#xff0c;因为它决定了你的主窗口或对话框将继承自哪个类&#xff0c;从而决定了你的应用程序将具有哪些基本的功能和外观。以下是一些常见的Base cla…

毕业设计选题:基于ssm+vue+uniapp的校园商铺系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

动手学深度学习(李沐)PyTorch 第 1 章 引言

在线电子书 深度学习介绍 安装 使用conda环境 conda create -n d2l-zh python3.8 pip安装需要的包 pip install jupyter d2l torch torchvision下载代码并执行 wget https://zh-v2.d2l.ai/d2l-zh.zip unzip d2l-zh.zip jupyter notebookpip install rise如果不想使用jupyt…

NAT和代理服务

文章目录 NAT和代理服务1、NAT技术背景2、NAT 技术 IP 转换过程3、NAPT4、NAT 技术的缺陷5、代理服务器5.1、正向代理5.1.1、概念5.1.2、工作原理5.1.3、功能特点5.1.4、应用场景 5.2、反向代理5.2.1、概念5.2.2、工作原理5.2.3、应用场景 6、NAT 和代理服务器 NAT和代理服务 …

实景三维+耕地保护:构建耕地资源管理的全闭环新模式

在耕地资源日益珍贵的今天&#xff0c;如何高效、精准地实施耕地保护&#xff0c;成为了我国农业可持续发展与生态文明建设的关键课题。“实景三维耕地保护”的创新模式&#xff0c;能够为这一挑战提供突破性的解决方案&#xff0c;打造一个从前端监测到后端管理的全闭环耕地保…

Global Attention Decoder for Chinese Spelling Error Correction(ACL2021)

Global Attention Decoder for Chinese Spelling Error Correction(ACL2021) 一.概述 作者认为现有的纠错方法大多是基于局部上下文信息进行纠错&#xff0c;没有考虑句子中错词的影响。将注意力放在错误上下文信息上可能会误导并降低CSC(Chinese Spelling Correction)的整体性…

【计算机网络】网络层协议解析

网络层的两种服务IPv4分类编址划分子网无分类地址 IPv4地址应用IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报 IPv4数据报首部格式ICMP网际控制报文协议虚拟专用网VPN与网络地址转换NAT 网络层主要任务是实现网络互连&#xff0c;进而实现数据包在各网络之间的传…

快速掌握Matlab R2016a安装,就是这么简单

Matlab R2016a下载方法&#xff1a; Matlab R2016a安装教程&#xff1a; 1、右击下载好的压缩包&#xff0c;选择解压到Matlab R2016a 2、打开文件夹【R2016a_win64】&#xff0c;右击下面的setup.exe&#xff0c;选择【以管理员身份运行】 3、点击选择【使用文件安装密钥】&a…

2024华为杯研究生数学建模,代码思路和参考文章

F题X射线脉冲星光子到达时间建模&#xff0c; E题高速公路应急车道紧急启用模型&#xff0c; D题大数据驱动的地理综合问題&#xff0c; C题数据驱动下磁性元件的磁芯损耗建模&#xff0c; B题W LAN 组网中网络吞吐量建模&#xff0c; A题风电场有功功率优化分配&#xff…

ProtoBuf序列化框架介绍

文章目录 ProtoBuf介绍使用流程 QUICK START创建.proto文件注释语法编译部分代码展示使用接口运行结果 ProtoBuf介绍 ProtoBuf全称是Protocol Buffer&#xff0c;是一个数据结构的序列化和反序列化框架 他又很多好处&#xff0c;首先是他支持跨平台&#xff0c;支持Java、C、…

【Geoserver使用】启动方法与端口、跨域配置

文章目录 前言一、Windows和Linux下的启动方式1.Windows2.Linux 二、启动端口修改三、跨域配置总结 前言 之前写了一篇Geoserver下载页的文章&#xff0c; 【Geoserver使用】Geoserver下载页介绍&#xff08;稳定版维护版开发版历史版本&#xff09; 今天讲一下Geoserver启动方…

Hadoop的安装和使用

1. Hadoop简介 Hadoop是一个能够对大量数据进行分布式处理的软件框架&#xff0c;并且是以一种可靠、高效、可伸缩的方式进行处理的&#xff0c;它具有以下几个方面的特性。 高可靠性。高效性。高可扩展性。高容错性。成本低。运行在Linux平台上。支持多种编程语言。 2. 分布…

【Linux课程学习】make/Makefile:Linux项目自动化构建工具

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f349;一.make/Makefile的理解&#xff1a; …

【我的 PWN 学习手札】House Of Karui —— tcache key 绕过手法

目录 前言 一、House of Karui 二、测试与模板 前言 早期版本的 tcachebin 由于毫无保护&#xff0c;导致攻击利用非常容易&#xff0c;成为重灾区。tcache dup&#xff0c;也即 tcachebin 中的 double free 利用手法&#xff0c;是攻击者常常选用的攻击方式。然而&#xf…

直通滤波-PassThrough Filter-原理-代码实现

前言 对坐标轴上的上下限进行约束&#xff0c;选取其中符合范围的点云区域使用场景&#xff1a;去除噪声点&#xff0c;关注特定区域&#xff0c;减小计算量 工作流程 假设我们要在 d d d 轴&#xff08; d ∈ { x , y , z } d \in \{x, y, z\} d∈{x,y,z} &#xff09;上…

【电路笔记】-运算放大器积分器

运算放大器积分器 文章目录 运算放大器积分器1、概述2、运算放大器积分器的表示2.1 理想积分器2.2 交流响应2.3 输出公式3、限制4、总结1、概述 在我们之前与运算放大器相关的大多数文章中,配置都是基于带有电阻器作为反馈环路、分压器或互连许多运算放大器的一部分的放大器。…

Redis数据结构之String字符串

二.String字符串 redis中的所有key都是字符串类型&#xff0c;只不过是value类型有差异。 redis中的字符串&#xff0c;直接就是按照二进制的方式存储的&#xff08;不会做任何的编码转换&#xff08;就好像mysql&#xff0c;它默认的字符集是拉丁文&#xff0c;插入中文就会…