hadoop的灵魂19问

1 hadoop是什么
  • hadoop:适合大数据的分布式存储和计算平台

  • 其中HDFS负责将海量数据进行分布式存储,mapreduce负责提供对数据的计算结果的汇总

    • hadoop是一个高容错、高延时的分布式文件存储系统和高并发的批处理系统
2 hadoop的四大特性(优点)是什么
  • 扩容能力(Scalable):集群不够时,能够很方便的进行扩展
  • 成本低(Economical):可以用很多个普通廉价的机器组成服务器集群
  • 高效率(Efficient):通过并发数据,能在节点间动态并行的移动数据,使得速度非常快
  • 可靠性(Reliable):能自动维护数据的多份复制,并在任务失败后能自动的重新部署(redeploy)计算任务
3 hadoop高版本可以包含低版本的特性吗
  • 由于,hadoop的版本是有多条分支并行发展的,高版本不一定包含低版本的特性
4 hadoop的模块组成
  • 1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
  • 2)Hadoop MapReduce:一个分布式的离线并行计算框架。
  • 3)Hadoop YARN:作业调度与集群资源管理的框架。
  • 4)Hadoop Common:支持其他模块的工具模块。
5 hadoop有哪几种运行模式?它们各自如何运行的?
  • 1、StandAlone(local mode)运行模式

    • 无需运行任何守护进程(daemon),所有程序都在单个JVM上执行。
    • 由于在本机模式下测试和调试MapReduce程序较为方便,适合学习与开发中使用。
  • 2、伪分布式环境运行模式

    • 使用单台服务器来运行hadoop的所有进程
  • 3、集群运行模式

    • 对应的java进程运行在多台物理机器上,适合测试机集群,线上部署机集群等
  • 6 hadoop的文件系统核心模块的组成和作用。
    • 单节点架构模型:
      • NameNode:集群当中的主节点,主要用于管理集群当中的各种元数据
      • secondaryNameNode(snn):主要能用于hadoop当中元数据信息的辅助管理
      • DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
    • 高可用架构模型:
      • NameNode:

        • 主节点,主要用于管理集群当中的各种数据,一般都是使用两个,实现HA高可用
      • JournalNode:

        • 元数据信息管理进程,一般都是奇数个
      • DataNode:

        • 从节点,用于数据的存储
8 JobHistoryServer的作用
  • 专门用于查看我们的任务提交的日志
9 hadoop集群的最主要瓶颈是什么
  • 磁盘io传输
10 如何理解“hadoop”与“hadoop 生态系统”
  • hadoop是指的hadoop框架的本身,仅仅只表示自己
  • hadoop生态系统,则不仅仅只包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop、impala、spark等辅助框架。
11 列举几个hadoop生态圈的组件并做简要描述
  • 1)Zookeeper:一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护,命名服务。
  • 2)Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
  • 3)Hbase:是一个分布式的、面向列的开源数据库, 利用Hadoop HDFS作为其存储系统。
  • 4)Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据档映射为一张数据库表,并提供简单的sql 查询功能,可以将sql语句转换为MapReduce任务进行运行。
  • 5)Sqoop:将一个关系型数据库中的数据导进到Hadoop的 HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  • 6)spark:一款大规模数据处理的统一分析引擎, Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性。
12 为什么要重新编译hadoop
  • 由于CDH的所有安装包版本都给出了对应的软件版本,一般情况下是不需要自己进行编译的
  • 但是由于cdh给出的hadoop的安装包没有提供带C程序访问的接口
  • 所以我们在使用本地库(本地库可以用来做压缩,以及支持C程序等等)的时候就会出问题
13 简要描述如何安装配置apache的一个开源hadoop
  • 1)使用root账户登录
  • 2)修改IP
  • 3)修改host主机名
  • 4)配置SSH免密码登录
  • 5)关闭防火墙
  • 6)安装JDK
  • 7)解压hadoop安装包
  • 8)配置hadoop的核心文件 hadoop-env.sh,core-site.xml , mapred-site.xml , hdfs-site.xml
  • 9)配置hadoop环境变量
  • 10)格式化 hadoop namenode-format
  • 11)启动节点start-all.sh
14 Hadoop中需要哪些配置文件以及各自的作用
  • 1)core-site.xml:

    • (1) fs.defaultFS:hdfs://cluster1(域名),这里的值指的是默认的HDFS路径 。
    • (2) hadoop.tmp.dir:/export/data/hadoop_tmp,这里的路径默认是NameNode、DataNode、secondaryNamenode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录。
    • (3) ha.zookeeper.quorum:hadoop101:2181,hadoop102:2181,hadoop103:2181, 这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点 。
  • 2)hadoop-env.sh: 只需设置jdk的安装路径,如:export JAVA_HOME=/usr/local/jdk。

  • 3)hdfs-site.xml:

    • (1) dfs.replication:他决定着系统里面的文件块的数据备份个数,默认为3个。
    • (2) dfs.data.dir:datanode节点存储在文件系统的目录 。
    • (3) dfs.name.dir:是namenode节点存储hadoop文件系统信息的本地系统路径 。
  • 4)mapred-site.xml:

    • mapreduce.framework.name: yarn指定mr运行在yarn上。
