Hadoop使用(二)

前提和设计目标 硬件错误 硬件错误是常态而不是异常。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

然后可以通过http://(Master 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改动日志文件的大小控制在某个特定的限度下。

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

http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据平台TBDS

HDFS 2.x 磁盘间数据均衡的一种可行办法

当HDFS的datanode节点挂载多个磁盘时,往往会出现两种数据不均衡的情况:

61011
来自专栏别先生

一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)

1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS)和MapReduce(Google...

2755
来自专栏行者悟空

Hadoop之HDFS概念与体系结构

3515
来自专栏祝威廉

StreamingPro 再次支持 Structured Streaming

之前已经写过一篇文章,StreamingPro 支持Spark Structured Streaming,不过当时只是玩票性质的,因为对Spark 2.0+ 版...

1003
来自专栏企鹅号快讯

大数据干货系列(二)-HDFS1.0

本文共计876字,预计阅读时长五分钟 一、本质 HDFS(Hadoop Distributed File System)是一种适合运行在通用硬件上的分布式文件系...

2707
来自专栏搜云库

Hadoop-2.7.4 集群快速搭建

Hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力...

3267
来自专栏Hadoop实操

Cloudera Manager管理控制台

Cloudera Manager管理控制台(Cloudera Manager Admin Console)是一个基于Web的用户界面,用于配置,管理和监控CDH...

1.3K11
来自专栏LanceToBigData

Hadoop(四)HDFS集群详解

前言   前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群。接下来这篇我详细的分享一下HDFS。   H...

5149
来自专栏LuckQI

Java大数据学习~Hadoop初识一了解其架构

923
来自专栏灯塔大数据

每周学点大数据 | No.63 Hadoop MapReduce 实践—环境搭建(下)

NO.63  Hadoop MapReduce 实践—环境搭建(下) Mr. 王:vim 是Linux 下开源的文本编辑器,它的功能非常强大,受到广大编程爱好...

3465

扫码关注云+社区

领取腾讯云代金券