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

Hadoop环境安装及HDFS初步使用

一、Hadoop原理

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

5.低成本。与商用数据仓库等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

HDFS — — Hadoop 分布式文件系统是世界上最可靠的存储系统,HDFS 文件系统被设计用于海量文件存储,其优点是存储大文件而不是大量的小文件HDFS 容错存储层还提供对 Hadoop 和其它元件的支持,HDFS 的数据复制将帮助我们实现这一特征,它能可靠地存储数据,并且几乎不受硬件故障的影响;HDFS提供高吞吐量数据访问应用程序,提供数据的并行访问。

Hadoop是建立在master-slave关系上 , HDFS 同样有 2 种类型的节点 ,集群中包含NameNode 和 DataNode。

NameNode负责调度客户端的访问,管理从属节点以及将任务指派给它们,NameNode 执行文件系统的 Namespace 操作 , 例如:打开、关闭、重命名文件和目录。NameNode应当部署在相对可靠的硬件环境中。

DataNode数据节点在 Hadoop 分布式文件系统里管理存储的数据,slave (数量 N 可高达 1000)执行节点到节点间的任务和服务的读写请求,还执行来自于NameNode节点的建立、删除、复制指令,一旦一个块被写入 DataNode , 将复制至其他 DataNode 并且继续执行,直到所配置副本的数量。DataNode节点可以部署在廉价的硬件上,并且不需要非常可靠的硬件环境。

HDFS 的进程运行在以下节点上 :

NameNode: 运行在所有的Master上,用来存放元数据,如文件名存储 、块的数量、副本的数量、位置块、块 ID 等,为了使用的可持续性,本地磁盘中还存放元数据副本,这种元数据放在内存中可更快速地检索数据,所以NameNode机器应该配置较高的内存。

DataNode :运行在所有的DataNode上,这些是存储数据的实际工作节点。

当任何文件被写入到 HDFS 中时 , 将被分成小块 , 称为块数据,默认块的大小为128 MB,可以根据要求增加。

这些块以分布式方式存储在集群的不同节点上,这为 Mapreduce 提供了一种在群集中并行处理数据的机制。

每个块的多个副本存储在不同节点上的群集中。

这就是数据的复制,默认情况下, HDFS 复制数量为3。它提供容错、可靠性和高可用性,大文件被拆分为 n 个小块,这些块以分布式方式存储在群集中的不同节点上,每个块都被复制并存储在群集中的不同节点上。

Hadoop 在一组计算机上运行,这些计算机通常分布在许多机架上,NameNode 将块的副本放置在多个机架上, 以提高容错能力。NameNode 尝试在每个机架中至少放置一个块的副本,目的是提高数据可靠性和网络带宽利用率,以便在整个机架出现故障后,系统也将具有高度可用性。

NameNode 存储元数据,DataNode 存储实际数据。集群环境中,客户端使用NameNode 执行交互任务。集群中的一些DataNode节点将 HDFS 数据存储在本地磁盘中,DataNode 定期向NameNode发送心跳消息以指示它处于活动状态,并且根据复制数量(默认值3),复制数据到其他数据节点。

1、hadoop基本命令

1)    ls 显示目录下的所有文件或者文件夹

使用方法: hadoop fs -ls [uri形式目录]

示例: hadoop fs –ls

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ros-noetic安装lio-sam
  • 把VTK窗口嵌入到Qt的窗口中显示(二)
  • 基于SpringBoot的网络海鲜市场系统的设计与实现
  • 产品文档全攻略:分类、价值及创建技巧
  • 【C++小白到大牛】红黑树那些事儿
  • 瑞友科技项目经理认证负责人杨文娟受邀为第四届中国项目经理大会演讲嘉宾︱PMO评论
  • Java的Cursor的使用
  • 基于hadoop的智慧校园数据共享与交换平台的设计与实现【Django框架、scrapy爬虫框架】
  • mysql 小表驱动大表
  • 【吸引力法则】探究人生欲:追求深度体验与宇宙链接
  • Hive3:三种常用的复杂数据类型
  • EasyCVR视频汇聚平台:深度解析GB/T 28181协议下的视频资源整合与应用
  • 腾讯云AI代码助手 —— 编程新体验,智能编码新纪元
  • 网络安全-第二阶段-linux操作系统01
  • 七大排序算法
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 345-反转字符串中的元音字母
  • DataBase in Android
  • echarts花样作死的坑
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java超时控制的实现
  • JS基础之数据类型、对象、原型、原型链、继承
  • JS数组方法汇总
  • PHP CLI应用的调试原理
  • React16时代,该用什么姿势写 React ?
  • SQL 难点解决:记录的引用
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一个完整Java Web项目背后的密码
  • 源码安装memcached和php memcache扩展
  • 转载:[译] 内容加速黑科技趣谈
  • puppet连载22:define用法
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ![CDATA[ ]] 是什么东东
  • #07【面试问题整理】嵌入式软件工程师
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)hibernate配置管理
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (分布式缓存)Redis哨兵
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十)T检验-第一部分
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)Oracle存储过程编写经验和优化措施
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core中如何集成RabbitMQ
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET实现之(自动更新)