填空
大数据时代对数据存储的挑战包括高并发读写需求、高效率存储和访问需求、高扩展性。
NoSQL是Not Only SQL的缩写,它的含义为“不仅仅是SQL”。
NoSQL是一种非关系型、分布式、不遵循ACID、不提供SQL功能的数据库。
NoSQL理论的基础是由CPA原则、BASE理论以及最终一致性奠定的。
NoSQL数据库主要有四大类型,键值对存储数据库、文档存储数据库、列式存储数据库及图形存储数据库。
当前NoSQL数据库产品中最热门的一种数据库是MangoDB。
MongoDB是由C++语言编写的。
MongoDB是一个面向集合、模式自由的文档型数据库。
MongoDB的设计采用横向扩展,可通过分片将数据分布在集群机器中。
MongoDB的逻辑结构是体系结构的一种形式。
MongoDB是一个开源、跨平台的数据库。
Mangod.exe程序用于启动MongoDB服务器。
MongoDB服务的端口号是27017。
聚合管道是使用不同的管道阶段操作器进行不同聚合操作。
MongoDB提供Map-Reduce操作来进行聚合操作。
键值对存储数据库是最简单的NoSQL数据库。
Redis数据库是基于ANSI C语言编写开发的。
Redis数据库提供了多种数据结构,其中最常见的数据结构有String、List、Set、Hash、Sorted Sets。
String字符串是Redis中最基本也是最简单的数据结构。
Set集合由不重复且无序的字符串元素组成的。
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库。
HBase是构建在HDFS文件系统之上,并为HBase提供了高可靠的底层存储支持。
当MemStore存储的数据达到一个阀值时,MemStore里面的数据就会被flush到StoreFile文件,这个阈值默认是128MB。
图形存储数据库也是NoSQL数据库的一种类型。
Neo4j公司从2003年开始研发Neo4j数据库。
实体被视为图形的节点,关系被视为图形的“边”。
Neo4j数据库使用的查询语言是Cypher。
Neo4j数据库可以运行在Windows、Linux、Mac OS等多个平台上。
大数据的4V特征包含大量、多样、高速、价值。
Hadoop三大组件包含HDFS、MapReduce、Yarn。
Hadoop2.x版本中的HDFS是由NameNode、DataNode、Secondary NameNode组成。
Hadoop发行版本分为开源社区版、商业版。
目前Apache Hadoop发布的版本主要有Hadoop1.x、Hadoop2.x、Hadoop3.x。
Hadoop集群部署方式分别是独立模式、伪分布模式和完全分布模式。
加载环境变量配置文件需要使用source/etc/profile命令。
格式化HDFS集群命令是hadoop namenode-format。
脚本一键启动Hadoop集群服务命令是start-all.sh。
Hadoop默认开设HDFS文件系统端口号50070和监控Yarn集群端口号8088。
NameNode用于维护文件系统名称并管理客户端对文件的访问,DataNode存储真实的数据块。
NameNode与DataNode通过心跳检测机制互相通信。
NameNode以元数据形式维护着fsimage、EditLog文件。
在MapReduce中,Map阶段负责将任务分解,Reduce阶段将任务合并。
MapReduce工作流程分为分片、格式化数据源、执行MapTask、执行Shuffle过程、写入文件。
Partitioner组件目的是将Key均匀分布在ReduceTask上。
Zookeeper集群主要有Leader、Follower、Observer三种角色。
Znode有两种节点,分别是永久节点、临时节点。
Zookeeper引入Watch机制实现分布式的通知功能。
System类中所提供的属性和方法都是静态的,想要引用这些属性和方法,直接使用System类调用即可。
已知 sb 为 StringBuffer 的一个实例,且 sb.toString() 的值为 "abcde ",则执行sb. reverse()后,sb.toString()的值为edcba。
Yarn的核心组件包含ResourceManager、NodeManager、ApplicationMaster。
ResourceManager内部包含了两个组件,分别是调度器(Scheduler)和应用程序管理器(Application Manager)。
数据仓库是面向主题的、集成的、非易失的和时变的数据集合,用于支持管理决策。
Hive默认元数据存储在Derby数据库中。
Hive建表时设置分割字符命令row format delimited fields terminated by char
Hive查询语句select ceil(2.34)输出内容是3。
Hive创建桶表关键字clustered by,且Hive默认分桶数量是-1。
Flume分为两个版本,分别是Flume-og、Flume-ng。
Flume的核心是把数据从数据源通过数据收集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。
Flume采用三层架构,分别为agent、collector、storage,每一层均可以水平扩展。
Flume的负载均衡接收器处理器支持使用round_robin(轮询)、random(随机)机制进行流量分配,其默认选择机制为round_robin。
Azkaban是由Linkedin公司开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。
Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的UI界面维护和跟踪工作流。
Azkaban工作流管理器的特点是所有的任务资源文件都需要打成一个zip包上传。
Azkaban工作流管理器由三个核心部分组成,具体分别是Relational Database、Azkaban WebServer、AzkabanExecutorServer、。
Azkaban提供三种部署模式:轻量级的独立服务器模式、重量级双服务器模式的和分布式多执行器模式。
Sqoop主要用于在Hadoop和关系型数据库之间进行传输数据。
Sqoop底层利用MapReduce技术以批处理方式加快了数据传输速度,并且具有较好的容错性功能。
从数据库导入HDFS时,指定以制表符作为字段分隔符参数是--fields-terminated-by’\t’。