博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop使用(二)
阅读量:6318 次
发布时间:2019-06-22

本文共 2686 字,大约阅读时间需要 8 分钟。

前提和设计目标

硬件错误
硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。我们面对的现实是构成系统的组件数目是巨大的,而且任一组件都有可能失效,这意味着总是有一部分HDFS的组件是不工作的。因此错误检测和快速、自动的恢复是HDFS最核心的架构目标。
流式数据访问
运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。为了提高数据的吞吐量,在一些关键方面对POSIX的语义做了一些修改。
大规模数据集
运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。
简单的一致性模型
HDFS应用需要一个“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。Map/Reduce应用或者网络爬虫应用都非常适合这个模型。目前还有计划在将来扩充这个模型,使之支持文件的附加写操作。
“移动计算比移动数据更划算”
一个应用请求的计算,离它操作的数据越近就越高效,在数据达到海量级别的时候更是如此。因为这样就能降低网络阻塞的影响,提高系统数据的吞吐量。将计算移动到数据附近,比之将数据移动到应用所在显然更好。HDFS为应用提供了将它们自己移动到数据附近的接口。
异构软硬件平台间的可移植性
HDFS在设计的时候就考虑到平台的可移植性。这种特性方便了HDFS作为大规模数据应用平台的推广。

 

 

hdfs的结构

既然 Hadoop 守护进程已经在运行了,现在看看每个守护进程在 Hadoop 框架中的作用。namenode 是 Hadoop 中的主服务器,它管理文件系统名称空间和对集群中存储的文件的访问。还有一个 secondary namenode,它不是 namenode 的冗余守护进程,而是提供周期检查点和清理任务。在每个 Hadoop 集群中可以找到一个 namenode 和一个 secondary namenode。

datanode 管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。

最后,每个集群有一个 jobtracker,它负责调度 datanode 上的工作。每个 datanode 有一个 tasktracker,它们执行实际工作。jobtracker 和 tasktracker 采用主-从形式,jobtracker 跨 datanode 分发工作,而 tasktracker 执行任务。jobtracker 还检查请求的工作,如果一个 datanode 由于某种原因失败,jobtracker 会重新调度以前的任务。

 

使用jps查看进程

要想检查守护进程是否正在运行,可以使用 jps 命令(这是用于 JVM 进程的 ps 实用程序)。这个命令列出 5 个守护进程及其进程标识符。

 

HDFS常用操作

hadoop dfs -ls 列出HDFS下的文件

hadoop dfs -ls in 列出HDFS下某个文档中的文件

hadoop dfs -put test1.txt test 上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功

hadoop dfs -get in getin 从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录

hadoop dfs -rmr out 删除指定文件从HDFS上

hadoop dfs -cat in/* 查看HDFS上in目录的内容

hadoop dfsadmin -report 查看HDFS的基本统计信息,结果如下

hadoop dfsadmin -safemode leave 退出安全模式

hadoop dfsadmin -safemode enter 进入安全模式

添加节点

可扩展性是HDFS的一个重要特性,首先在新加的节点上安装hadoop,然后修改$HADOOP_HOME/conf/master文件,加入NameNode主机名,然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新加节点主机名,再建立到新加节点无密码的SSH连接

运行启动命令:

start-all.sh

然后可以通过 node的主机名):50070查看新添加的DataNode

负载均衡

start-balancer.sh,可以使DataNode节点上选择策略重新平衡DataNode上的数据块的分布

 

Hadoop(包括HDFS)非常适合在商用硬件(commodity hardware)上做分布式存储和计算,因为它不仅具有容错性和可扩展性,而且非常易于扩展。Map-Reduce框架以其在大型分布式系统应用上的简单性和可用性而著称,这个框架已经被集成进Hadoop中。

HDFS的可配置性极高,同时,它的默认配置能够满足很多的安装环境。多数情况下,这些参数只在非常大规模的集群环境下才需要调整。
用Java语言开发,支持所有的主流平台。
支持类Shell命令,可直接和HDFS进行交互。
NameNode和DataNode有内置的Web服务器,方便用户检查集群的当前状态。
新特性和改进会定期加入HDFS的实现中。下面列出的是HDFS中常用特性的一部分:
    文件权限和授权。
    机架感知(Rack awareness):在调度任务和分配存储空间时考虑节点的物理位置。
    安全模式:一种维护需要的管理模式。
    fsck:一个诊断文件系统健康状况的工具,能够发现丢失的文件或数据块。
    Rebalancer:当datanode之间数据不均衡时,平衡集群上的数据负载。
    升级和回滚:在软件更新后有异常发生的情形下,能够回滚到HDFS升级之前的状态。
    Secondary Namenode:对文件系统名字空间执行周期性的检查点,将Namenode上HDFS改动日志文件的大小控制在某个特定的限度下。

 

具体操作可以看官方中文的示例

 

hadoop使用:
hbase实战:

 

转载地址:http://zncaa.baihongyu.com/

你可能感兴趣的文章
WCF步步为营(五):数据契约
查看>>
boost date_time
查看>>
pgpool-II的性能缺陷(二)
查看>>
LintCode: Combination Sum II
查看>>
在.net中使用强类型来读取配置信息
查看>>
前端魔法堂——异常不仅仅是try/catch
查看>>
U盘安装Centos7.0图解
查看>>
[Step By Step]如何在SAP Business Object Data Services中连接到SAP HANA 数据库
查看>>
连载-第1章绪论 1.2嵌入式处理器
查看>>
摆摆控件,就可以实现多功能(提交、修改、浏览)的表单了[原]
查看>>
使用MyEclipse开发第一个Web程序
查看>>
Visual studio 2010出现“error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决方式...
查看>>
Base64的解码和编码
查看>>
【手把手教你全文检索】Apache Lucene初探
查看>>
IIS访问共享文件详解
查看>>
[LeetCode] Decode String 解码字符串
查看>>
[LintCode] 有效回文串
查看>>
linux centos使用xrdp远程界面登陆
查看>>
I.MX6 修改调试串口号(ttymx0 -> ttymxc2)
查看>>
浅谈“领域驱动设计”
查看>>