大数据(2) 大数据处理架构Hadoop
一、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 | 脚本式数据处理语言 |
Sqoop | RDBMS 与 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/local | cd /usr/local |
返回上层目录 | cd .. |
回到主文件夹 | cd ~ 或 cd |
2. ls
:查看文件与目录
功能 | 命令 |
---|---|
查看 /usr 下所有文件 | ls /usr 或 ls -l /usr |
3. mkdir
:新建目录
功能 | 命令 |
---|---|
在 /tmp 下创建目录 a | cd /tmp && mkdir a |
查看当前目录有多少子目录 | `ls -l |
创建多层目录 a1/a2/a3/a4 | mkdir -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/bashrc1 | cp ~/.bashrc /usr/bashrc1 |
创建 /tmp/test 并复制其内容到 /usr | mkdir /tmp/test && cp -r /tmp/test /usr/ |
6. mv
:移动或重命名
功能 | 命令 |
---|---|
移动 bashrc1 到 /usr/test/ | mv /usr/bashrc1 /usr/test/ |
重命名 test 为 test2 | mv /usr/test /usr/test2 |
7. rm
:删除文件或目录
功能 | 命令 |
---|---|
删除 /usr/test2/bashrc1 | rm /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 所有者改为 root | sudo chown root /tmp/hello && ls -l /tmp/hello |
(5)文件查找与打包压缩命令
15. find
:查找文件
find ~ -name ".bashrc"
16. tar
:打包与解压
功能 | 命令 |
---|---|
在 / 下打包 test 为 test.tar.gz | cd / && 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
应该看到 NameNode
、DataNode
、ResourceManager
、NodeManager
等进程。
-
在 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 |
创建子目录 test | hdfs dfs -mkdir /user/hadoop/test |
上传 .bashrc | hdfs 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 基金会开发,用于处理海量数据,具备高可靠性、高扩展性和高容错性。
相关文章:
大数据(2) 大数据处理架构Hadoop
一、Hadoop简介 1.定义 Hadoop 是一个开源的分布式计算框架,由 Apache 基金会开发,用于处理海量数据,具备高可靠性、高扩展性和高容错性。它主要由两个核心模块组成: HDFS(Hadoop Distributed File System)…...
【Kotlin】注解反射扩展
文章目录 注解用法反射类引用 扩展扩展函数的作用域成员方法优先级总高于扩展函数 被滥用的扩展函数扩展属性静态扩展 标准库中的扩展函数 使用 T.also 函数交换两个变量sNullOrEmpty | isNullOrBlankwith函数repeat函数 调度方式对扩展函数的影响静态与动态调度扩展函数始终静…...

固定ip和非固定ip的区别是什么?如何固定ip地址
在互联网中,我们常会接触到固定IP和非固定IP的概念。它们究竟有何不同?如何固定IP地址?让我们一起来探究这个问题。 一、固定IP和非固定IP的区别是什么 固定IP(静态IP)和非固定IP(动态IP)是两种…...
升级centos 7.9内核到 5.4.x
前面是指南,后面是工作日志。 wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.225-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.2…...
Nginx 安全设置配置
1、增加header公共文件 文件地址:/etc/nginx/conf.d/security_headers.conf # XSS防护配置add_header X-XSS-Protection "1; modeblock" always; # 其他安全配置add_header X-Content-Type-Options "nosniff";add_header X-Frame-Options &qu…...
协程的常用阻塞函数
以下是一些常见的阻塞函数示例: 1. **Thread.sleep()** 阻塞当前线程一段时间。 kotlin Thread.sleep(1000) // 阻塞线程 1 秒 2. **InputStream.read()** 从输入流中读取数据时会阻塞,直到有数据可用或流结束。 kotlin val inputStream FileInputStre…...
探索NoSQL注入的奥秘:如何消除MongoDB查询中的前置与后置条件
随着互联网技术的飞速发展,数据库作为信息存储与管理的核心,其安全性问题日益凸显。近年来,NoSQL数据库因其灵活性和高性能逐渐成为许多企业的首选,其中MongoDB以其文档存储和JSON-like查询语言在开发社区中广受欢迎。然而&#x…...

使用矩阵乘法+线段树解决区间历史和问题的一种通用解法
文章目录 前言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是时间戳,…...
React Navive初识
文章目录 搭建开发环境安装 Node、homebrew、Watchman安装 Node安装 homebrew安装 watchman 安装 React Native 的命令行工具(react-native-cli)创建新项目编译并运行 React Native 应用在 ios 模拟器上运行 调试访问 App 内的开发菜单 搭建开发环境 在…...
scss(sass)中 的使用说明
在 SCSS(Sass)中,& 符号是一个父选择器引用,它代表当前嵌套规则的外层选择器。主要用途如下: 1. 连接伪类/伪元素 scss 复制 下载 .button {background: blue;&:hover { // 相当于 .button:hoverbackgrou…...

如何从浏览器中导出网站证书
以导出 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 应用服务器实现…...
总结HTML中的文本标签
总结HTML中的文本标签 文章目录 总结HTML中的文本标签引言一、标题标签(h1 - h6)语法示例使用建议 二、段落标签(p)语法示例使用建议 三、文本节点标签(span)语法示例使用建议 四、粗体标签(b&a…...
python版若依框架开发:前端开发规范
python版若依框架开发 从0起步,扬帆起航。 python版若依部署代码生成指南,迅速落地CURD!项目结构解析前端开发规范文章目录 python版若依框架开发新增 view新增 api新增组件新增样式引⼊依赖新增 view 在 @/views文件下 创建对应的文件夹,一般性一个路由对应⼀个文件, 该…...
AI推理服务的高可用架构设计
AI推理服务的高可用架构设计 在传统业务系统中,高可用架构主要关注服务冗余、数据库容灾、限流熔断等通用能力。而在AI系统中,尤其是大模型推理服务场景下,高可用架构面临更加复杂的挑战,如推理延迟敏感性、GPU资源稀缺性、模型版本切换频繁等问题。本节将专门探讨如何构建…...
GPU集群故障分析:大型AI训练中的硬件问题与影响
GPU集群故障分析:大型AI训练中的硬件问题与影响 核心问题 在大型AI计算集群(如使用上千块GPU卡训练大模型)中: GPU硬件会出哪些毛病?这些问题发生的频率、严重程度如何?最终对AI训练任务有什么影响&#…...

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接收请求后&…...
接口限频算法:漏桶算法、令牌桶算法、滑动窗口算法
文章目录 限频三大算法对比与选型建议一、漏桶算法(Leaky Bucket Algorithm)1.核心原理2.实现3.为什么要限制漏桶容量4.优缺点分析 二、令牌桶算法(Token Bucket Algorithm)1.核心原理2.实现(1)单机实现&am…...

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

征文投稿:如何写一份实用的技术文档?——以软件配置为例
📝 征文投稿:如何写一份实用的技术文档?——以软件配置为例 目录 [TOC](目录)🧭 技术文档是通往成功的“说明书”💡 一、明确目标读者:他们需要什么?📋 二、结构清晰:让读…...
【后端】RPC
不定期更新。 定义 RPC 是 Remote Procedure Call 的缩写,中文通常翻译为远程过程调用。作用 简化分布式系统开发。实现微服务架构,便于模块化、复用。提高系统性能和可伸缩性。提供高性能通信、负载均衡、容错重试机制。 在现代分布式系统、微服务架构…...
详细讲解Flutter GetX的使用
Flutter GetX 框架详解:状态管理、路由与依赖注入 GetX 是 Flutter 生态中一款强大且轻量级的全功能框架,集成了状态管理、路由管理和依赖注入三大核心功能。其设计理念是简洁高效,通过最小的代码实现最大的功能,特别适合快速开发…...
ReLU 新生:从死亡困境到强势回归
背景 在深度学习领域,激活函数的探索已成为独立研究课题。诸如 GELU、SELU 和 SiLU 等新型激活函数,因具备平滑梯度与出色的收敛特性,正备受关注。经典 ReLU 凭借简洁性、固有稀疏性及其独特优势拓扑特性,依旧受青睐。然而&#…...

tensorflow image_dataset_from_directory 训练数据集构建
以数据集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 为例 目录结构 训练图像数据集要求: 主目录下包含多个子目录,每个子目录代表一个类别。每个子目录中存储属于该类别的图像文件。 例如 main_directory/ ...cat/ ...…...
QuickJS 如何发送一封邮件 ?
参阅:bellard.org : QuickJS 如何使用 qjs 执行 js 脚本 在 QuickJS 中发送邮件需要依赖外部库或调用系统命令,因为 QuickJS 本身不包含 SMTP 功能。以下是两种实现方法: 方法 1:调用系统命令(推荐) 使…...
clickhouse 和 influxdb 选型
以下是 ClickHouse、InfluxDB 和 HBase 在体系架构、存储引擎、数据类型、性能及场景的详细对比分析: 🏗️ 一、体系架构对比 维度ClickHouseInfluxDBHBase设计目标大规模OLAP分析,高吞吐复杂查询 时序数据采集与监控,优化时间线管理高吞吐随机…...

GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码
看到最近好玩的开源项目比较多,就想要学习一下esp32的开发,目前使用比较多的ide基本上是arduino、esp-idf和platformio,前者编译比较慢,后两者看到开源大佬的项目做的比较多,所以主要学习后两者。 本次使用的硬件是GO…...
C++学习思路
C++知识体系详细大纲 一、基础语法 (一)数据类型 基本数据类型 整数类型(int, short, long, long long)浮点类型(float, double, long double)字符类型(char, wchar_t, char16_t, char32_t)布尔类型(bool)复合数据类型 数组结构体(struct)联合体(union)枚举类型…...

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