当前位置: 首页 > article >正文

Linux下hadoop2.9.2单节点伪分布搭建完全教程

配置静态IP在实际应用中由于我们使用的是 DHCPDynamic Host Configuration Protocol 动态主机配置协议服务器来分配的地址那么每次重启DHCP 服务器 ip 地址有 可能是会变动的。 而我们用Linux 来搭建集群学习Hadoop 的话是希望 IP 固 定不变的因为有很多地方会涉及到 IP 地址的配置如果 IP 地址变化就会涉及 到很多相关地方的修改所以我们需要配置静态 IP那么具体如何进行配置呢查看网络信息配置静态IPvi /etc/sysconfig/network-scripts/ifcfg-ens33重启网络服务systemctl start network.service或者service network restart重启测试reboot检查网络ping www.baidu.comx-shell连接工具由于直接在 Linux 虚拟机上操作比较不方便所以我们选择使用第三方远程连接 工具 X-shell 远程连接到 Linux 虚拟机然后通过 X-shell 对 Linux 虚拟机进行 相关操作。下载安装X-Shell远程连接工具X-Shell远程连接Linux虚拟机打开 X-Shell 工具file——new——connection设置连接 然后选择Authentication配置用户名和密码设置账号密码在 Sessions 对话框选中刚刚创建的会话名称hadoop1FileZilla传输工具FileZilla 是一个免费开源的 FTP 软件可以轻松实现文件上传与下载。下载安装FileZillaFileZilla远程连接Linux虚拟机配置主机名和IP映射实际上无论是 IP 地址还是主机名都是为了标识一台主机或者服务器。IP 地址 就是一台主机上网时 IP 协议分配给它的一个逻辑地址主机名(hostname)就相 当于又给这台机器取了一个名字可以为主机取各种各样的名字。如果要用这个 名字去访问这台主机那么就需要配置hostname 与 IP 地址之间的对应关系。vi /etc/hostname写入hadoop1vi /etc/hosts写入192.168.249.161 hadoop1关闭Linux防火墙防火墙是对服务器进行保护的一种服务但是有时候这种服务会带来很大的麻 烦。比如它会妨碍集群间的相互通信所以就需要关闭防火墙。查看防火墙状态systemctl status firewalld关闭防火墙systemctl stop firewalld禁用防火墙开机不自动启动systemctl disable firewalld更换yum源由于centos7停止服务我们需要更换阿里YUM源1下载http://mirrors.aliyun.com/repo/Centos-7.repo文件到桌面2在/etc/yum.repos.d/目录下由于原有源全部失效我们全部删除,cd /etc/yum.repos.d rm -rf *3使用fileZilla将Centos-7.repo上传到/etc/yum.repos.d/4使用下载好的 repos 文件替换默认的 repos 文件mv Centos-7.repo CentOS-Base.repo5清理旧缓存数据缓存新数据yum clean all yum makecache测试安装wingetyum -y install wget能够顺利安装即代表配置完成创建Linux用户和用户组在 Hadoop 平台搭建过程中为了系统安全考虑一般不直接使用超级用户 root 而是需要创建一个新的用户和用户组。添加 hadoop 用户useradd hadoop配置密码123456passwd hadoopLinux SSH免密登录SSH(Secure Shell)是可以在应用程序中提供安全通信的一个协议通过 SSH 可 以安全地进行网络数据传输它的主要原理就是利用非对称加密体系对所有待 传输的数据进行加密保证数据在传输时不被恶意破坏、泄露或者篡改。但是 Hadoop 集群使用SSH 不是用来进行数据传输的而是在 Hadoop 集群启动和 停止的时候主节点需要通过 SSH 协议启动或停止从节点上面的进程。如果不配置 SSH免密登录对 Hadoop 集群的正常使用没有任何影响但是在启动和停止 Hadoop 集群的时候需要输入每个从节点的密码。可以想象一下当集群规模 比较大的时候比如达到成百上千节点的规模如果每次都要分别输入集群节点 的密码这种方法肯定是不可取的所以要对 Hadoop 集群进行 SSH免密登录的 配置。生成密钥对ssh-keygen -t rsa将 公 钥 文 件 id_rsa.pub 中 的 内 容 拷 贝 到 相 同 目 录 下 的 authorized_keys 文件中。cd .ssh/ cp id_rsa.pub authorized_keys切换到 hadoop 用户的根目录然后为.ssh 目录及文件赋予相应的权限。chmod 700 .ssh chmod 600 .ssh/*使用 ssh 命令登录 hadoop1第一次登录需要输入 yes 进行确认第二次以后登录则不需要此时表明设置成功ssh hadoop1JDK安装与配置由于 Hadoop 框架是由Java 语言开发并运行在 JVM 之上所以需要在Linux 中提 前安装 JDK 环境。另外安装 Hadoop 对 JDK 版本也有要求由于安装的 Linux 系统是 64 位的Centos7 系统所以需要安装与之相对应的 64 位 JDK 安装包。针 对 Linux 系统下的 JDK 具体版本可以选择目前比较稳定且常用的 JDK1.8 版本。下载JDK下载对应版本的 jdk-8u141-linux-x64.tar.gz安装包并上传至 hadoop1 节点 的/home/hadoop/app 目录下。2.8.2解压JDK在当前目录下使用 tar 命令对 JDK 进行解压具体操作如下所示。tar -zxvf jdk-8u141-linux-x64.tar.gz为了方便管理多版本 JDK使用 ln 命令创建 JDK 软连接具体操作如下所示。ln -s jdk1.8.0_141 jdk2.8.3配置JDK环境变量在 hadoop 用户下使用 vi 命令打开.bashrc 配置文件添加 JDK 环境变量具 体添加内容如下所示。vi~/.bashrc使用 source 命令执行.bashrc 文件JDK 环境变量才能生效具体操作如下所示。source~/.bashrc echo$JAVA_HOME如有路径输出即安装成功2.9.4检查JDK是否安装成功在 hadoop 用户下使用Java 命令查看 JDK 版本号具体操作如下所示。java -versionJava(TM)SERuntimeEnvironment(build1.8.0_141-b15)JavaHotSpot(TM)64-BitServerVM(build25.141-b15,mixedmode)如果打印的信息如上能查看到 JDK 版本号说明JDK 安装成功。Hadoop的安装与配置下载Hadoop下载对应版本的Hadoop安装包并上传至hadoop1节点的/home/hadoop/app 目录下解压Hadoop在当前目录下使用tar 命令解压Hadoop安装包具体操作如下所示。tar -zxvf hadoop-2.9.2.tar.gz为了方便管理多版本 Hadoop使用 ln 命令创建软连接具体操作如下所示。ln -s hadoop-2.9.2 hadoop配置Hadoop在 Hadoop 安装目录下进入到 etc/hadoop 目录修改 Hadoop 相关配置文件。1修改 core-site.xml 配置文件core-site.xml文件主要配置Hadoop的公有属性具体配置内容如下所示vi core-site.xmlconfiguration property valuehdfs://hadoop1:9000/value !--配置 hdfs NameNode 的地址9000 是 RPC 通信的端口-- /property property namehadoop.tmp.dir/name value/home/hadoop/data/tmp/value !--hadoop 的临时目录-- /property /configuration2修改 hdfs-site.xml 配置文件hdfs-site.xml文件主要配置跟HDFS相关的属性具体配置内容如下所示。configuration property namedfs.namenode.name.dir/name value/home/hadoop/data/dfs/name/value !--配置namenode 节点存储 fsimage 的目录位置-- /property property namedfs.datanode.data.dir/name value/home/hadoop/data/dfs/data/value !--配置 datanode 节点存储block 的目录位置-- /property property namedfs.replication/name value1/value !--配置 hdfs 副本数量-- /property property namedfs.permissions/name valuefalse/value !--关闭hdfs 的权限检查-- /property /configuration3修改 hadoop-env.sh 配置文件hadoop-env.sh 文件主要配置跟 Hadoop 环境相关的变量这里主要修改 JAVA_HOME 的安装目录具体配置内容如下所示。vi hadoop-env.sh找到exportJAVA_HOME 这一行修改为export JAVA_HOME/home/hadoop/app/jdk4修改 mapred-site.xml 配置文件mapred-site.xml 文件主要配置跟 MapReduce 相关的属性这里主要将 MapReduce 的运行框架名称配置为 YARN具体配置内容如下所示。vi mapred-site.xmlconfiguration property namemapreduce.framework.name/name valueyarn/value !--指定运行mapreduce 的环境为YARN-- /property /configuration5修改 yarn-site.xml 配置文件yarn-site.xml文件主要配置跟YARN 相关的属性具体配置内容如下所示。vi yarn-site.xmlconfiguration property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value !--配置NodeManager 执行 MR 任务的方式为 Shuffle 混洗-- /property /configuration6修改 slaves 配置文件slaves 文件主要配置哪些节点为 datanode 角色由于目前搭建的是 Hadoop 伪 分布集群所以只需要填写当前主机的hostname 即可具体配置内容如下所示。vi slaves写入主机名hadoop17配置 Hadoop 环境变量在 hadoop 用户下添加 Hadoop 环境变量具体操作如下所示。vi ~/.bashrc修改为JAVA_HOME/home/hadoop/app/jdk HADOOP_HOME/home/hadoop/app/hadoop CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH HADOOP_HOME使用 source 命令执行.bashrc 文件才能使 Hadoop 环境变量生效具体操作如 下所示。source ~/.bashrc hadoop version如果输出 hadoop 2.9.2 即成功8创建 Hadoop 相关数据目录在hadoop用户下创建Hadoop相关数据目录具体操作如下所示。mkdir -p /home/hadoop/data/tmp mkdir -p /home/hadoop/data/dfs/name mkdir -p /home/hadoop/data/dfs/data2.9.4启动Hadoop伪分布集群1格式化主节点 namenode在Hadoop安装目录下使用如下命令对NameNode进行格式化。bin/hdfs namenode -format注意第一次安装 Hadoop 集群需要对 NameNode 进行格式化Hadoop 集群安装 成功之后下次只需要使用脚本 start-all.sh 一键启动 Hadoop 集群即可。2启动 Hadoop 伪分布集群在Hadoop安装目录下使用脚本一键启动Hadoop集群具体操作如下所示。sbin/start-all.sh3查看 Hadoop 服务进程通过 jps 命令查看 Hadoop 伪分布集群的服务进程具体操作如下所示。jps输出2466 DataNode 2948 NodeManager 3271 Jps 2843 ResourceManager 2636 SecondaryNameNode 2366 NameNode如果服务进程中包含 Resourcemanager、Nodemanager、NameNode、DataNode 和 SecondaryNameNode 等 5 个进程这就说明 Hadoop 伪分布集群启动成功。4查看 HDFS 文件系统在浏览器中输入 http://hadoop1:50070/地址通过 web 界面查看 HDFS 文件系统 具体操作如图示。图 2-20 通过web 界面查看 HDFS 文件系统 备注在 windows 平台要用 hadoop1 访问必须在C:\Windows\System32\drivers\etc\hosts 文件中配置。图 2-21 在 hosts 文件中配置 ip 映射5查看 YARN 资源管理系统在浏览器中输入 http://hadoop1:8088/地址通过 web 界面查看 YARN 资源管理系 统具体操作如图所示。2.9.5测试运行Hadoop伪分布集群Hadoop 伪分布集群启动之后我们以Hadoop 自带的WordCount 案例来检测Hadoop 集群环境的可用性。1查看 HDFS 目录在HDFS shell中使用ls命令查看HDFS文件系统目录具体操作如下所示。bin/hdfs dfs -ls /由于是第一次使用HDFS 文件系统所以 HDFS 中目前没有任何目录和文件。2创建 HDFS 目录在 HDFS shell 中使用 mkdir 命令创建 HDFS 文件目录/test具体操作如下所示。bin/hdfs dfs -mkdir /test3准备测试数据集在Hadoop根目录下新建words.log文件并输入测试数据具体操作如下所示。vi words.log写入以下内容hadoop hadoop hadoop spark spark spark flink flink flink4测试数据上传至 HDFS使用put命令将words.log文件上传至HDFS的/test 目录下具体操作如下所示。bin/hdfs dfs -put words.log /test5运行 WordCount 案例使用 yarn 脚本将 Hadoop 自带的 WordCount 程序提交到 YARN 集群运行具体操作 如下所示。bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /test/words.log /test/out6查看作业运行状态在浏览器中输入 http://hadoop1:8088/地址通过 web 界面查看 YARN 中作业运行 状态具体操作如图所示。图 2-23 通过web 界面查看 YARN 中作业运行状态如果在 YARN 集群的 Web 界面中查看到 WordCount 作业最终的运行状态为 SUCCESS就说明 MapReduce 程序可以在 YARN 集群上成功运行。7查询作业运行结果使用cat命令查看WordCount作业输出结果具体操作如下所示。bin/hdfs dfs -cat /test/out/*会输出flink 3 hadoop 3 spark 3如果 WordCount 运行结果符合预期值说明 Hadoop 伪分布式集群已经搭建成功

