大数据(2) 大数据处理架构Hadoop

news2025/6/8 13:24:54

一、Hadoop简介

1.定义

        Hadoop 是一个开源的分布式计算框架,由 Apache 基金会开发,用于处理海量数据,具备高可靠性、高扩展性和高容错性。它主要由两个核心模块组成:

  • HDFS(Hadoop Distributed File System):分布式文件系统,用于存储大规模数据,具备高容错能力和高吞吐量。

  • MapReduce:分布式计算框架,用于并行处理大数据,通过“映射-归约”模型实现任务分解与执行。

        Hadoop 适合运行在廉价硬件集群上,是大数据处理的重要基础平台。

2.特性

  • 高可靠性:通过数据冗余和副本机制,确保在节点故障时数据依然安全可用。

  • 高效性:采用并行计算方式,能够快速处理海量数据,提升计算效率。

  • 高可扩展性:支持通过增加节点来水平扩展系统,轻松应对数据增长。

  • 高容错性:在节点故障时自动切换和恢复任务,确保系统稳定运行。

  • 成本低:可以部署在普通的廉价服务器上,无需高性能硬件,节省成本。

  • 支持运行在 Linux 操作系统上:Hadoop 主要设计为在 Linux 环境下运行,性能稳定、兼容性好。

  • 支持多种编程语言:除 Java 外,还支持 Python、C++ 等语言开发 MapReduce 程序,方便开发者使用。


二、hadoop生态系统

组件功能简述
HDFS分布式存储系统
MapReduce批处理计算框架
YARN资源管理与任务调度
Hive数据仓库,支持 SQL 查询
HBase实时数据库
Pig脚本式数据处理语言
SqoopRDBMS 与 Hadoop 间数据迁移
Flume日志/数据采集工具
Kafka高吞吐消息队列
Storm实时流处理框架
Spark高性能分布式计算框架
Flink实时数据处理引擎
Oozie工作流调度工具
Zookeeper分布式协调服务
Ambari集群管理与监控工具

三、HDFS启动停止命令

启动:cd /usr/local/hadoop

           ./sbin/start-dfs.sh

停止:./sbin/stop-dfs.sh      


四、常见的linux命令

(1)目录操作命令

1. cd:切换目录

功能命令
切换到 /usr/localcd /usr/local
返回上层目录cd ..
回到主文件夹cd ~cd

2. ls:查看文件与目录

功能命令
查看 /usr 下所有文件ls /usrls -l /usr

3. mkdir:新建目录

功能命令
/tmp 下创建目录 acd /tmp && mkdir a
查看当前目录有多少子目录`ls -l
创建多层目录 a1/a2/a3/a4mkdir -p a1/a2/a3/a4

4. rmdir:删除空目录

功能命令
删除 /tmp/a 目录rmdir /tmp/a
依次删除 a1/a2/a3/a4(需从最内层开始)rmdir a1/a2/a3/a4 a1/a2/a3 a1/a2 a1
查看当前目录下的目录数`ls -l

(2)文件操作命令

5. cp:复制文件或目录

功能命令
复制 .bashrc/usr/bashrc1cp ~/.bashrc /usr/bashrc1
创建 /tmp/test 并复制其内容到 /usrmkdir /tmp/test && cp -r /tmp/test /usr/

6. mv:移动或重命名

功能命令
移动 bashrc1/usr/test/mv /usr/bashrc1 /usr/test/
重命名 testtest2mv /usr/test /usr/test2

7. rm:删除文件或目录

功能命令
删除 /usr/test2/bashrc1rm /usr/test2/bashrc1
删除整个 test2 目录rm -r /usr/test2

(3)文件内容查看命令

8. cat:查看文件内容(正序)

cat ~/.bashrc

9. tac:查看文件内容(反序)

tac ~/.bashrc

10. more:分页显示

more ~/.bashrc

11. head:显示前几行

功能命令
显示前 20 行head -n 20 ~/.bashrc
只显示前几行,不显示最后 50 行head -n -50 ~/.bashrc(需要新版本支持)

12. tail:显示后几行

功能命令
显示最后 20 行tail -n 20 ~/.bashrc
显示从第 51 行开始的内容tail -n +51 ~/.bashrc

(4)文件时间与权限命令

13. touch:创建或修改时间

功能命令
创建 /tmp/hello 并查看时间touch /tmp/hello && ls -l /tmp/hello
修改时间为 5 天前touch -d "5 days ago" /tmp/hello

14. chown:修改文件所有者

功能命令
将 hello 所有者改为 rootsudo chown root /tmp/hello && ls -l /tmp/hello

(5)文件查找与打包压缩命令

15. find:查找文件

find ~ -name ".bashrc"

16. tar:打包与解压

功能命令
/ 下打包 testtest.tar.gzcd / && tar -czvf test.tar.gz test/
解压到 /tmp/tar -xzvf /test.tar.gz -C /tmp/

