hadoop的问题(自我学习)
存储数据
数据可以存储在 HDFS 或 NoSQL 数据库,如 HBase。HDFS 针对顺序访问和“一次写入和多次读取”的使用模式进行了优化。HDFS 具有很高的读写速率,因为它可以将 I / O 并行到多个驱动器。HBase 在 HDFS 之上,并以柱状方式将数据存储为键/值对。列作为列家族在一起。HBase 适合随机读/写访问。在 Hadoop 中存储数据之前,你需要考虑以下几点:
数据存储格式:有许多可以应用的文件格式(例如 CSV,JSON,序列,AVRO,Parquet 等)和数据压缩算法(例如 snappy,LZO,gzip,bzip2 等)。每个都有特殊的优势。像 LZO 和 bzip2 的压缩算法是可拆分的。
数据建模:尽管 Hadoop 的无模式性质,模式设计依然是一个重要的考虑方面。这包括存储在 HBase,Hive 和 Impala 中的对象的目录结构和模式。Hadoop 通常用作整个组织的数据中心,并且数据旨在共享。因此,结构化和有组织的数据存储很重要。
元数据管理:与存储数据相关的元数据。
多用户:更智能的数据中心托管多个用户、组和应用程序。这往往导致与统治、标准化和管理相关的挑战。
4、运行Hadoop集群需要哪些守护进程?
DataNode,NameNode,TaskTracker和JobTracker都是运行Hadoop集群需要的守护进程。
5、Hadoop支持哪些操作系统部署?
Hadoop的主要操作系统是Linux。 但是,通过使用一些额外的软件,也可以在Windows平台上部署,但这种方式不被推荐。
6、Hadoop常见输入格式是什么?
三种广泛使用的输入格式是:
·文本输入:Hadoop中的默认输入格式。
·Key值:用于纯文本文件
·序列:用于依次读取文件
7、RDBMS和Hadoop的主要区别是什么?
RDBMS用于事务性系统存储和处理数据,而Hadoop可以用来存储大量数据。
9、如何在生产环境中部署Hadoop的不同组件?
需要在主节点上部署jobtracker和namenode,然后在多个从节点上部署datanode。
10、添加新datanode后,作为Hadoop管理员需要做什么?
需要启动平衡器才能在所有节点之间重新平均分配数据,以便Hadoop集群自动查找新的datanode。要优化集群性能,应该重新启动平衡器以在数据节点之间重新分配数据。
11、namenode的重要性是什么?
namenonde的作用在Hadoop中非常重要。它是Hadoop的大脑,主要负责管理系统上的分配块,还为客户提出请求时的数据提供特定地址。
13、当NameNode关闭时会发生什么?
如果NameNode关闭,文件系统将脱机。
14、是否可以在不同集群之间复制文件?如果是的话,怎么能做到这一点?
是的,可以在多个Hadoop集群之间复制文件,这可以使用分布式复制来完成。
15、是否有任何标准方法来部署Hadoop?
现在有使用Hadoop部署数据的标准程序,所有Hadoop发行版都没有什么通用要求。但是,对于每个Hadoop管理员,具体方法总是不同的。
18、什么是检查点?
对文件数据的修改不是直接写回到磁盘的,很多操作是先缓存到内存的Buffer中,当遇到一个检查点Checkpoint时,系统会强制将内存中的数据写回磁盘,当然此时才会记录日志,从而产生持久的修改状态。因此,不用重放一个编辑日志,NameNode可以直接从FsImage加载到最终的内存状态,这肯定会降低NameNode启动时间。
hadoop 的集群是基于 master/slave 模式,
namenode 和 jobtracker 属于 master,
datanode 和 tasktracker 属 于 slave ,
master 只 有 一 个 , 而 slave 有多个
SecondaryNameNode 内存需求和 NameNode 在一个数量级上,所以通常 secondary
NameNode(运行在单独的物理机器上)和 NameNode 运行在不同的机器上。
JobTracker 和 TaskTracker
JobTracker 对应于 NameNode
TaskTracker 对应于 DataNode
DataNode 和 NameNode 是针对数据存放来而言的
JobTracker 和 TaskTracker 是对于 MapReduce 执行而言的
mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:obclient,JobTracker 与 TaskTracker。