相关文章:

Linux下hadoop2.9.2单节点伪分布搭建完全教程

配置静态 IP 在实际应用中,由于我们使用的是 DHCP(Dynamic Host Configuration Protocol: 动态主机配置协议)服务器来分配的地址,那么每次重启DHCP 服务器 ip 地址有 可能是会变动的。 而我们用Linux 来搭建集群学习Ha…...

OpenClaw 技能插件开发实战:适配职业教育的 AI 实训案例

一、前言随着人工智能技术在职业教育领域的深度渗透,传统AI实训模式逐渐暴露出诸多痛点:实训内容脱离企业真实应用场景、学生上手门槛高、实训平台功能固化难以拓展、缺乏可落地的实战化开发任务,难以满足职教领域“岗课赛证”融合的人才培养…...

【Docker】Linux系统上卸载旧Docker、卸载Podman并重新安装Docker及配置国内镜像源

一、卸载 Podman 可以使用如下命令卸载 Podman dnf remove -y podman buildah 二、卸载旧版本 Docker 若系统中已存在旧版 Docker,请按以下步骤彻底卸载: 1.停止Docker服务 sudo systemctl stop docker 2. 卸载 Docker 相关软件包 sudo yum remov…...

halcon5_1

图像采集助手-Image Aequisition 1.配置相机IP 和巨型帧等 2.通过海康MVS软件 找到 对应halcon 版本 下载MVS https://www.hikrobotics.com/cn/machinevision/service/download/?module0 3. 找到对应halcon版本的 海康相机三方配置文件 4.找到Halocn文件目录 粘贴上图文…...