(6)文本查找与环境变量命令

17. grep:查找字符串

grep 'examples' ~/.bashrc

18. 环境变量配置

(1)配置 Java 环境变量

编辑 ~/.bashrc 文件,加入以下内容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH

使其生效:

source ~/.bashrc
(2)查看变量值
echo $JAVA_HOME

五、常用的hadoop操作

假设你的 Hadoop 安装在 /usr/local/hadoop,用户是 hadoop


1. 启动 Hadoop 并创建用户目录 /user/hadoop

  • 登录 hadoop 用户(如果还未登录):

su - hadoop

  • 进入 Hadoop 安装目录并启动集群

cd /usr/local/hadoop ./sbin/start-dfs.sh ./sbin/start-yarn.sh

  • 查看 HDFS 是否正常运行(可选):

jps

应该看到 NameNodeDataNodeResourceManagerNodeManager 等进程。

  • 在 HDFS 中为 hadoop 用户创建目录

hdfs dfs -mkdir -p /user/hadoop

  • 查看创建结果

hdfs dfs -ls /user


2. 在 /user/hadoop 下创建 test 文件夹并查看

hdfs dfs -mkdir /user/hadoop/test hdfs dfs -ls /user/hadoop

输出结果应显示 /user/hadoop/test 文件夹存在。


3. 上传 .bashrc 文件到 HDFS 的 test 文件夹中

hdfs dfs -put ~/.bashrc /user/hadoop/test/

然后查看上传结果:

hdfs dfs -ls /user/hadoop/test

你会看到 .bashrc 文件出现在该目录下。


4. 将 HDFS 的 test 文件夹复制到本地 /usr/local/hadoop 目录下

hdfs dfs -get /user/hadoop/test /usr/local/hadoop/

然后可以用 ls 查看是否成功下载:

ls /usr/local/hadoop/test

应该能看到 .bashrc 文件。


5. 总结命令列表

操作命令
启动 Hadoop./sbin/start-dfs.sh && ./sbin/start-yarn.sh
创建 HDFS 用户目录hdfs dfs -mkdir -p /user/hadoop
创建子目录 testhdfs dfs -mkdir /user/hadoop/test
上传 .bashrchdfs dfs -put ~/.bashrc /user/hadoop/test
查看 HDFS 目录内容hdfs dfs -ls /user/hadoop/test
下载 test 到本地hdfs dfs -get /user/hadoop/test /usr/local/hadoop/

        本篇介绍了大数据处理架构——hadoop, Hadoop 是一个开源的分布式计算框架,由 Apache 基金会开发,用于处理海量数据,具备高可靠性、高扩展性和高容错性。

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

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

相关文章

固定ip和非固定ip的区别是什么?如何固定ip地址

在互联网中,我们常会接触到固定IP和非固定IP的概念。它们究竟有何不同?如何固定IP地址?让我们一起来探究这个问题。 一、固定IP和非固定IP的区别是什么 固定IP(静态IP)和非固定IP(动态IP)是两种…

使用矩阵乘法+线段树解决区间历史和问题的一种通用解法

文章目录 前言P8868 [NOIP2022] 比赛CF1824DP9990/2020 ICPC EcFinal G 前言 一般解决普通的区间历史和,只需要定义辅助 c h s − t ⋅ a chs-t\cdot a chs−t⋅a, h s hs hs是历史和, a a a是区间和, t t t是时间戳&#xff0c…

如何从浏览器中导出网站证书

以导出 GitHub 证书为例,点击 小锁 点击 导出 注意:这里需要根据你想要证书格式手动加上后缀名,我的是加 .crt 双击文件打开

低功耗MQTT物联网架构Java实现揭秘

文章目录 一、引言二、相关技术概述2.1 物联网概述2.2 MQTT协议java三、基于MQTT的Iot物联网架构设计3.1 架构总体设计3.2 MQTT代理服务器选择3.3 物联网设备设计3.4 应用服务器设计四、基于MQTT的Iot物联网架构的Java实现4.1 开发环境搭建4.2 MQTT客户端实现4.3 应用服务器实现…

ideal2022.3.1版本编译项目报java: OutOfMemoryError: insufficient memory

最近换了新电脑,用新电脑拉项目配置后,启动时报错,错误描述 idea 启动Springboot项目在编译阶段报错:java: OutOfMemoryError: insufficient memory 2. 处理方案 修改VM参数,分配更多内存 ❌ 刚刚开始以为时JVM内存设置…

centos7编译安装LNMP架构

一、LNMP概念 LNMP架构是一种常见的网站服务器架构,由Linux操作系统、Nginx Web服务器、MySQL数据库和PHP后端脚本语言组成。 1 用户请求:用户通过浏览器输入网址,请求发送到Nginx Web服务器。 2 Nginx处理:Nginx接收请求后&…

Spring Boot 3.3 + MyBatis 基础教程:从入门到实践

