Hadoop的伪分布式运行模式

2023-11-17

Hadoop运行模式包括:本地模式伪分布式模式,以及完全分布式模式
1、本地模式
安装简单,在一台机器上运行服务,几乎不用做任何配置,但仅限于调试用途。没有分布式文件系统,直接读写本地操作系统的文件系统。
2、伪分布式模式
在单节点上同时启动namenode、datanode、jobtracker、tasktracker、secondary namenode等进程,模拟分布式运行的各个节点。配置已经很接近完全分布式。
3、完全分布式模式
正常的Hadoop集群,由多个各司其职的节点构成。

伪分布式运行模式

需求

已经配置java环境
已经配置hadoop环境

一、启动HDFS并运行MapReduce程序

1.配置集群

配置文件在:$HADOOP_HOME/etc/hadoop目录下

(1)配置:hadoop-env.sh

Linux系统中获取JDK的安装路径并复制:echo $JAVA_HOME
在这里插入图片描述
修改配置文件JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_144
如果配置文件中export JAVA_HOME=$JAVA_HOME则也可以不改。
在这里插入图片描述

(2)配置:core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
    <value>hdfs://hadoop102(此虚拟机的主机名):9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/modules/hadoop-2.7.2/data/tmp(会自动创建)</value>
</property>

在这里插入图片描述

(3)配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

在这里插入图片描述

2.启动集群

(1)格式化NameNode(第一次启动时格式化,以后就不要总格式化)

hdfs namenode -format
在这里插入图片描述

(2)启动NameNode

hadoop-daemon.sh start namenode

(3)启动DataNode

hadoop-daemon.sh start datanode

3.查看集群

(1)查看是否启动成功

jps查看是否有NameNodeDataNode进程,有则启动成功。

注意jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
在这里插入图片描述

(2)web端查看HDFS文件系统

在浏览器地址栏输入192.168.20.102(虚拟机的ip地址):50070,如果你的windows已经配置hosts映射,也可以输入hadoop102(虚拟机的主机名):50070
在这里插入图片描述
点击Utilities,然后点击Browse the file system,可以查看HDFS上的目录。
在这里插入图片描述
注意:如果50070web页面不能查看,看如下帖子处理:
http://www.cnblogs.com/zlslch/p/6604189.html

(3)查看产生的Log日志

日志在’$HADOOP_HOME/logs’目录下。
在这里插入图片描述
说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。

(4)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么

在这里插入图片描述
注意:格式化NameNode,会产生新的集群id,导致NameNodeDataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode

4.操作集群

(1)在HDFS文件系统上创建一个input文件夹

hdfs dfs -mkdir -p /user/nanfeng/input,加上-p选项则为层级创建。

(2)将测试文件内容上传到文件系统上

hdfs dfs -put wcinput/wc.input /user/nanfeng/inputwcinput/wc.input为上传的本地文件路径,/user/nanfeng/input为保存到HDFS上的路径。

(3)查看上传的文件是否正确

hdfs dfs -ls /user/nanfeng/input,查看HDFS上’/user/nanfeng/input’目录下的内容。
hdfs dfs -cat /user/nanfeng/ input/wc.input,查看’wc.input’文件内容。

(4)运行MapReduce程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/nanfeng/input /user/nanfeng/outputwordcount为统计次数,/user/nanfeng/input为输入文件在HDFS上的路径,/user/nanfeng/output为输出文件在HDFS上的路径。

注意:MapReduce执行时,如果输出路径存在,则会报错。
在这里插入图片描述

(5)查看输出结果文件

