hadoop伪分布式配置(单机)

article/2025/6/21 3:41:28

前言

        伪分布式模式(Pseudo-Distributed Mode)是Hadoop的一种运行模式,适用于模拟一个小规模的集群环境,主要用于开发和测试。

        伪分布式模式是指在单台机器上模拟多台服务器的工作环境,Hadoop的守护进程(如NameNode、DataNode、JobTracker、TaskTracker等)都在同一台机器上运行,但相互独立。

        设置Hadoop参数的主要方式是配置一系列由Hadoop守护进程和客户端读取的配置文件,如之前提及的hadoop-env.sh,还包括core-site.xml、hdfs- site.xml、mapred-site.xml、log4j.properties、taskcontroller.cfg等,伪分布式需要修改四个文件,修改的顺序没有特殊要求

环境要求:jdk1.8,hadoop3.4 ,将java和hadoop环境加入系统环境变量中

部署

一、配置ssh公私钥

Hadoop 的启动和管理(如 start-dfs.shstart-yarn.sh)需要 主节点(Master)通过 SSH 远程登录到所有工作节点(Workers) 来启动守护进程(如 DataNode、NodeManager)。

ssh localhost  #此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码,本机root密码
exit             # 退出刚才的 ssh localhost
cd ~/.ssh/       # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa   # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys    # 加入授权

二、修改hadoop的配置文件

1. 查看jdk和hadoop的版本,要先将jdk和hadoop下载在本地

2. core-site.xml是Hadoop集群的核心配置文件,包含 了 Hadoop 全局级别的配置设置。配置该文件

常见配置

Ø fs.default.name:指定HDFS的NameNode的URI,包括协议、主机名和端口号。这是集群中每一台机器都需要知道的NameNode地址,DataNode和独立的客户端程序都通过这个URI与NameNode交互。
Ø hadoop.tmp.dir:Hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置NameNode和DataNode的存放位置,默认就放在这个路径下。
Ø io.file.buffer.size:指定文件读写时使用的缓冲区大小。
Ø fs.trash.interval:清理回收站的间隔,单位为分钟,默认为0,表示hdfs里删除的文件不会进入回收站,而是直接删除,可以按需修改
 cd /usr/local/hadoop/cd etc/hadoop/pwdcp  core-site.xml core-site.xml.bak  #防止文件写入错误vim core-site.xml #文件内容
<configuration><!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>tail -12 core-site.xml

3. hdfs-site.xml 是 HDFS 的特定配置文件,包含了与HDFS 相关的配置设置。配置该文件。

常见配置:
Ø dfs.replication:决定HDFS中文件块的数据备份个数。对于一个实际的应用,通常设为3,以保证数据的可靠性。少于三个的备份可能会影响到数据的可靠性(系统故障时,可能会造成数据丢失)。
Ø dfs.name.dir:NameNode存储Hadoop文件信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用它。
Ø dfs.data.dir:DataNode在本地磁盘存放block的位置,可以是以逗号
分隔的目录列表。DataNode循环向磁盘中写入数据,每个DataNode可单独指定与其它DataNode不一样的存储路径。
Ø dfs.namenode.http-address:指定 NameNode 的 HTTP 地址。
Ø dfs.permissions.enabled:启用或禁用 HDFS 的权限查。
Ø dfs.namenode.handler.count:NameNode用来处理来自DataNode的RPC请求的线程数量。建议设置为DataNode数量的10%,一般在10~200个之间。
Ø dfs.datanode.handler.count:DataNode用来连接NameNode的RPC请求的线程数量,取决于系统的繁忙程度。设置太小会导致性能下降甚至报错。
Ø dfs.datanode.max.xcievers:DataNode可以同时处理的数据传输连接数。默认值通常是256,但根据集群的规模和需求,可能需要调整这个值。
vim hdfs-site.xml 
#文件内容,加在文章末尾</property>
<!-- 指定Hadoop名称节点主机配置 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name><value>master:50090</value>
</property>tail -12 hdfs-site.xml