Spring Boot 3.3 MyBatis 基础教程:从入门到实践 在当今的Java开发领域,Spring Boot和MyBatis是构建高效、可维护的后端应用的两个强大工具。Spring Boot简化了Spring应用的初始搭建和开发过程,而MyBatis则提供了一种灵活的ORM(…

征文投稿:如何写一份实用的技术文档?——以软件配置为例

📝 征文投稿:如何写一份实用的技术文档?——以软件配置为例 目录 [TOC](目录)🧭 技术文档是通往成功的“说明书”💡 一、明确目标读者:他们需要什么?📋 二、结构清晰:让读…

tensorflow image_dataset_from_directory 训练数据集构建

以数据集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 为例 目录结构 训练图像数据集要求: 主目录下包含多个子目录,每个子目录代表一个类别。每个子目录中存储属于该类别的图像文件。 例如 main_directory/ ...cat/ ...…

GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码

看到最近好玩的开源项目比较多,就想要学习一下esp32的开发,目前使用比较多的ide基本上是arduino、esp-idf和platformio,前者编译比较慢,后两者看到开源大佬的项目做的比较多,所以主要学习后两者。 本次使用的硬件是GO…

全流程开源!高德3D贴图生成系统,白模一键生成真实感纹理贴图

导读 MVPainter 随着3D生成从几何建模迈向真实感还原,贴图质量正逐渐成为决定3D资产视觉表现的核心因素。我们团队自研的MVPainter系统,作为业内首个全流程开源的3D贴图生成方案,仅需一张参考图与任意白模,即可自动生成对齐精确…

html 滚动条滚动过快会留下边框线

滚动条滚动过快时,会留下边框线 但其实大部分时候是这样的,没有多出边框线的 滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行为有关。这种问题可能出现在使用了自定义滚动条样式的情况下。 注意:使用方法 6 好使,其它…

数据通信与计算机网络——数据与信号

主要内容 模拟与数字 周期模拟信号 数字信号 传输减损 数据速率限制 性能 注:数据必须被转换成电磁信号才能进行传输。 一、模拟与数字 数据以及表示数据的信号可以使用模拟或者数字的形式。数据可以是模拟的也可以是数字的,模拟数据是连续的采用…

【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南

LangChain4j和SpringBoot入门指南 LangChain4jLangchain4j API语言模型消息类型内存对象ChatMemory接口的主要实现设置 API 密钥SpringBoot Configuration配置ChatLanguageModelStreamingChatLanguageModel初始化ChatModel对象模型配置分析介绍说明通过JavaConfig创建ChatModel…

Vue3 GSAP动画库绑定滚动条视差效果 绑定滚动条 滚动条动画 时间轴

介绍 GSAP 用于创建高性能、可控制的动画效果。由 GreenSock 团队开发,旨在提供流畅、快速、稳定的动画效果,并且兼容各种浏览器。 提供了多个插件,扩展了动画的功能,如 ScrollTrigger(滚动触发动画)、Dra…

grafana-mcp-analyzer:基于 MCP 的轻量 AI 分析监控图表的运维神器!

还在深夜盯着 Grafana 图表手动排查问题?今天推荐一个让 AI 能“读图说话”的开源神器 —— grafana-mcp-analyzer。 想象一下这样的场景: 凌晨3点,服务器告警响起。。。你睁着惺忪的眼睛盯着复杂的监控图表 😵‍💫花…

【题解-洛谷】B3622 枚举子集(递归实现指数型枚举)

题目:B3622 枚举子集(递归实现指数型枚举) 题目描述 今有 n n n 位同学,可以从中选出任意名同学参加合唱。 请输出所有可能的选择方案。 输入格式 仅一行,一个正整数 n n n。 输出格式 若干行,每行…

(LeetCode 每日一题)3170. 删除星号以后字典序最小的字符串(贪心+栈)

题目:3170. 删除星号以后字典序最小的字符串 思路:贪心栈,时间复杂度0(n)。 对于每一个‘ * ’,优先选最右边的最小字符,才会使最终得到的字符串最小。 用栈,来记录每个字符的位置下标。细节看注释。 C版本…

使用 HTML + JavaScript 实现文章逐句高亮朗读功能

在这个信息爆炸的时代,我们每天都要面对大量的文字阅读。无论是学习、工作还是个人成长,阅读都扮演着至关重要的角色。然而,在快节奏的生活中,我们往往难以找到足够的安静时间专注于阅读。本文用 HTML JavaScript 实现了一个基于…

双碳时代,能源调度的难题正从“发电侧”转向“企业侧”

安科瑞刘鸿鹏 摘要 在“双碳”战略和能源结构转型的大背景下,企业储能电站逐步成为提升能源利用效率、增强用能韧性的重要手段。随着系统规模扩大与运行复杂度提升,如何对光伏、储能、负荷等流进行实时调控,成为智慧用能的关键。ACCU100微…