1.使用大数据训练深度神经网络(Deep Neural Networks , 简称DNN)的方法:
- SGD: 随机梯度下降。它能够收敛于最小值点,因此当训练数据过大时,用GD可能造成内存不够用,则可用SGD。
- FTRL: 近似在线学习算法,具有非常好的稀疏性和收敛特性,在ctr预估中大量的使用。
- RMSProp: 深度学习的最优方法之一。RMSProp算法对梯度计算了微分平方加权平均数。这种做法有利于消除了摆动幅度大的方向,用来修正摆动幅度,使得各个维度的摆动幅度都较小。另一方面也使得网络函数收敛更快。
ps: L-BFGS方法:所有的数据都会参与训练,算法融入方差归一化和均值归一化。当数据集过大时,不适用于训练DNN。
2.常见的可高效运算和低耗能存储大数据的方法:
- 并行计算技术
- 分布式云存储技术
- 分布式文件系统及数据库
- 多源数据清洗及数据整合技术
3.Hadoop用来处理离线数据;spark/storm处理实时数据,流式处理
4.Hadoop MapReduce只适用于批量处理数据
5.MapReduce/Spark/Flink/Storm均支持使用YARN调度资源
6.Flink和Spark既支持批量计算,也支持流式计算
7.Spark Streaming支持秒级延迟,其吞吐量优于Storm(毫秒级)
8.请列出Hadoop进程名:
- Namenode:负责管理datanode和记录元数据。
- Secondarynamenode:负责合并日志,对一定范围内数据做快照性备份。
- Datanode:存储数据。
- ResourceManager:管理任务,并将任务分配给MRAppMaster
- NodeManager:任务执行方。
8.1 Datanode负责 HDFS 数据存储。在强制关闭或者非正常断电的情况下datanode不会备份。
8.2 JobTracker是一个后台服务进程,运行在NameNode上。启动之后,会一直监听并接收来自各个TaskTracker发送的心跳信息,包括资源使用情况和任务运行情况等信息。
其主要功能:1.作业控制:JobTracker的作业控制模块则负责作业的分解和状态监控。(最重要的是状态监控:主要包括TaskTracker状态监控、作业状态监控和任务状态监控。主要作用:容错,为任务调度提供决策依据。)2.资源管理。
8.3 NameNode主要是用来保存HDFS的元数据信息,比如命名空间信息,块信息等。
8.4 secondaryNameNode是一个用来监控HDFS状态的辅助后台程序。目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间。
8.5 TaskTracker是运行在多个节点上的slaver服务, 运行在DataNode上。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。
注: DataNode 和NameNode 是针对数据存放来而言的; JobTracker和TaskTracker是对于MapReduce执行而言的
9.HDfS 中的 block 默认保存3份
10.HDFS 默认 Block Size为64MB
11.Puppet, Pdsh 和 Zookeeper可以管理集群
12.Client 向 NameNode 发起文件写入的请求;NameNode 根据文件大小和文件块配置情况,返回给 Client 它所管理部分 DataNode 的信息;Client 将文件划分为多个 Block,根据 DataNode 的地址信息,按顺序写入到每一个DataNode 块中。
13.1 Hadoop的核心配置通过两个xml文件来完成:1,hadoop-default.xml;2,hadoop-site.xml。(现在已经不存在)
13.2 Hadoop现在拥有3个配置文件:1,core-site.xml;2,hdfs-site.xml;3,mapred-site.xml。这些文件都保存在conf/子目录下。
14.‘jps’命令可以检查Namenode、Datanode、Task Tracker、 Job Tracker是否正常工作
15.MapReduce原理采用“分而治之”