4.配置文件, yarn-site.xml是YARN的配置文件,它包含了YARN的各种配置信息,如ResourceManager的地址、NodeManager的资源配置、日志级别、任务调度器等。

常见配置:

Ø yarn.resourcemanager.hostname:指定 ResourceManager 的主机名。
Ø yarn.nodemanager.aux-services:指定YARN节点管理器所使用的辅助服务。
Ø yarn.log-aggregation-enable:设置为true时,YARN将启用日志聚合功能。这意 味着,运行完成的Container或任务的日志将被上传到HDFS(Hadoop分布式文件系统)上,而不是保存在各个NodeManager的本地磁盘上。这一功能有助于减轻NodeManager的负载,并提供一个中央化的存储和分析机制,使得用户可以更方便地查看和管理日志。
Ø yarn.log-aggregation.retain-seconds: 用于指定这些聚合后的日志在HDFS上保存的时间,单位为秒。超过这个时间后,系统将自动删除这些日志,以节省存储空间。
Ø yarn.resourcemanager.address:ResourceManager暴露给Client的地址,Client可以利用这个地址向ResourceManager提交应用程序,也可以用来杀死某个应用程序等。
Ø yarn.resourcemanager.scheduler.address:ResourceManager暴露给ApplicationMaster的访问地址,ApplicationMaster可以通过该地址从ResourceManager处申请和释放资源。
Ø yarn.resourcemanager.resource-tracker.address:ResourceManager暴露给NodeManager的地址,NodeManager可以通过该地址向ResourceManager发送心跳,也可以拉取到待执行的任务。
Ø yarn.nodemanager.resource.memory-mb:NodeManager的可用物理内存总量。这个参数一旦被设置,在YARN的整个运行过程中不允许被动态修改。
Ø yarn.nodemanager.vmem-pmem-ratio:用于设置一个比例,即每使用1MB的物理内存最多可以用多大的虚拟内存。
Ø yarn.nodemanager.resource.cpu-vcores:NodeManager的可用虚拟CPU总数。
 vim yarn-site.xml 
#文件内容
<!-- Site specific YARN configuration properties --><!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>tail -12 yarn-site.xml

5. 配置文件,mapred-site.xml是Apache Hadoop中用于配置MapReduce框架的文件。

常见配置:

Hadoop2.X并没有像1.X提供mapred-site.xml文件,需要将样本文件复制为可使用的配置文件:
Ømv mapred-site.xml.template mapred-site.xml  ,Hadoop3.X已经提供mapred-site.xml文件,本文所使用的为hadoop3.x。
Ømapreduce.jobtracker.address:指定 JobTracker 的地址和端口号。
Ømapreduce.framework.name:指定 MapReduce 框架的实现。对于 Hadoop 2.x,通常使用 YARN 作为资源管理器,因此设置为 yarn
Ømapreduce.map.memory.mb 和mapreduce.reduce.memory.mb:分别设置 Map 和Reduce 任务的内存大小(以 MB 为单位)
Ømapreduce.map.java.opts 和mapreduce.reduce.java.opts:设置 Map 和Reduce 任务的 JVM 选项。

vim mapred-site.xml 
#文件内容<!-- 指定MR运行在Yarn上 --> 
<property> 
<name>mapreduce.framework.name</name>  <value>yarn</value></property><property><name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property> 
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property> 
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>tail -20 mapred-site.xml

6、分别在以下3个配置文件(hadoop-env.sh和yarn-env.sh、mapred-env.sh)的最末尾添加java的环境变量。

6.1 hadoop-env.sh文件包含以下主要环境变量:

Ø JAVA_HOME:指定Java运行环境的位置。
Ø HADOOP_LOG_DIR:设置日志文件的存储位置。
Ø HADOOP_HEAPSIZE:设置Hadoop进程的堆内存大小。
Ø HADOOP_PID_DIR:指定进程ID文件的存储位置。
6.2 yarn-env.sh是Apache Hadoop YARN(YetAnother Resource Negotiator)的一个配置文件,主要用于定义YARN运行时的环境变量。这个文件在Hadoop的安装目录下的etc/hadoop目录
中可以找到。
 
