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

大数据(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脚本式数据处理语言
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.lqws.cn/news/198793.html

相关文章:

  • Linux(13)——Ext系列文件系统
  • jenkins gerrit-trigger插件配置
  • Python Copilot【代码辅助工具】 简介
  • 数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握)
  • Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
  • SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
  • 阿里云MaxCompute入门
  • Fetch与Axios:区别、联系、优缺点及使用差异
  • 使用Python和Scikit-Learn实现机器学习模型调优
  • LinkedList、Vector、Set
  • ⚡️ Linux Docker 基本命令参数详解
  • 开源之夏·西安电子科技大学站精彩回顾:OpenTiny开源技术下沉校园,点燃高校开发者技术热情
  • C++2025.6.7 C++五级考题
  • 在Ubuntu上使用 dd 工具制作U盘启动盘
  • 【hadoop】相关集群开启命令
  • STM32的系统滴答定时器简述
  • 在 Win10 上 WSL 安装 Debian 12 后,Linux 如何启动 SMTP 服务?
  • 人工智能--AI换脸
  • 【工作记录】接口功能测试总结
  • 基于vscode,idea,java,html,css,vue,echart,maven,springboot,mysql数据库,在线考试系统
  • LeetCode刷题 -- 542. 【01 矩阵】最短距离更新算法实现(双向DP)
  • Vue学习之---nextTick
  • hmdp知识点
  • 【精选】计算机毕业设计Python Flask海口天气数据分析可视化系统 气象数据采集处理 天气趋势图表展示 数据可视化平台源码+论文+PPT+讲解
  • Supersonic 新一代AI数据分析平台
  • 深入了解UDP套接字:构建高效网络通信
  • YOLO11解决方案之分析
  • day26-计算机网络-4
  • Doris 数据库深度解析:架构、原理与实战应用
  • vue3 + vite实现动态路由,并进行vuex持久化设计