一、选择题

1. 下面哪一项不是mongodb的数据模型?( A )

A、column B、field C、collection D、database

2. HDFS的NameNode http服务的默认端口是?( C )

A、8080 B、8088 C、50070 D、9000

3. 启动Hadoop集群HDFS时,需要在那个组件所在的服务器上执行启动指令?( B )

A、DataNode B、NameNode C、Secondary NameNode D、ResourceManager

4. Hive 的元数据存储在 derby 和 MySQL 中有什么区别?( B )

A、没区别 B、多会话 C、支持网络环境 D、数据库的区别

5. 下面哪个程序负责 HDFS 数据存储?( C )

A、NameNode B、Jobtracker C、Datanode D、secondaryNameNode

6. 关于SecondaryNameNode 下面哪项是正确的( C )

A、它是NameNode 的热备 B、它对内存没有要求

C、它的目的是帮助NameNode 合并编辑日志,减少 NameNode 启动时间

D、SecondaryNameNode 应与NameNode 部署到一个节点

7. 对于hbase Region分裂描述不正确的是( B )

A、随着数据不断写入Region,达到一定阀值时,Region会自动分裂

B、Region分裂的阀值固定为10G,与hBase版本无关。

C、MemStore缓存刷新值默认其值为128M

D、Hbase如果采用IncreasingToUpperBoundRegionSplitPolicy分裂策略,在第4次及之后都会按照10G分裂

8. 以下哪个不是Spark的组件( D )

A、Driver B、SparkContext C、ClusterManager D、ResourceManager

9. 对于ECharts描述不正确的是( C )

A、ECharts是由百度商业前端数据可视化团队研发的图表库

B、ECharts 提供了非常丰富的图表类型,常规的折线图,柱状图,散点图,饼图,K线图,用于统计的盒形图,用于地理数据可视化的地图,热力图,线图等。

C、ECharts提供了2个版本:精简版和完全版 D、ECharts底层用的是javascript封装

10. mongodb的默认端口是( B )

A、9000 B、27017 C、2181 D、6379

11. Redis的数据类型不包括( C )

A、String B、Hash C、Map D、List

12. 下面对于HRegionServer、HRegion、HStore、StoreFile,Memstore的关系说法不正确的是?( C )

A、HRegionServer包含多个HRegion B、HRegion包含多个HStore

C、HStore包含多个Memstore D、HStore包含多个storeFile

13. 下面哪个hbase shell命令用于查询单行数据?( B )

A、put B、get C、scan D、list

14. 对Hbase核心组件描述不正确的是?( C )

A、HMaster 主要负责 Table 和 Region 的管理工作

B、HRegionServer 主要负责响应用户 I/O 请求, 向 HDFS 文件系统中读写数据,是 HBase 中最核心的模块

C、一个RegionServer中包含唯一的多个HLog实例,HLog用于实现预写日志

D、HRegion里包含了很多HStore,HStore对应于HBase表的列族

15. 安装Hadoop2.0以上版本完全集群模式时哪个组件不是必须的?( C )

A、HDFS B、Yarn C、zookeeper D、MapReduce

16. hbase scan过滤查询描述不正确的是?( D )

A、Limit用于限制查询数据的条数 B、可以使用columns限定查询具体的哪些列的数据。

C、ValueFilter可以限制查询具体的某一个值的数据

D、STARTROW和STOPROW用于查询在某一个范围内的rowkey的数据,包含结尾。

17. 以下哪一项不属于Hadoop可以运行的模式?( C )

A. 单机(本地)模式 B.伪分布式模式 C.互联模式 D.完全集群模式

18. Worker是( B )

A、主节点 B、从节点 C、执行器 D、上下文

19. 下面对Hbase的自动拆分策略说法不正确的是( D )

A、ConstantsizeRegionSplitPolicy按固定的大小值拆分Region。这个固定的大小值默认为10G.

B、IncreasingToUpperBoundRegionSplitPolicy 当表的片分为1-99时,按照拆分次数的3次方*hbase.increasing.policy.initial.size进行拆分。

C、hbase.increasing.policy.initial.size的默认值为memstore的大小*2

D、当memstore的大小设置为256M时,使用IncreasingToUpperBoundRegionSplitPolicy进行拆分,在第四次拆分以后,每次拆分的大小都时固定的10G。

20. 对于Echarts常用组件描述不正确的是?( A )

A、Echarts工具栏组件是:tool。针对制作的图表的一些操作,例如导出图片,数据视图,动态类型切换,数据区域缩放,重置五个工具

B、Echarts标题组件是:title。标题有分为主标题和副标题,而且还可以为标题设置连接,文字属性等等

C、Echarts提示框组件是:tooltip。当鼠标点击或者滑过图表中的点线时,弹出关于这点线的数据信息。

D、Echarts图例组件是:legend。用于展现标记(symbol),颜色和名字。

二、填空题

  1. Spark的运行模式有localYARNstandalone
  2. hadoop 2.x包含三个核心组件:hdfsmapreduceyarn
  3. 云计算服务三层模型是:SaasPaasIaas
  4. hadoop主要包括Apache HadoopCloudera HadoopHortonworks Hadoop三大版本
  5. 云计算关键技术包括:虚拟化分布式存储分布式计算多租户
  6. HBase中需要根据行键列族列限定符时间戳来确定一个单元格。