15 正常工作的Hadoop集群中都分别需要启动哪些进程以及各自的作用
  • 1)NameNode它是hadoop中的主服务器

    • 管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。
  • 2)SecondaryNameNode它不是namenode的冗余守护进程

    • 而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
  • 3)DataNode它负责管理连接到节点的存储(一个集群中可以有多个节点)。

    • 每个存储数据的节点运行一个datanode守护进程。
  • 4)ResourceManager(JobTracker)JobTracker负责调度DataNode上的工作。

    • 每个DataNode有一个TaskTracker,它们执行实际工作。
  • 5)NodeManager(TaskTracker)执行任务

  • 6)DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。

    • 它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。
    • FailoverController(故障切换控制器)也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
  • 7)JournalNode 高可用情况下存放namenode的editlog文件.

16 简述Hadoop的几个默认端口及其含义
  • 1)dfs.namenode.http-address:50070
  • 2)SecondaryNameNode辅助名称节点端口号:50090
  • 3)dfs.datanode.address:50010
  • 4)fs.defaultFS:8020 或者9000
  • 5)yarn.resourcemanager.webapp.address:8088
17 Hadoop 中 job 和 task 之间的区别是什么
  • JobTracker 是一个 master 服务

    • 软件启动之后 JobTracker 接收 Job,负责调度 Job的每一个子任务
  • task 运行于 TaskTracker 上,并监控它们

  • 如果发现有失败的 task 就重新运行它

  • 一般情况应该把 JobTracker 部署在单独的机器上。

  • TaskTracker 是运行在多个节点上的 slaver 服务。

    • TaskTracker 主动与 JobTracker 通信,接收作业,并负责直接执行每一个任务。
18 hadoop的垃圾桶机制
  • 如果启用垃圾箱配置,dfs命令删除的文件不会立即从HDFS中删除。

    • 相反,HDFS将其移动到垃圾目录(每个用户在/user//.Trash下都有自己的垃圾目录)。只要文件保留在垃圾箱中,文件可以快速恢复。
  • 最近删除的文件移动到当前的垃圾目录(/user//.Trash/Current),并且在一个可配置的时间间隔内,HDFS创建检查点(在/ user / /.Trash / 下)查找当前垃圾目录中的文件,并在旧的检查点过期时删除它们。

    • 查看关于垃圾检查点的FS shell的删除命令。
    • hdfs dfs -rm -r delete/目录名
    • 跳过垃圾桶选项
    • hdfs dfs -rm -r -skipTrash delete/目录名
    • 恢复垃圾桶数据
    • hdfs dfs -mv 垃圾桶目录路径 恢复目录路径
  • 在垃圾桶里过期后,NameNode将从HDFS命名空间中删除该文件。

    • 删除文件会导致与文件关联的块被释放。
  • 请注意,用户删除文件的时间与HDFS中相应增加可用空间的时间之间可能存在明显的时间延迟。

19 Hadoop内置的数据输入输出格式与RecordReader和RecordWriter
  • 数据输入格式(InputFormat)用于描述MapReduce的作业数据输入规范。

    • MapReduce框架依靠数据输入格式完成输入规范检查(比如输入文件的目录的检查)
    • 对数据文件进行输入分块(InputSplit)
    • 以及提供从输入分块中将数据逐一读出,并转换为Map过程的输入键值对等功能。
  • 最常用的数据输入格式:TextInputFormat和KeyValueTextInputFormat

    • TextInputFormat是系统默认的数据输入格式
    • 可以将文本文件分块并逐行读入以便Map节点进行处理。
    • 读入一行时所产生的主键key就是当前在整个文本文件中的字节偏移位置
    • 而value就是该行的内容。
  • KeyValueTextInputFormat是可将一个按照<key,value>格式逐行存放的文本文件逐行读出,并自动解析生产相应的的key和value.

    • 对于一个数据输入格式(TextInputFormat和KeyValueTextInputFormat),都需要有一个对应的RecordReader方法。
    • RecordReader主要用于将一个文件中的数据记录分拆成具体的键值对传送给Map过程作为键值对
    • 输入参数。每个数据输入格式都有输入格式有一个默认的RecordReader。
    • 1,TextInputFormat的默认RecordReader是LineRecordReader。
    • 2,KeyValueTextInputFormat的默认RecordReader是KeyValueLineRrcordReader
  • 数据输出格式(OutputFormat)用于描述MapReduce作业的数据输出规范。

    • MapReduce框架依靠数据格式完成输出规范检查(如检查输出目录是否存在)
    • 以及提供作业数据输出等功能。
  • 最常用的数据输出格式是TextOutputFormat,也是系统默认的数据输出格式

    • 可以将计算结果以"key+\t+value"的形式输出到文本文件中。
  • KeyValueTextInputFormat数据输出格式也提供一个对应的RecordWriter,以便系统明确输出结果写入到文件中的具体格式。

    • KeyValueTextInputFormat的默认RecordWriter是lineRecordWriter
    • 也是将计算结果以"key+\t+value"的形式输出到文本文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值