hadoop习题(1)
大数据具有的四个典型特征是:大量多样高速价值
大数据的价值密度相对较低
有关于大数据描述错误的是大数据战略意义在于掌握庞大的数据
Hadoop 作者是?Doug cutting
Hadoop 是用(java)语言开发的。
Hadoop的三大发行版本:Apache,Cloudera,Hortonworks
如下哪一项是用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照( Secondary NameNode)
如下哪一项是用来处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度。(ResourceManager )
Google公司发表的关于哪两个方面的技术文章对Hadoop的产生起到了关键性作用?(GFS,MapReduce)
关于Hadoop在互联网领域的应用,下列哪些选项是正确的?
如下哪些可认为是Hadoop的组成( HDFS,MapReduce,YARN,Hadoop Common)
Hadoop的优势有(高可靠性,高扩展性,高效性,高容错性 )
Hadoop的组成包括( HDFS,MapReduce,YARN)
MapReduce将计算过程分为哪两个阶段:(Map )和( Reduce)。
HDFS的组成包括几个部分(NameNode,DataNode,Secondary NameNode)
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。
分布式计算是把一个大计算任务拆分成多个小计算任务,分布到若干台机器上去计算,然后进行结果汇总。
Hadoop主要用于海量数据的存储和分析计算
Hadoop采用分布式存储方式提高读写速度和扩大存储容量,并通过冗余数据存储保证数据安全。
Hadoop采用MapReduce整合HDFS上的数据,保证高速分析处理数据。
HDFS采用Master/Slave结构
MapReduce框架采用的是一种面向过程的编程方式 。
( Flume)是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
( sqoop)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
(zookeeper )是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。
( Hbase)是一个分布式的、面向列的开源数据库。
(Hive )是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表
用于检查JDK是否可用的语句( java -version)
安装好Hadoop后,默认就是单机模式。 该模式下不需要对配置文件进行修改,且使用本地文件系统,而不是分布式文件系统
Hadoop环境部署真正用于生产的就是完全分布式模式。
单机模式和伪分布式模式不能体现分布式计算的优势,因此没有什么意义这是错的
理由:尽管这两种模式不能展示出分布式计算的全部性能和优势,但它们在开发过程中起到了非常重要的作用,帮助开发人员快速迭代和调试他们的代码,减少了开发周期。
Hadoop的三种运行模式是(单机模式,伪分布式模式,完全分布式模式 )
adoop在Linux和Windows操作系统上都可以运行
安装Hadoop前无须安装JDK。错的
理由:Hadoop 是用 Java 编写的,因此需要 Java 运行环境来执行 Hadoop 程序。
单机模式是Hadoop的默认操作模式。
/etc/profile这个文件,主要是用来配置环境变量,可以让Java命令、Hadoop命令可以在任意目录下面执行。
Linux下/etc/hosts文件的作用是建立主机名和IP地址的对应关系
在安装和运行Hadoop时关闭防火墙会使Hadoop失去安全保护
用于检验Hadoop是否安装成功的命令是hadoop -version
要修改HDFS存储文件的副本个数,应该在hdfs-site.xml文件中进行修改。
hadoop-env.sh配置文件提供了Hadoop中JAVA_HOME的运行环境。
如果需要告诉Hadoop以后mapreduce 运行在yarn上,应该在mapred-site.xml文件中修改相关属性。
在 hdfs-site.xml中设置namenode的主机名和端口号。
SSH是Secure Shell(安全外壳协议)的缩写
在伪分布式模式下配置 SSH 免密登录并不会使 Hadoop 失去所有安全性
SSH是一种网络协议,专为远程登录会话和其他网络服务提供安全的协议
伪分布式模式Hadoop只安装在一台主机上,所以不必设置SSH免密登录错的
理由:在伪分布式模式下,Hadoop 的各个组件虽然运行在同一台主机上,但由于 Hadoop 是分布式计算框架,各个组件之间仍然需要进行网络通信。因此,为了方便 Hadoop 组件之间的通信,通常建议进行 SSH 免密登录的配置。
伪分布式Hadoop与单机模式Hadoop的区别是
伪分布式模式Hadoop使用HDFS作为文件系统;单机模式Hadoop使用本地文件系统。
伪分布式模式Hadoop的NameNode、DataNode、ResourceManager、NodeManager等守护进程是单独的Java进程;单机模式Hadoop不会启动这些进程,所以任务均在一个Java进程中执行。
伪分布式模式Hadoop的安装部署需要修改配置文件;单机模式Hadoop采用默认的最小配置。
伪分布式模式Hadoop需要部署多台机器;单机模式Hadoop只需要部署一台机器
伪分布式模式Hadoop的安装部署除了要配置hadoop-env.sh外,其他要配置的核心文件包括()
1. core-site.xml: 用于配置 Hadoop 的核心属性,如文件系统默认的名字、Hadoop 临时目录等。 2. hdfs-site.xml: 用于配置 Hadoop 分布式文件系统(HDFS)的属性,包括 NameNode 和 DataNode 的通信端口、数据块的大小等。 3. mapred-site.xml: 用于配置 MapReduce 框架的属性,包括 JobTracker 和 TaskTracker 的通信端口、MapReduce 框架的工作目录等。
Hadoop 的 NameNode Web UI 通常使用端口号 9870
执行stop-dfs.sh,再执行start-dfs.sh,就可以重启HDFS。
格式化NameNode的命令是hdfs namenode -format。
jps命令可以检查Namenode、Datanode、ResourceManager、NodeManager等进程是否正常工作。
在配置SSH免密登录时,我们可以使用ssh-keygen -t rsa命令生成密钥对。
伪分布式模式Hadoop和单机模式Hadoop的相同之处是运行在一台机器上。
启动Yarn命令后会出现哪些进程()
1.ResourceManager(资源管理器)
2.NodeManager(节点管理器)
3.ApplicationMaster(应用程序管理器)
4.Container(容器)
5.HistoryServer(历史服务器)
完全分布式是用3台或3台以上的主机构成的集群。
在完全分布式环境中,主节点和从节点会分开,分别部署在不同的主机上。
完全分布式Hadoop守护进程运行在每台主机之上。
完全分布式Hadoop的配置中,数据块副本个数配置为2的意思是,同一份数据在HDFS中保存2 份。
使用NTP服务可以使完全分布式Hadoop集群中不同主机的时间保持一致。
完全分布式Hadoop环境搭建中需要设置集群中各台机器的两两之间免密登录。
可以在一台机器上完成配置文件的修改,再使用scp命令分发到其他机器。
可以在每台机器上分别进行配置文件的修改。
Linux下启动HDFS的命令是(start-dfs.sh)
完全分布式Hadoop环境中,下列哪个程序通常与 NameNode 在一个节点启动?(ResourceManager)
(slaves)文件用来记录运行DataNode和NodeManager的所有主机。
HDFS默认保存 ( 3)个副本。
完全分布式Hadoop集群中,文件的读写是在(HDFS)文件系统。
HDFS高可用和Yarn高可用的架构中,对NameNode 和ResourceManager都设计了两种状态。这两种状态是(Active,Standby)
(Zookeeper)是一个为分布式应用提供一致性服务的软件
Hadoop生态圈中的很多组件都需要使用(Zookeeper)来解决单点故障问题。
在 ZooKeeper 集群中,以下是不属于 ZooKeeper 集群角色的是(master)
• Leader: 处于领导地位的节点,负责处理客户端请求和事务的提交。 • Follower: 跟随 Leader,复制 Leader 的事务并提供读服务。 • Observer: 类似于 Follower,但不参与投票,仅用于扩展集群的读取性能。
(ZKFailoverController)是一个独立的进程,对NameNode的主备切换进行总体控制。
在 HDFS HA 架构中,有两个 NameNode,一个是 Active(主) NameNode,另一个是 Standby(备) NameNode。ZKFailoverController 的主要责任是监测 Active NameNode 的健康状态,一旦检测到 Active 失效,它会使用 ZooKeeper 协调服务来进行主备切换,将 Standby 节点提升为新的 Active。
(ZooKeeper)为主备切换控制器提供主备选举支持。
(JournalNode)保存了NameNode在运行过程中所产生的元数据,主备NameNode通过它实现元数据同步。
YARN 的共享机制是直接借助(JournalNode)的存储功能完成主备节点的信息共享
一个典型的HDFS集群中,通常会有(1)个NameNode,(1)个SecondaryNameNode和至少(多)个DataNode。
(ResourceManager)用来集中管理DataNode节点统一对外提供 服务。
ResourceManager 用来集中管理 NodeManager 节点,统一对外提供服务。ResourceManager 是 YARN(Yet Another Resource Negotiator)中的一个关键组件,负责协调集群中的资源,接受客户端的应用程序提交请求,并将资源分配给应用程序的各个任务
(hdfs)是为了解决大规模数据的分布式存储问题。
HDFS会将数据文件切分成(Block)然后存放在运行DataNode守护进程的节点
HDFS采用的是一次写入、多次读取的流式数据访问模式。
HDFS能够很好地运行在廉价的硬件集群之上,以流式数据访问模式来存储管理超大数据文件
列出HDFS文件系统的根目录 hdfs dfs -ls /
在HDFS的根目录下创建两级目录 /test/mydemo hdfs dfs -mkdir -p /test/mydemo
将本地目录中的text1.txt 文件上传到HDFS上的/test/mydemo hdfs dfs -put text1.txt /test/mydemo
将HDFS上的/test/text3.txt 复制到本地系统的当前位置,并命名为text.txt hdfs dfs -get /test/test3.txt text.txt
查看HDFS中/001/text.txt文件的内容 hdfs dfs -cat /001/text.txt
最简单的MapReduce程序至少包含3个部分,分别是(map,reduce,main)。
执行 mapreduce jar 包的命令是( hadoop jar)
Map阶段的输出是<Integer,Text>,那么Reduce阶段的输入是( <Integer,Text>)
Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。
OutputFormat主要用于描述输出数据的格式,它能够将用户提供的key/value对写入特定格式的文件中
nputFormat负责处理MapReduce的输入部分,用于验证作业的输入是否规范,把输入文件切分成InputSplit,提供RecordReader的实现类把InputSplit读到Mapper中进行处理。
Combiner会被执行(一次或多次)
在 Hadoop 中,Combiner 是一个可选的中间处理步骤,用于在 Map 阶段输出到 Reduce 阶段之前对中间数据进行本地合并。
有一个mapper为每个键生成一个整数值,下面是reduce操作。这些reduce操作中,哪个可被安全地用作combiner?Reducer A :输出整数值集合的总和
(Combiner)也是一个小型的reducer,主要作用是减少输出到reduce的个数,减少reducer的输入,提高reducer的执行效率。
(Combiner )是为了避免map任务和reduce任务之间的无效数据传输而设置的。
getPartition方法带有三个形参,分别表示(Map输出的Key,Map输出的Value,ReduceTask个数)
你必须为MapReduce作业指定哪些内容?mapper和reducer类
Reduce输入过程中,包含以下哪个操作?(分组(Grouping,Shuffle(洗牌),排序(Sorting),合并(Merging))
1. 分组(Grouping): Reduce 阶段的输入是经过分组的键值对。在 MapReduce 中,Map 阶段的输出会按照键(Key)进行排序和分组,这样相同的键的值就会被组织到一起。Reduce 输入时,同一组的键值对被传递给同一个 Reduce 任务。 2. Shuffle(洗牌): 洗牌是指将 Map 阶段的输出中相同分组的数据(相同键的数据)传输到同一个 Reduce 任务的过程。这涉及到数据的网络传输,以确保每个 Reduce 任务能够得到其需要处理的数据。 3. 排序(Sorting): 在洗牌过程中,数据可能需要在传输过程中进行排序,以便 Reduce 任务能够按照键的顺序迭代处理。这确保 Reduce 任务按照键的顺序处理它们的输入。 4. 合并(Merging): Reduce 阶段的输入可能涉及到对相同键的多个值进行合并的操作。这一步是 Combiner 的本地合并,以减少数据传输量。
Reduce输入过程中,不包含以下哪个操作?排序(Sorting)
排序的过程通常是在 Map 阶段完成的,而不是在 Reduce 阶段。
Partintioner和Combiner操作发生在哪个阶段?Map 阶段,Shuffle 阶段
Partitioner(分区器): • 阶段: 发生在 Map 阶段。 • 作用: Partitioner 决定一个键值对应该被发送到哪个 Reduce 任务。它根据键的哈希值(或其他规则)将键值对分配到不同的分区中,以确保相同键的数据被发送到同一个 Reduce 任务中。
Combiner(局部聚合器): • 阶段: 发生在 Map 阶段的输出和 Shuffle 阶段之间。 • 作用: Combiner 用于在 Map 阶段输出到 Reduce 阶段之前对中间数据进行本地合并。它在每个 Map 任务的输出上执行,用于减少输出到 Reducer 的键值对的数量,从而减少 Reducer 的输入,提高整个 MapReduce 作业的性能。

浙公网安备 33010602011771号