分享好友 最新动态首页 最新动态分类 切换频道
Hadoop(01) Hadoop3.3.6安装教程,单机/伪分布式配置
2024-12-27 05:42

在安装 Hadoop 3.3.6 前,需要满足以下前置条件

  1. Java Development Kit (JDK):Hadoop 是用 Java 编写的,因此需要安装并配置适当版本的 JDK。Hadoop 3.3.6 建议使用 JDK 8 或更高版本。确保正确安装 JDK,并设置 JAVA_HOME 环境变量。

  2. SSH:Hadoop 集群中的节点需要通过 SSH 进行通信和管理。确保在所有节点上安装和配置了 SSH,并且可以通过 SSH 无密码登录到集群的各个节点。

  3. 网络设置:确保 Hadoop 集群的所有节点能够相互通信。节点之间应该具有稳定的网络连接,并且可以通过主机名或 IP 地址进行互相访问。

  4. 硬件要求:根据实际需求,为 Hadoop 集群中的节点分配足够的计算资源(CPU、内存、磁盘空间等)。确保每个节点都具备足够的硬件资源来支持预期的工作负载。

  5. 操作系统:Hadoop 3.3.6 支持运行在多种操作系统上,包括 Linux、Windows 和 macOS。选择适合你环境的操作系统,并满足相应的操作系统要求。

  6. 配置管理工具(可选:为了更方便地管理和配置 Hadoop 集群,你可以选择使用一些配置管理工具,如 Apache ZooKeeper、Apache Ambari 等。这些工具可以简化集群配置和管理的过程。

可以,进行安装JDK和MySQL。必须要在Master和Slave节点上都要安装JDK和MySQL才可以。

注意:在hadoop用户下按照前面教程在.bashrc文件中设置JAVA_HOME。

二、创建hadoop用户并赋予root权限

可以,新建一个名为 hadoop的 用户,同时为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题。

在安装Debian系统的时候,一般会设置一个特权账号root,和一个非特权账户(我的是hongpon316,但为了方便后续的操作。此处再新建一个名为“hadoop”的用户,后续 hadoop用 户专门用来实现无密码SSH登录。

新建用户完成之后,需要测试 hadoop 用户是否具有了超级管理员权限。

因为 Hadoop 集群的各个节点需要通过 SSH 进行通信和管理,例如启动和停止服务、复制文件等操作。因此,必须要让Master节点可以SSH无密码登录到各个Slave节点上。

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令,Debian 默认已安装了 SSH client,此外还需要安装 SSH server

 

在安装了以后就可以使用 ssh localhost 登陆到本机,但是会出现让输入密码的过程。

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先退出刚才的 ssh(exit),就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中

 

~的含义: 在 Linux 系统中,~ 代表的是用户的主文件夹,即 "/home/用户名" 这个目录,如你的用户名为 hadoop,则 ~ 就代表 "/home/hadoop/"。 此外,命令中的 # 后面的文字是注释,只需要输入前面命令即可。 

官网下载Hadoop3.3.6的安装包,。

下载成功后使用xftp,将文件传到Debian系统中的software目录下备用 。

使用命令sudo tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local/将该文件解压到/usr/local/文件夹下面。

切换到/usr/local后,使用命令sudo chown -R hadoop https://blog.csdn.net/weixin_38735917/article/details/hadoop-3.3.6 ,用来将目录  及其所有子目录和文件的所有权赋予用户  。

使用命令: 

 

如果 Hadoop 安装正确并设置了正确的环境变量,它将显示 Hadoop 的版本信息,请必须确保你位于正确的 Hadoop 安装目录下,并且具有执行权限来运行  命令。

请务必注意命令中的相对路径与绝对路径,本文后续出现的 , 等包含 https://blog.csdn.net/weixin_38735917/article/details/ 的路径,均为相对路径,以 /usr/local/hadoop 为当前目录。

例如在 /usr/local/hadoop 目录中执行  等同于执行 。可以将相对路径改成绝对路径来执行,但如果你是在主文件夹 ~ 中执行 ,执行的会是 ,就不是我们所想要的了。 

为了可以使系统能够在任何目录下都能直接运行Hadoop的可执行文件,即hadoop、hdfs等命令,需要完成PATH变量配置。

具体而言,命令用于设置环境变量,是一个特殊的环境变量,用于指定系统在哪些目录中查找可执行文件。通过将Hadoop所在的和目录添加到中,系统就能够在运行命令时自动搜索并找到Hadoop的可执行文件。

 
 

然后在该文件的最上面输入以下的内容: 

 

最后一行是在原有配置JAVA_HOME的PATH路径(在上面JDK的配置中的PATH配置)的基础上,增加了$HADOOP_HOME/bin:$HADOOP_HOME/sbin:的路径,然后保存退出: 

 保存后执行命令“source ~/.bashrc”,使配置生效。

 
 

参数说明

  1. :设置环境变量,将其指向Hadoop安装的根目录。

  2. :设置环境变量,指向Hadoop MapReduce组件的安装目录,这里与相同。

  3. :设置环境变量,指向Hadoop Common组件的安装目录,这里与相同。

  4. :设置环境变量,指向Hadoop HDFS组件的安装目录,这里与相同。

  5. :设置环境变量,指向Hadoop YARN组件的安装目录,这里与相同。

  6. :设置环境变量,指向Hadoop本地库文件的路径,这里是Hadoop安装目录下的目录。

  7. :设置环境变量,用于配置Hadoop的Java虚拟机选项。这里将属性设置为Hadoop安装目录下的目录,以便Java虚拟机能够正确加载Hadoop所需的本地库文件。

  8. :将Hadoop和Java的可执行文件路径添加到环境变量中,以便系统可以在任意位置执行Hadoop和Java的命令。这里包括Java的和目录,以及Hadoop的和目录。

Hadoop 的单机模式是一种在单个节点上运行 Hadoop 的模式,是Hadoop 默认模式,用于本地开发、测试和学习目的。

在单机模式下,Hadoop 不会构建分布式集群,而是在单个节点上模拟分布式环境,无需进行额外的配置即可运行 Hadoop。非分布式即单 Java 进程,方便进行调试

运行Hadoop单机实例

现在我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行  可以看到所有例子,包括 wordcount、terasort、join、grep 等。

在此我们选择其中的一个实例来运行即可(grep,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

 
 

注意,Hadoop 默认不会覆盖结果文件,因此如果想再次运行上面实例会提示出错,需要先将  删除。

 
 

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

Hadoop 的配置文件位于 /usr/local/hadoop-3.3.6/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

切换目录到cd /usr/local/hadoop-3.3.6/etc/hadoop/

①修改core-site.xml

原始core-site.xml

修改后的core-site.cml

 

参数说明

  1. :指定了 Hadoop 临时目录的路径。临时目录被设置为 。临时目录用于存储 Hadoop 运行时产生的临时文件,如本地数据块、中间结果等。

  2. :指定了默认的文件系统的 URI。文件系统 URI 被设置为 ,表示使用 Hadoop 分布式文件系统(HDFS)作为默认文件系统,并且 HDFS 的 Namenode 服务器运行在本地主机的端口 9000 上。

②修改hdfs-site.xml 文件

原始的hdfs-site.xml文件

修改后的hdfs-site.xml文件

 
 
Hadoop的配置文件说明 

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

此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此,不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

③配置完成后,执行 NameNode 的格式化

 

如果成功则会显示如下的内容

如果显示如下的内容

如果已经,还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,那么,请到hadoop的安装目录修改配置文件“/usr/local/hadoop-3.3.6/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次启动Hadoop。 

④开启 NameNode 和 DataNode 守护进程

以上的日志中包含一个警告WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 表示无法加载与自己的平台兼容的本机Hadoop库。不过,Hadoop将使用内置的Java类来代替。 WARN 提示可以忽略,并不会影响正常使用。

现在,Hadoop分布式文件系统已经成功启动,可以使用Hadoop进行数据处理和分析。

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。此处的localhost替换为自己虚拟机系统的地址即可。

运行Hadoop伪分布式实例  

在上面的单机模式实例中,grep 例子读取的是本地数据。而伪分布式读取的则是 HDFS 上的数据。要想使用 HDFS,首先需要在 HDFS 中创建用户目录

①创建用户目录
 
 

注意: 教材《大数据技术原理与应用》的命令是以"https://blog.csdn.net/weixin_38735917/article/details/bin/hadoop dfs"开头的Shell命令方式,实际上有三种shell命令方式。

  1. hadoop fs
  2. hadoop dfs
  3. hdfs dfs

hadoop fs:适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
hadoop dfs:只能适用于HDFS文件系统
hdfs dfs:跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统。

 、 和  命令实际上是指相同的命令,用于与 Hadoop 分布式文件系统(HDFS)进行交互。这些命令是 Hadoop 提供的命令行工具,用于管理和操作 HDFS 上的文件和目录。

在早期版本的 Hadoop 中, 和  是等效的,都用于执行文件系统操作。后来,为了更好地反映操作对象是分布式文件系统,官方推荐使用  命令来代替。

所以, 和  可以视为过时的命令,而  是推荐的用于与 HDFS 交互的命令。

②将 https://blog.csdn.net/weixin_38735917/article/details/etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中

即将 /usr/local/hadoop-3.3.6/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:

 
 
③执行
 
 
⑤可以将运行结果取回到本地
 
 

如果想要再次执行相同的命令  https://blog.csdn.net/weixin_38735917/article/details/bin/hadoop jar https://blog.csdn.net/weixin_38735917/article/details/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+' ,就会产生错误。

Hadoop 运行程序时,输出目录不能存在,否则会提示错误 "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists" ,因此若要再次执行,需要执行如下命令删除 output 文件夹: 

 

运行程序时,输出目录不能存在: 运行 Hadoop 程序时,为了防止覆盖结果,程序指定的输出目录(如 output)不能存在,否则会提示错误,因此运行前需要先删除输出目录。在实际开发应用程序时,可考虑在程序中加上如下代码,能在每次运行时自动删除输出目录,避免繁琐的命令行操作

 

若要关闭 Hadoop,则运行.

 

注意: 下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行  就可以

在平时的学习中,我们使用伪分布式就足够了。如果需要安装 Hadoop 集群,请查看

Hadoop3.3.5安装教程_单机/伪分布式配置_Hadoop3.3.5/Ubuntu22.04(20.04/18.04/16.04)_厦大数据库实验室博客 (xmu.edu.cn)

最新文章
竞价代运营是什么服务?揭秘其服务内容与核心优势!
大家好!今天我们来聊聊一个在现代营销中越来越热门的话题竞价代运营。作为一名在这个行业摸爬滚打多年的技术人员,我深知企业在营销过程中面临的种种挑战,而竞价代运营正是解决这些问题的利器。接下来,我将详细解析竞价代运营的服务内容
目前人最多的mmo手游有哪些 2023热门mmo游戏大全
目前人最多的mmo手游有哪几款?小编经过一段时间的数据收集,总结出以下几个玩家众多的mmo游戏,这几款游戏的受欢迎程度都非常高,无论是从画质方面分析,还是从游戏本身的剧情入手,在同类游戏中,它们在各方面都是不落后的,注意满足挑剔
素雅型应届毕业生个人简历表格模板(BG10210)
下载的简历模板是什么格式的?所有的简历模板都是Word格式的文件,.doc/.docx后缀名。下载的简历模板是否可以修改?所下载的简历模板均可以全元素修改,编辑。全元素是指模板的所有内容,如文字、标题、图标、背景色、照片等等,这些均可以
超融合HCI
更新日期:2022年 9月 22日前言本协议由深信服提供,与您共同签署。请您务必审慎阅读、充分理解本协议全部条款内容,特别是免除或者限制深信服责任的条款、对您的权利进行限制的条款、约定争议解决方式和司法管辖的条款等,以及针对性或专
选择媒体新闻代发公司需考虑的关键要素
选择媒体新闻代发公司的关键要素:确保新闻稿传递价值?在选择媒体新闻代发公司时,确保新闻稿能够传递价值是至关重要的。(媒介星软文平台)表示以下是一些关键要素,有助于选择到合适的代发公司:一、公司信誉与口碑查看客户评价:通过查看代发公
(13670期)2024新版 生意参谋教程,洞悉市场商机与竞品数据, 精准制定运营策略
课程目录[2024]新版生意参谋升级全面解读特训课_前言.mp4[2024]新版生意参谋升级全面解读特训课_1.0全新生意参谋升级背景.mp4[2024]新版生意参谋升级全面解读特训课_2.0四大重点解读.mp4[2024]新版生意参谋升级全面解读特训课_3.1分析店铺
蓝牙耳机一定要做CE认证吗?RED认证又是什么?
蓝牙耳机必须做CE认证吗?RED认证又是什么?蓝牙版本市面上有 V2.0/2.1/3.0/4.0,应用在蓝牙耳机时也有所差异。v2.1 不仅多了支持立体声音效,在稳定度及效果上也有较好的表现,并且可以向下兼容 v2.0 版本。此外,具备蓝牙功能的手机和耳
常州到山南琼结县物流公司--货运专线直达往返「-「哪个好」」2025排名一览
常州到山南琼结县物流公司--货运专线直达往返「-「哪个好」」2025排名一览常州到山南琼结县物流公司--货运专线直达往返「-「哪个好」」2025排名一览微信和电话号同步常州物流公司欢迎您==常州到山南琼结县-货运专线直达往返需要走几天公司
羞羞漫画免费观看——热门漫画实时更新,精彩内容看不停
在当今数字化的时代,漫画作为一种受欢迎的娱乐形式,吸引了无数读者的喜爱。而对于喜欢漫画的人来说,能够免费观看最新、最热门的漫画内容是一种极大的享受。今天,我将为大家介绍一款提供免费观看热门漫画的应用程序,让你随时随地都能沉
Vivo手机如何解锁Bootloader
如何解锁vivo手机的bootloader:详细步骤与注意事项在智能手机的世界里,bootloader(bl)解锁是进行定制和深度修改的第一步。对于vivo手机用户来说,解锁bootloader可以带来许多好处,比如刷入第三方rom、获取权限以及解锁更多隐藏功能。
相关文章
推荐文章
发表评论
0评