Vue3+Vue-Router项目在Edge浏览器无法最小化问题

补充: 不同环境的情况不一样,可参考:https://github.com/vuejs/router/issues/2644 ---------------------------------------------------------------------------- 已有大佬排查并解决了该问题: https://blog.csdn.net/u01…...

C/C++数据结构与算法(第二弹)

目录 栈和队列 1.栈 1.1栈的概念以及结构 1.2栈的实现 2.队列 2.1队列的概念以及结构 2.2队列的实现 3.栈和队列OJ题 1. 括号匹配问题。OJ链接 2. 用队列实现栈。OJ链接 3. 用栈实现队列。OJ链接 4. 设计循环队列。OJ链接 二叉树 1.树概念以及结构 1.1树的概念 …...

(75页PPT)TPM自主保养概论(附下载方式)

篇幅所限,本文只提供部分资料内容,完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/92608801 资料解读:《(75页PPT)TPM自主保养概论》 详细资料请看本解读文章的最后内容。 本文旨在系统性…...

数据治理(一)

数据治理的介绍及作用 数据治理:是运用专业方法和技术手段理清企业的数据资产并开展治理工作,是围绕将数据作为企业资产而开展的一系列的具体化工作。 作用:保证数据的可信可靠可用,满足业务对数据质量和数据安全的系列举措。 框…...

