一、介绍Hadoop生态圈相关组件
核心组件有:Hdfs、Yarn、MapReduce;
广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hdfs、yarn、hbase、hive、spark、pig、zookeeper、kafka、flume、phoenix、sqoop。
二、详细介绍MapReduce的特点及运行架构
MapReduce特点
适合数据复杂度运算
不适合算法复杂度的运算
不适合实时计算、流式计算、DAG有向图计算
综上,要求算法足够简单,数据可以足够大
MapReduce架构
执行流程
MapReduce包含四个组成部分
Client
JobTracker
TaskTracker
Task
Map算法Reduce数据
从HDFS出来Split[0,1,……],用getsplit()分片。Split数量决定MapTask数量,即MapTask数量无法自己决定。
Map主要就是用来对数据进行切分。
Map流程
Inputformat:首先将 HDFS 中的数据以 Split 方式作为 MapReduce 的输入
Mapper:每个Mapper 将输入(key,value)数据解析成输出(key,value)
Partition:根据key或value及reduce的数量来决定当前的这对输出数据最终应该交由哪个reduce task处理( Partitioner接口,默认自动完成,可定制)
Combine:缓存溢写时完成,如果有很多个相同key/value对需要发送到某个reduce端去,那么需要将这些key/value值拼接到一块,减少与partition相关的索引记录(reducer接口,默认自动完成,可定制)
Merge:溢写文件合并,同时再次执行Combiner(默认自动完成)
Reduce流程
Copy:简单地拉取数据
Merge:同map Merge,文件合并
Reducer:每个Reducer将输入(key,value)数据解析成输出(key,value)
把结果放到HDFS上
三详细介绍spark 的特点,并与MapReduce做对比说明区别
1.快速
逻辑回归算法一般需要多次迭代。分别使用Hadoop MapReduce和 Spark运行逻辑回归算法,Spark的运行速是Hadoop MapReduce运行速度的100多倍,如图 1-2所示。一般情况下,对于迭代次数较多的应用程序,Spark在内存中的运行速度是HadoopMapReduce运行速度的 100多倍,Spark在磁盘上的运行速度是Hadoop MapReduce运行速度的10多倍。
Spark 与 Hadoop MapReduce的运行速度差异较大的原因是,Spark的中间数据存放于内存中,有更高的迭代运算效率,而HadoopMapReduce每次迭代的中间数据存放于HDFS中,涉及硬盘的读写,运算效率相对较低。
2.易用
Spark 支持使用 Scala、Python、Java、R等语言快速编写应用。此外,Spark 提供超过80个高阶算子,使得编写并行应用程序变得容易。并且Spark 提供Scala、Python和R等语言的交互模式界面,使得Spark编程的学习更加简便。
3.通用
Spark可以与SQL语句、实时计算及其他复杂的分析计算进行良好的结合。Spark框架包含多个紧密集成的组件,包括Spark SQL(即席查询)、Spark Streaming(实时流处理)、 Spark MLlib(机器学习库)、Spark GraphX(图计算),如图1-3所示,并且Spark支持在一个应用中同时使用这些组件。相较于Hadoop的MapReduce框架,Spark无论在性能还是在方案统一性等方面,都有着极大的优势。Spark全栈统一的解决方案非常具有吸引力,可极大地减少平台部署、开发和维护的人力和物力成本。
4.随处运行
用户可以使用Spark的独立集群模式运行Spark,也可以在亚马逊弹性计算云(Amazon Elastic Compute Cloud,Amazon EC2)、Hadoop YARN资源管理器或Apache Mesos上运行 Spark.Spark作为一个分布式计算框架,本身并没有存储功能,但是Spark可以从HDFS、 Cassandn、HBase、Hive、Alluxio (Tachyon)等数据源中读取数据。
5.代码简洁
Spark 支持使用 Scala、Python等语言编写代码。Scala和Python的代码相对Java的代码而言比较简洁,因此,在Spark中一般都使用Scalu 或Python编写应用程序,这也比在 MapReduce中编写应用程序简单方便。例如,MapReduce实现单词计数可能需要60多行代码,而Spark 使用 Scala 语言实现只需要一行,如代码1-1所示。
四、熟练掌握Linux操作命令并演示说明
五、冷备温备热备
冷备:读写操作均不可进行
温备:读操作可执行;但写操作不可执行
热备:读写操作均可执行
MyISAM:温备,不支持热备
InnoDB:都支持
物理和逻辑备份
物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快
逻辑备份:从数据库中“导出”数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度
备份时需要考虑的因素
温备的持锁多久
备份产生的负载
备份过程的时长
恢复过程的时长
备份什么数据
六、数据类型(举例说明)
int、long、short、unsigned、char、float、double、signed、_Bool、_Complex和_Imaginary