6.3 mapred-env.sh 主要配置项:
Ø 设置JAVA_HOME:指定Java运行环境的路径。
Ø 设置HADOOP_JOB_HISTORYSERVER_HEAPSIZE:定义JobHistoryServer进程的内存大小。
Ø 设置日志级别:通过HADOOP_MAPRED_ROOT_LOGGER配置日志记录的详细程度。
cd /usr/local/java/jdk1.8.0_451/
pwd
cd -
vim hadoop-env.sh 
tail -1  hadoop-env.sh 
#文件内容,在配置文件最末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_451
vim yarn-env.sh 
tail -1  yarn-env.sh 
#文件内容,在配置文件最末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_451
vim mapred-env.sh 
tail -1 mapred-env.sh 
#文件内容,在配置文件最末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_451

7. 编辑hadoop文件下的worker文件。通过在workers文件中列出这些节点的主机名或IP地址,可以控制哪些节点参与集群中的数据处理任务。

#修改workers,添加主机
sudo vim  usr/local/hadoop/etc/hadoop/workers
#删除其中默认的localhost,改为master
#注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

8. 配置hosts文件

vim /etc/hosts
cat /etc/hosts
#文件内容
#127.0.0.1 localhost
127.0.0.1 hadoop
127.0.1.1 master  #主要修改这一行# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

9. 定义root用户操作,将hadoop的环境变量添加到系统当中,定义root用户操作hdfs namenode等服务

注意:真实环境中,尽量不要使用root用户操作对应服务, 会造成安全隐患.应该如单机模式中那样,定义普通用户来 管理操作
#定义root用户操作hdfs namenode等服务,
vim /etc/profile
#将以下内容写入配置文件profile末尾,并让修改后的文件生效。
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
#保存退出后,运行source /etc/profile

三、格式化hadoop

更改配置并保存后,格式化HDFS的NameNode,在这一步之前,如果hdfs-site.xml中
dfs.namenode.name.dir属性指定的目录不存在,格式化命令会自动创建;如果存在,请确保其权限设置正确,此时格式操作会清除其内部所有的数据并重新建立一个新的文件系统:
# /usr/local/hadoop/bin/hdfs namenode -format

/usr/local/hadoop/bin/hdfs namenode -format  #格式化操作

查看格式化是否成功:

四、启动hadoop进程

#启动前需要配置完成上述所有配置,并确认ssh免密登陆已配置完毕
/usr/local/hadoop/sbin
start-dfs.sh
start-yarn.sh 
#或者使用以下命令
start-all.sh或./start-all.sh #PS:真实环境中,最好不要使用start-all.sh启动服务
jps                         #查看到如下进程则成功

五、验证hadoop

1. 在HDFS中创建用户目录

hdfs dfs -mkdir -p /user/root #使用[用户名]登陆,并完成上述操作,必须/user/后跟对应
的[用户名]
hdfs dfs -mkdir input #创建input目录,用于输入数据
hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input #将所需的xml配置文件复制到input中
#如果系统之前运行过hadoop,则需要删除output目录
hdfs dfs -rm -r output
#运行实例,需要先进入hadoop的文件夹下
cd /usr/local/hadoop
#然后输入如下命令
hadoop jar ./share/hadoop/mapreduce/hadoop- mapreduce-examples-*.jar wordcount input output

2、查看运行结果