[Redis小技巧10]深入 Redis Stream:从原理到生产级实践

一、Stream 是什么?为什么需要它? Redis Stream 是 Redis 5.0 引入的一种持久化、可追加、支持消费者组的消息队列数据结构。它解决了传统 LIST(缺乏消息确认)和 PUB/SUB(非持久化、无重试机制)在构建可靠消…...

基于A* 算法的无人机三维路径规划:MATLAB实现之旅

基于A* 算法的无人机三维路径规划算法,MATLAB编程实现。在无人机应用日益广泛的今天,高效的路径规划算法至关重要。A 算法凭借其在寻找最优路径方面的出色表现,成为众多路径规划场景中的热门选择。本文就来聊聊基于A 算法的无人机三维路径规划…...

PID 和 LQR 主动悬架模型对比:探索汽车平顺性的优化之路

【PID和LQR主动悬架模型对比】分别建立了PID控制和LQR控制的的主动悬架模型,比较两种控制器的控制效果。 以悬架主动力为控制目标,输入为B级随机路面,输出为车身垂向加速度、俯仰角加速度、悬架动挠度等平顺性评价指标,可做汽车平…...

探索一维光子晶体态密度案例:从理论到代码实现

一维光子晶体态密度案例在光子学领域,一维光子晶体态密度是一个极为有趣且重要的研究方向。它不仅有助于我们深入理解光子在周期性结构中的行为,还为诸如滤波器、波导等光学器件的设计提供了理论基础。 一维光子晶体理论基础 一维光子晶体,简…...