hdfs dfs -cat /user/nanfeng/output/*

(6)将输出结果文件下载到本地

hdfs dfs -get /user/nanfeng/output/part-r-00000 .//user/nanfeng/output/part-r-00000为下载文件在HDFS上的路径,’./'为保存到本地的路径。

(7)删除HDFS上的输出结果

hdfs dfs -rm -r /user/nanfeng/output/user/nanfeng/output为删除的文件在HDFS上的路径。
在这里插入图片描述

二、启动YARN并运行MapReduce程序

1.配置集群

(1)配置yarn-env.sh

修改配置文件JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_144
在这里插入图片描述

(2)配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
 	<name>yarn.nodemanager.aux-services</name>
 	<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop102(此虚拟机的主机名)</value>
</property>

在这里插入图片描述

(3)配置:mapred-env.sh

修改配置文件JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_144
在这里插入图片描述

(4)配置: (对mapred-site.xml.template重新命名或者复制为) mapred-site.xml

cp mapred-site.xml.template mapred-site.xml,将mapred-site.xml.template复制为mapred-site.xml

编辑配置文件:

<!-- 指定MR运行在YARN上 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

在这里插入图片描述

2.启动集群

(1)启动前必须保证NameNode和DataNode已经启动
(2)启动ResourceManager

yarn-daemon.sh start resourcemanager

(3)启动NodeManager

yarn-daemon.sh start nodemanager

(4)查看是否启动成功

jps查看是否有ResourceManagerNodeManager进程,有则启动成功。
在这里插入图片描述

3.集群操作

(1)YARN的浏览器页面查看

在浏览器地址栏输入192.168.20.102(虚拟机的ip地址):8088,如果你的windows已经配置hosts映射,也可以输入hadoop102(虚拟机的主机名):8088
在这里插入图片描述

(2)执行MapReduce程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/nanfeng/input /user/nanfeng/outputwordcount为统计次数,/user/nanfeng/input为输入文件在HDFS上的路径,/user/nanfeng/output为输出文件在HDFS上的路径。

注意:MapReduce执行时,如果输出路径存在,则会报错。在这里插入图片描述

(3)查看运行结果

在linux上查看:
hdfs dfs -cat /user/nanfeng/output/*
在这里插入图片描述
在Web端查看:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

1. 配置mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102(此虚拟机的主机名):10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102(此虚拟机的主机名):19888</value>
</property>

在这里插入图片描述

2.启动历史服务器

mr-jobhistory-daemon.sh start historyserver

3.查看历史服务器是否启动

jps查看是否有JobHistoryServer进程,有则启动成功。
在这里插入图片描述

4.查看Web页面

在浏览器地址栏输入192.168.20.102(虚拟机的ip地址):19888,如果你的windows已经配置hosts映射,也可以输入hadoop102(虚拟机的主机名):19888
在这里插入图片描述

四、配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。

开启日志聚集功能具体步骤如下:

1.配置yarn-site.xml

<!-- 日志聚集功能使能 -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800</value>
</property>

在这里插入图片描述

2.关闭ResourceManager、NodeManager 和HistoryManager(没启动则跳过这步)

yarn-daemon.sh stop resourcemanager,关闭ResourceManager。
yarn-daemon.sh stop nodemanager,关闭NodeManager。
mr-jobhistory-daemon.sh stop historyserver,关闭HistoryManager。

3.启动NodeManager 、ResourceManager和HistoryManager

yarn-daemon.sh start resourcemanager,启动ResourceManager。
yarn-daemon.sh start nodemanager,启动NodeManager。
mr-jobhistory-daemon.sh start historyserver,启动HistoryManager。
在这里插入图片描述

4.执行WordCount程序

若输出路径存在则需要删除:hdfs dfs -rm -R /user/nanfeng/output

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/nanfeng/input /user/nanfeng/outputwordcount为统计次数,/user/nanfeng/input为输入文件在HDFS上的路径,/user/nanfeng/output为输出文件在HDFS上的路径。

注意:MapReduce执行时,如果输出路径存在,则会报错。
在这里插入图片描述

5.查看运行结果

hdfs dfs -cat /user/nanfeng/output/part-r-00000
在这里插入图片描述

6.查看日志

在这里插入图片描述
在这里插入图片描述
配了日志聚集后的日志可正常显示:
在这里插入图片描述
没配日志聚集前的日志不会显示:
在这里插入图片描述

五、配置文件说明

Hadoop配置文件分两类:默认配置文件自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

1.默认配置文件:

在这里插入图片描述

2.自定义配置文件

core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop的伪分布式运行模式 的相关文章

  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 非 hdfs 文件系统上的 hadoop/yarn 和任务并行化

    我已经实例化了 Hadoop 2 4 1 集群 并且发现运行 MapReduce 应用程序的并行化方式会有所不同 具体取决于输入数据所在的文件系统类型 使用 HDFS MapReduce 作业将生成足够的容器 以最大限度地利用所有可用内存
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • Windows 上的 Apache Pig 在运行“pig -x local”时出现“hadoop-config.cmd”未被识别为内部或外部命令”错误

    如果您由于以下错误而无法在 Windows 上运行 Apache Pig hadoop 2 4 0 bin hadoop config cmd is not recognized as an internal or external com
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp

随机推荐

  • 基于java的小区车辆管理系统

    本系统主要采用JSP为编程语言 可以方便管理小区车辆管理需要 后台主要包括车辆管理 停车卡管理 车位管理等功能 本系统操作简单 使用方便 本系统旨在为小区物业管理人员提供一个功能齐全 使用方便的基于卡式的小区车辆管理系统 以代替传统的人员管
  • C#—DataTable常见用法

    1 构建DataTable数据源 DataTable dt new new DataTable dt new Columns Add column1 typeof string dt new Columns Add column2 type
  • check original full command

    suppose I create a shortcut command named sql how can I know its original full command xxx 1014 type sql sql is hashed a
  • 【centos8.2下载安装netcat监听工具】——关注紫灵小姐姐不踩坑

    下载 wget https sourceforge net projects netcat files netcat 0 7 1 netcat 0 7 1 tar gz 解压 安装 cd netcat 0 7 1 configure 如果报
  • 数据库 练习(五)

    创建student表 CREATE TABLE Student S VARCHAR 10 Sname VARCHAR 10 Sage DATETIME Ssex NVARCHAR 10 创建数据 INSERT INTO Student VA
  • typora使用教程

    typora使用教程 1 多级标题的使用 加空格 表示一级标题 加空格 表示二级标题 加空格 表示三级标题 加空格 表示四级标题 typora最多支持六级标题 2 有序列表和无序列表的使用 或 加空格 会生成无序列表 如下 这是 加空格生成
  • 【你哥电力电子】THE BOOST 升压斩波电路1

    BOOST电路1 2023年1月12日 nige in Tongji University elecEngeneer 上链 文章目录 BOOST电路1 1 BOOST电路来源 2 CCM下的理想稳态分析 2 1 分析流程 3 DCM下的理想
  • Post请求的四种方式

    Post请求四种传送方式的Python实现 HTTP 协议规定 POST 提交的数据必须放在消息主体 entity body 中 但协议并没有规定数据必须使用什么编码方式 常见的四种编码方式如下 1 application x www fo
  • 【微服务】一张图搞懂微服务架构设计

    一张图搞懂微服务架构设计 1 前言 2 流量入口 Nginx 3 网关 4 业务组件 5 服务注册中心 6 缓存和分布式锁 7 数据持久层 8 结构型数据存储 9 消息中间件 10 日志收集 11 任务调度中心 12 分布式对象存储 1 前
  • 区块链密码学(一):密码学基础及概念

    一 概念 主要介绍非对称加密的一些概念 公钥 私钥 均可加密或解密 配对即可 一般来讲 私钥用来进行解密和签名 是给自己用的 公钥由本人公开 用于加密和验证签名 是给别人用的 签名 内容 gt hash gt digest gt 私钥加密
  • zookeeper学习网址

    1 分布式服务框架 ZooKeeper 管理分布式环境中的数据 http www ibm com developerworks cn opensource os cn ZooKeeper 2 ZooKeeper系列讲座 很全面 http w
  • ES6数组及编程题

    1 forEach var arr 1 2 3 4 arr forEach item index arr gt console log item 结果为1 2 3 4 数组的遍历方法 无返回值 不改变原数组 2 map var arr 1
  • 100天精通Python(基础篇)——第27天:函数初体验

    函数的定义 def 函数名 传入参数 函数体 return 返回值 参数不需要可以省略 返回值不需要可以省略 示例代码 str1 123456 str2 1234567 str3 12345678 def my len data count
  • C/C++的头文件 / 源文件 / 条件编译 / 多文件编译

    C C 的头文件 源文件 条件编译 多文件编译 头文件 头文件的定义与作用 include编译指令 头文件实例 源文件 条件编译 什么是条件编译 为什么要用条件编译 条件编译的使用 多文件编译 总结 头文件 头文件的定义与作用 之前我的博客
  • 【BLE】蓝牙外围设备升级(OTA)

    目录 需求分析 升级协议交互 协议具体定义 协议交互进一步解读 一个校验单位 4K 的具体传输方式 方案实现 总结 需求分析 本案例中 智能手表作为中央设备对心率带通过BLE进行升级 这里手表首先要通过某种方式获得心率带的固件 然后通过BL
  • 好的技术设计文档应该包括什么

    好的技术设计文档应该包括 项目背景和目标 总体架构和系统模块划分 数据流程和数据存储 系统安全性和数据安全性 性能和可伸缩性 接口和协议规范 部署和运维方案 项目风险和解决方案 测试和验收计划 版本控制 迭代计划和文档管理策略
  • 【脚本工具】python修改xml文件中类别的名称和删除指定的类别

    功能 能够删除xml中不需要的类别标签 和替换制定的类别名称 使用方法 1 修改origin ann dir 原始xml文件夹路径 2 修改new ann dir 保存新xml的文件夹路径 3 需要修改和删除的类别名称 usr bin en
  • 按钮提交在url后添加字段_在输入字段上定向单击“清除”按钮(X)

    按钮提交在url后添加字段 jQuery makes it easy to get your project up and running Though it s fallen out of favor in recent years it
  • :nth-of-child和:nth-of-type

    nth of child 用法 nth of child n n可以为数字或者表达式 例如2n 1 指的是奇数项 介绍 第n个孩子 例如 div nth of child 1 等同于 div first of child div的第一个孩子
  • Hadoop的伪分布式运行模式

    Hadoop运行模式包括 本地模式 伪分布式模式 以及完全分布式模式 1 本地模式 安装简单 在一台机器上运行服务 几乎不用做任何配置 但仅限于调试用途 没有分布式文件系统 直接读写本地操作系统的文件系统 2 伪分布式模式 在单节点上同时启