hdfs dfs -ls ./output
hdfs dfs -cat output/*

五、关闭hadoop集群

#若需关闭集群,在主机上输入相应关闭的命令。启动集群是先hdfs后yarn,关闭集群是先yarn后hdfs。须在
安装目录的/etc/hadoop目录下
stop-yarn.sh
stop-dfs.sh


http://www.hkcw.cn/article/kfPsieCKNX.shtml

相关文章

印尼西爪哇省山体滑坡已致21人死亡 矿工遇难悲剧

印尼西爪哇省山体滑坡已致21人死亡 矿工遇难悲剧!当地时间6月3日,印尼国家抗灾署报告称,西爪哇省芝拉朋县一处采砂场发生山体滑坡事故,导致21名矿工遇难。印尼由于地质结构复杂且强降雨频发,山体滑坡等灾害时有发生。责任编辑:0882

韩国大选投票率已超60% 选民热情高涨

当地时间6月3日6时,韩国第21届总统选举开始正式投票。投票时间从6时持续到20时,总共14个小时。据韩国中央选举管理委员会初步统计,截至当地时间13时,投票率已达62.1%。此次选举原有7名候选人登记参选,但其中两人已宣布退选,最终有5人参加角逐。这五位候选人分别是共同民主…

《唐顿庄园3》发布首支预告,将于9月12日上映!

《唐顿庄园3》发布首支预告!!本片将是系列的大结局,将于9月12日上映!责任编辑:zx0002

维斯塔潘距离超级驾照被禁赛仅差1分 处于禁赛边缘

在F1西班牙大奖赛正赛中,维斯塔潘因与拉塞尔相撞被罚时10秒,最终排名第十。这次碰撞不仅导致他被罚时,还使他的超级驾照扣了3分。目前,维斯塔潘的超级驾照在12个月内已经累计扣了11分,接近禁赛边缘。下一次消分要等到6月30日。责任编辑:zhangxiaohua

女子被送养36年找到亲生父母 当事人:想过个真正的生日

程姗是被亲弟弟背进家门的,36年了,这是她第一次回家。6月1日上午,锣鼓声惊醒了忻[xīn]州市解村的一条小巷,寻亲志愿者朱玉堂牵着程姗的手说:“来,回家。”程姗被簇拥着,伏在弟弟的背上,去往家的方向。程姗是姜家的第二个女儿,1989年农历二月初三出生,因父母交不起超…

统计随机行走的结构占比

有一个点在平面上移动&#xff0c;设r1&#xff0c;r2是0到1的两个随机数&#xff0c;这个点单次移动的距离是5*r1&#xff0c;移动的角度是360*r2&#xff0c;取整&#xff0c;走1万步&#xff0c;将相邻的4点放到一起&#xff0c;统计4点结构占比。 如某次随机得到10个点 1 …

钓鱼佬被困河中 男子用无人机吊上岸 暴雨救援展现科技力量

钓鱼佬被困河中男子用无人机吊上岸!近日,浙江丽水一名垂钓爱好者因突降暴雨导致河水暴涨,被困河道中央。当地无人机飞手陈先生迅速行动,仅用2分钟就将被困者吊运至安全地带。这架原本用于农业植保作业的无人机,其最大起飞重量符合国家规定的150公斤标准。消防部门提醒市民…

法网男单八强对阵出炉 精彩对决即将上演

本届法网男单1/8决赛已经结束,八强对阵名单出炉。在上半区,辛纳(意大利)将对阵布勃利克(哈萨克斯坦),兹韦列夫(德国)将迎战德约科维奇(塞尔维亚)。下半区方面,穆塞蒂(意大利)将与蒂亚福(美国)对决,阿尔卡拉斯(西班牙)则要面对保罗(美国)。责任编辑:zhang…

机器视觉图像形态学中的腐蚀、膨胀、开运算、闭运算

1.腐蚀 腐蚀&#xff08;Erosion&#xff09;是一种基本的图像处理操作&#xff0c;主要用于缩小或细化图像中的目标区域。它通过结构元素&#xff08;Structuring Element&#xff09;与图像进行交互&#xff0c;逐步消除边界像素&#xff0c;使目标区域向内收缩。 对于二值…

大V:俄12项条件与乌3点主张尖锐对立!

大V:俄12项条件与乌3点主张尖锐对立。前言:乌克兰刚刚使用无人机对俄军事基地进行历史规模的袭击,给俄造成重大损失之后,双方在6月2日进行了第二轮谈判。俄罗斯总统助理梅金斯基担任俄方谈判代表团团长,乌克兰国防部长乌梅罗夫担任代表团团长。据悉,俄乌团长事先进行了单…

许超医生:很多人讨论用我的视频治高铁上的熊孩子

许超医生发文:有人发视频在高铁上被熊孩子吵到了,然后很多人就在讨论用我的视频治熊孩子。我:……责任编辑:zx0002

苏超是地域文化和体育竞技美妙结合 民间热情引爆网络

6月1日,在南京五台山体育馆举行的江苏省城市足球联赛第三轮赛事中,南京队坐镇主场以1:0战胜无锡队。这个被称为“苏超”的比赛,由江苏省体育局与江苏省各设区市政府联合主办,江苏13个设区市各派一队参加。这两天,“苏超”在舆论场爆火。一个地域足球赛不仅令江苏球迷沸腾,…

edg浏览器打开后默认是360界面

发牢骚&#xff1a;好像也没有下载什么流氓软件&#xff0c;但是有一天&#xff0c;打开浏览器就莫名奇妙就是360了&#xff0c;非常奇怪。刚开始觉得还可以忍受&#xff0c;毕竟关掉重新打开一个页面也就行了&#xff0c;后面试多了之后&#xff0c;越看越恶心&#xff01;&am…

广州居然之家多品牌店“爆雷” 诱导消费陷阱深

日前,广州市增城区的居然之家新塘店内,顾家、欧铂尼、伊仕利和原川四家家居品牌店“爆雷”,数百户装修业主订单无法交付,涉及金额逾千万元。消费者反映,“爆雷”前这些品牌店曾以享受“国补”诱导他们下订单和一次性交全款,实际上连正常订单都未交付就关门走人。涉事门店…

周杰伦晒与山下智久合照 京都夜色见证友情

周杰伦在个人社交媒体账号上发布了一张与山下智久的合影,并配文“京都的夜晚有一种榻榻米的稻香叫做友情”。照片中,两人站在夜幕下的街道台阶上,默契地比耶,显得十分轻松。背景音乐是周杰伦2001年发行的专辑《范特西》中的《忍者》。4月19日,山下智久也在社交平台上晒出了…

律师称对无端施暴应零容忍 守护文明底线

近日,四川古蔺县一位网友表示,5月24日凌晨,她侄子和好友因所骑的车子打滑,在推车时说笑。路过的人听见后,误以为在嘲笑自己,于是纠集数人对她侄子及其好友进行殴打、侮辱。侄子受到心理创伤,现已接受心理治疗。6月2日,古蔺县公安局通报称,5月24日凌晨4时许,黄某某(男…

张韶涵与校园歌手同台合唱:很幸运碰到青春的他们

6月2日,上海。永远22毕业歌会上,张韶涵和校园歌手合唱了《看得最远的地方》。演唱完后,张韶涵表示:“我很幸运,因为碰到了青春的他们!每次和校园歌手合作,我都觉得青春无敌。每次来到像这样的晚会的时候,会被他们的能量所吸引,有时候会觉得,他们会完全把自己的能量释…

牙齿颜色能判断健康与否?误区!为什么越长大牙齿越黄

尽管一口亮白的牙齿在视觉上看起来更舒服,但实际上,淡黄色才是牙齿的健康色号。基于牙齿的结构,健康的牙齿颜色并不会过分的白。牙齿的颜色和钙化程度有关,牙釉质有一定的通透性,牙齿的钙化程度越高,牙釉质就越透明,牙本质的颜色透出来,使牙齿看起来呈现淡黄色。若牙齿…

男博主借护送女孩回家拍段子 恶搞行为遭平台限流禁言

近日,有网友反映一些网红博主流行起了“深夜护送100个陌生女孩回家”的挑战。尽管这个活动被称作护送,但实际上很多博主发布的视频内容主要是逗乐和取笑。还有一些博主借着“随机护送女孩回家”这一挑战拍摄恶搞段子。抖音官方账号在2日晚间发布了相关处理进展,表示经过核查…

雷军复盘时问自己的问题 网友神回复

今日午间,小米集团创始人雷军在线发文透露了小米每次复盘时反思的三个“灵魂”问题。小米是谁?小米为什么而奋斗?小米从哪里来,将往哪里去?这是我们每次复盘时问自己的问题。有意思的是,评论区有网友神回复道:“从群众中来到群众中去”,这条评论不仅获得了网友高点赞支持…