探索 10KV 级联 H 桥并网系统:性能与控制的奇妙之旅

级联H桥并网 10KV。 每相12个H桥,单个H桥直流电压为850V,采用电流闭环控制。 为了测试系统控制性能效果,在1s时,控制输出电流从2000A下降到1500A,控制效果好,电流电压无超调,网侧电流THD只有0.3…...

风光储柴直流微电网的并离网切换模型与技术实现

风光储柴直流微电网可并离网切换 含: 1.永磁直驱风机+mppt+整流+并网逆变 mppt采用扫描搜索法 整流采用转速外环电流内环双闭环控制 并网逆变采用电压外环电流内环控制 满功率运行 2.PV+mppt+boost+并网逆变…...

研究flow3d模拟选区激光熔化Inconel 718制件内部缺陷的形成机理,优化工艺参数,从...

研究flow3d模拟选区激光熔化Inconel 718制件内部缺陷的形成机理,优化工艺参数,从而得到具有优良性能的产品。 SLM成形过程中存在许多复杂的物理现象,如 粉末层的吸收率、熔池的熔化与凝固、因表面张力引起的马兰格尼对流效应和由于材料达到沸…...

COMSOL波在可变折射率光纤中的传播

comsol波在光纤中得传播,可变折射率光纤光纤通信系统的性能很大程度上取决于光在纤芯中的传输特性。对于渐变折射率光纤而言,其纤芯折射率呈现非均匀分布,这种结构能有效减小模式色散。在COMSOL中实现这类仿真时,有个特别有意思的…...

雷达图像分辨率不够糊成一团?Music算法直接给你整出高清无码!这玩意儿在阵列信号处理里原本用来估计波达方向,但用在雷达成像上简直就是物理外挂

matlab的Music算法,可用于雷达超分辨成像,提高图像分辨率先搞点基础姿势:雷达回波数据本质上就是个协方差矩阵。老司机们都知道,这矩阵藏着信号子空间和噪声子空间的小秘密。咱们用MATLAB玩这个,先得把数据矩阵收拾明白…...

光伏MPPT电导增量法仿真模型及配套视频

光伏MPPT-电导增量法-仿真模型,有配套video光伏系统里MPPT算法就像个"追光者",得实时捕捉最大功率点。电导增量法(Incremental Conductance)这招挺有意思,它不像扰动观测法(PBO)那样无…...

Minimind项目源码详细解析(2)Attention机制

Attention机制代码详细解析 既然大家开始看LLM相关了内容了,那么大家一定对attention机制有了一定的了解,在此我就不对attention机制进行过于细致的讲解了,在此主要讲解一些具体实现和一些扩展 attention机制简要讲解 在大语言模型里&#xf…...

给 OpenClaw 龙虾搭了一间像素办公室:一眼看懂 Agent 在忙什么