7. 推动大数据发展的技术支撑包括:

1. 存储设备容量不断增加
2. CPU处理能力大幅提升
3. 网络宽带不断增加
4. 数据产生方式的变革
  1. Hive的集合数据类型 arraymapstruct
  2. HBase数据模型主要包括列簇列限定符行键
  3. hive的元数据可以存在:derby数据库mysql数据库
  4. 常用的数据可视化开发技术有:D3Echarts

三、简答题

1. 列出你所知道的大数据在不同领域的应用
  1. 推荐系统
  2. 生物系统
  3. 物流管理
  4. 智能交通
  5. 城市规划
  6. 安防领域
  7. 环保监测
2.试述hbase各功能组件及作用
  1. 库函数:链接到每个客户端;
  2. 一个 Master 主服务器:主服务器 Master 主要负责表和 Region 的管理工作;
  3. 许多个 Region 服务器: Region 服务器是 HBase 中最核心的模块,负责维护分配给自己的 Region ,并响应用户的读写请求
3. Spark是基于内存计算的大数据计算平台,试述 Spark的主要特点。
  1. 运行速度快
  2. 容易使用
  3. 通用性
  4. 运行模式多样
4. 使用hbase shell命令完成下面操作:
  1. 创建hbase 表studentInfo,包含一个列族info,版本数为2
  2. 添加数据studentNo:2017001 name:xxx到列族info中,其中studentNo作为rowkey
  3. 删除studentInfo表。

(1)create ‘studenInfo’,{NAME => ‘info’, VERSIONS => 2}

(2)put ‘‘studenInfo’’,‘2017001’,‘info:name’,'xxx’

(3)Disable studentInfo

Drop studentInfo

5. 试述数据库的 ACID四性的含义
  1. 原子性( Atomicity)

指事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。

  1. 一致性( consistency)

指事务在完成时,必须使所有的数据都保持一致状态。

  1. 隔离性( Isolation)

指并发事务所做的修改必须与其他并发事务所做的修改隔离。

  1. 持久性( Durability)

指事务完成之后, 它对于系统的影响是永久性的, 该修改即使出现致命的系统故障也将一直保持

6. 写出云数据库具有的特点

(1)动态可扩展(2)高可用性 (3)较低的使用代价

(4)易用性 (5)高性能 (6)免维护 (7)安全

7. 使用hadoop shell查看HDFS上 /1001/data 目录下的所有文件和文件夹,并上传文件info.txt到该文件夹下,上传成功以后删除/1001/data下的所有文件和文件夹。

查看:hdfs dfs -ls /1001/data/

上传:hdfs dfs -put info.txt /1001/data/

删除:hdfs dfs -rm -r /1001/data/

7. hbase表studentInfo有一个列族info,列族中的数据如下:studentNo:2017001,name:zhangsan,banji:1,score:78,请创建hive表student映射hbase数据,并按班级汇总最高分,最低分和平均分插入hive_sum表。
create external table hive_bigdata(id string,name string ,banji string,age int)
stored by ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
with serdeproperties (“hbase.columns.mapping” = “:key,info:name,info:banji,info:score”)
tblproperties (“hbase.table.name” = “studentInfo”);
insert into hbase_sum select banji,avg(score),max(score),min(score) from hive_bigdata group by banji;
7. 试述 HBase 各功能组建及其作用
  1. 库函数:链接到每个客户端;
  2. 一个 Master 主服务器:主服务器 Master 主要负责表和 Region 的管理工作;
  3. 许多个 Region 服务器: Region 服务器是 HBase 中最核心的模块,负责维护分配给自己的 Region ,并响应用户的读写请求

四、编程题

现有搭建完成的hbase完全集群模式环境,hadoop集群和hbase已经启动,已知hbase的zookeeper配置如下:
<property>
   <name>hbase.zookeeper.quorum</name>
  <value>hadoop2:2181,hadoop3:2181,hadoop4:2181</value>
   <description>The directory shared by RegionServers.
   </description>
 </property>
请使用java方法补全以下代码:
(1)建立与hbase连接(4 分)
       Configuration config = HBaseConfiguration.______;
       Connection connect = ConnectionFactory.______;
(2)创建Hbase表studentInfo, 并存入信息(16 分)
       //使用conn获取admin
       Admin admin = connect.______;
       //初始化tableName
       TableName tableName = TableName.______;
       HTableDescriptor hTableDescriptor = new ______;
       HColumnDescriptor hColumnDescriptor = new ______;
       hTableDescriptor.______;
       //使用admin创建Hbase的表
       admin.______;
       Put put = new Put(Bytes.toBytes(rowkey));
       //数据:cf,qualifier,value 列簇,列限定符,列值
 put.addColumn(Bytes.toBytes(cf),Bytes.toBytes(qualifier), Bytes.toBytes(value));
       table.______;
//关闭
       table.______;

答案:

(1)建立与hbase连接(4 分)

create()//2分
createConnection(config)//2分

 (2)创建Hbase表studentInfo, 并存入信息(16 分)

 getAdmin()//2分

 TableName.valueOf("studentInfo")//2分

 HTableDescriptor(tableName)//2分

 HColumnDescriptor("info")//2分

 addFamily(hColumnDescriptor)//2分

 createTable(hTableDescriptor)//2分

 put(put)//2分

 close()//2分