简而言之:Star-Office-UI 就是给 OpenClaw(龙虾)配的一间"像素办公室"。 平时我们看 Agent 在干嘛,多半只能盯着日志滚动;而它把这些"看不见的状态",变成了办公室里角色的位置、动作和…...

鸿蒙常见问题分析四十二:PanGesture拖动手势eventOffset为空

一个“拖不动”的组件引发的调试困局这周,团队里的小张在为一个工具类应用开发一个可自由拖拽的“悬浮球”功能。这个悬浮球可以放在屏幕任意位置,方便用户快速启动常用操作。为了实现流畅的拖拽,他毫不犹豫地选择了PanGesture(拖…...

跨微服务的“数据孤岛”解法:利用声明式 API 构建去中心化的数据联邦

在领域驱动设计(DDD)和微服务架构的演进中,**“每个微服务拥有独立数据库(Database-per-service)”**被奉为圭臬。这一原则从物理层面实现了业务边界的隔离,使得订单服务(Order Service&#xf…...

【C++】STL详解(三)—vector使用手册:不看你会后悔

存储方式: 与数组一样,vector 使用 连续内存空间 存储元素,因此可以通过下标随机访问,时间复杂度为 O(1)。动态扩容: 与普通数组不同,vector 的大小可以动态改变。当空间不足时,会分配新的更大内…...

Qt之屏幕录制实战:从原理到GIF生成(十六)

1. 从零开始:为什么用Qt做屏幕录制? 大家好,我是老张,一个在Qt和音视频领域摸爬滚打了十来年的老码农。今天想和大家聊聊一个既实用又有趣的话题:用Qt来做一个屏幕录制工具,并且直接生成GIF动图。你可能用过…...

通关Flexbox Froggy:从justify-content到align-content的实战布局指南

1. 从游戏到实战:为什么Flexbox Froggy是你的布局启蒙老师 嘿,前端新手朋友们,是不是经常被网页上那些复杂的布局搞得头大?想让元素乖乖听话,居中、对齐、均匀分布,结果写出来的CSS代码却像一团乱麻。别担心…...

C#实战:Windows蓝牙控制与设备指定连接(避坑指南)

1. 从需求到代码:为什么我们需要程序化控制蓝牙? 大家好,我是老张,一个在Windows桌面开发领域摸爬滚打了十多年的老码农。今天想和大家聊聊一个听起来简单、做起来却处处是坑的需求:用C#程序自动控制Windows的蓝牙开关…...

07_微Skills哲学:为什么小而美的Skill组合比一个大Skill强

在 Skills 的使用实践中,存在一种极具迷惑性的直觉:既然 Skill 是用来封装完整业务逻辑的,那就应该封装得越完整越好。于是有人把一个销售全流程——从意图识别、产品推荐、报价生成到跟进提醒——全部塞进一个 SKILL.md 文件。结果这个 Skil…...

【Dify异步安全架构白皮书】:20年SRE亲授自定义节点零信任异步处理的5层防御体系

第一章:Dify自定义节点异步安全架构全景概览Dify 的自定义节点(Custom Node)机制为工作流编排提供了高度可扩展的能力,而其底层异步安全架构则确保了节点在高并发、多租户、跨服务调用场景下的数据隔离性、执行时序可控性与资源边…...

Supervisor 实战指南:从安装到进程管理

1. 初识Supervisor:你的进程“贴身管家” 如果你在Linux服务器上跑过一些自己写的脚本、Web服务或者定时任务,肯定遇到过这样的烦恼:程序在终端前台跑得好好的,一关掉SSH窗口或者终端不小心断开,进程就跟着挂了。或者程…...

Mybatis驼峰映射的实战配置、原理剖析与源码追踪

1. 从零开始&#xff1a;实战配置驼峰映射的四种姿势 相信很多刚开始用 Mybatis 的朋友都遇到过这个场景&#xff1a;数据库表字段是 user_name、create_time 这种带下划线的命名&#xff0c;但 Java 实体类里我们习惯用 userName、createTime 这种驼峰式。每次写结果映射 <…...