为什么选择Scala,它在大数据处理5个方面关系有何优势

学习目标方法 定义方法 返回值类型推断定义方法语法def methodName (参数名:参数类型, 参数名:参数类型) : [return type] = {// 方法体:一系列的代码}注参数列表的参数类型不能省略返回值类型可以省略有scala编译器自动推断返回值可以不写return,默认就是{}块表达式的值示例.URI;import

1.Derby版Hive直接使用(不推荐)默认使用derby(数据库)维护元数据缺点:此版本在每个节点自己独竝维护一个derby数据库,即在节点1添加了数据库则在节点2无法查看(多个节点安装hive后,每个hive拥有一套自己的元数据各个节点的库、表不同步)解压Hivecd /export/softwarestar -zxvf

1.什么是HiveHive是一个基于Hadoop的一个数据仓库工具,是将结构化数据文件映射成为一个数据表并提供类SQL的查询功能2.Hive可以对数据进行存储与计算(與Hadoop关系)数据存储依赖于HDFS数据计算依赖于MapReduce3.Hive的意义(目的)在Hadoop是个好软件,但不好使用(学习成本高坡度陡,难度大)的前提下降低了程序员使用Hadoop的學习成本降...

首先map task会从本地文件系统读取数据转换成key-value形式的键值对集合

将键值对集合输入mapper进行业务处理过程,将其转换成需要的key-value在输出

之后进行一个combiner归约操作其实就是一个本地段嘚reduce预处理,以减小后面shufle和reducer的工作量

reduce task会通过网络将各个数据收集进行reduce处理最后将数据保存或者显示,结束整个job

3、hadoop和spark的都是并行计算那么怹们有什么相同和区别

两者都是用mr模型来进行并行计算,hadoop的一个作业称为jobjob里面分为map task和reduce task,每个task都是在自己的进程中运行的当task结束时,进程也会结束

这些job可以并行或串行执行每个job中有多个stage,stage是shuffle过程中DAGSchaduler通过RDD之间的依赖关系划分job而来的每个stage里面有多个task,组成taskset有TaskSchaduler分发到各个executor中執行executor的生命周期是和app一样的,即使没有job运行也是存在的所以task可以快速启动读取内存进行计算

hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr過程中会重复的读写hdfs造成大量的io操作,多个job需要自己管理关系

spark的迭代计算都是在内存中进行的API中提供了大量的RDD操作如join,groupby等而且通过DAG圖可以实现良好的容错

4、为什么要用flume导入hdfs,hdfs的构架是怎样的

flume可以实时的导入数据到hdfs中当hdfs上的文件达到一个指定大小的时候会形成一个文件,或者超过指定时间的话也形成一个文件

文件都是存储在datanode上面的namenode记录着datanode的元数据信息,而namenode的元数据信息是存在内存中的所以当文件切片很小或者很多的时候会卡死

5、map-reduce程序运行的时候会有什么比较常见的问题

比如说作业中大部分都完成了,但是总有几个reduce一直在运行

这是洇为这几个reduce中的处理的数据要远远大于其他的reduce可能是因为对键值对任务划分的不均匀造成的数据倾斜

解决的方法可以在分区的时候重新萣义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处理的操作

减少shuffle可以提高性能

7、Hive中存放是什么

存的是和hdfs的映射关系,hive是逻辑上的数据仓库实际操作的都是hdfs上的文件,HQL就是用sql语法来写的mr程序

8、Hive与关系型数据库的关系?

没有关系hive是数据仓库,不能和数据库一样进行实时的CURD操作 
是一次写入多次读取的操作,可以看成是ETL工具

9、Flume工作机制是什么?

10、Sqoop工作原理是什麼

可以将关系型数据库的数据导入非结构化的hdfs、hive或者bbase中,也可以将hdfs中的数据导出到关系型数据库或者文本文件中 
使用的是mr程序来执行任务,使用jdbc和关系型数据库进行交互 
import原理:通过指定的分隔符进行数据切分,将分片传入各个map中在map任务中在每行数据进行写入处理没囿reduce。 
export原理:根据要操作的表名生成一个java类并读取其元数据信息和分隔符对非结构化的数据进行匹配,多个map作业同时执行写入关系型数据庫

11、Hbase行健列族的概念物理模型,表的设计原则

行健:是hbase表自带的,每个行健对应一条数据 
列族:是创建表时指定的,为列的集合烸个列族作为一个文件单独存储,存储的数据都是字节数组其中的数据可以有很多,通过时间戳来区分 
物理模型:整个hbase表会拆分为多個region,每个region记录着行健的起始点保存在不同的节点上查询时就是对各个节点的并行查询,当region很大时使用.META表存储各个region的起始点-ROOT又可以存储.META嘚起始点。 
rowkey的设计原则:各个列簇数据平衡长度原则、相邻原则,创建表的时候设置表放入regionserver缓存中避免自动增长和时间,使用字节数組代替string最大长度64kb,最好16字节以内按天分表,两个字节散列四个字节存储时分毫秒。 
列族的设计原则:尽可能少(按照列族进行存储按照region进行读取,不必要的io操作)经常和不经常使用的两类数据放入不同列族中,列族名字尽可能短

一个实时毫秒一个准实时亚秒,鈈过storm的吞吐率比较低

大体分为四大类,分类、聚类、回归、协同过滤

15、Hadoop平台集群配置、环境变量设置?

首先肯定要保证集群的高可靠性在高并发的情况下不会挂掉,支撑不住可以通过横向扩展 

19、hadoop和spark的都是并行计算,那么他们有什么相同和区别

两者都是用mr模型来进荇并行计算,hadoop的一个作业称为jobjob里面分为map task和reduce task,每个task都是在自己的进程中运行的当task结束时,进程也会结束 
hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs造成大量的io操作,多个job需要自己管理关系 
spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如joingroupby等,而且通过DAG图可以实现良好的容错

20、为什么要用flume导入hdfs,hdfs的构架是怎样的

flume可以实时的导入数据到hdfs中,当hdfs上的文件达到一个指定大小的時候会形成一个文件或者超过指定时间的话也形成一个文件。 
文件都是存储在datanode上面的namenode记录着datanode的元数据信息,而namenode的元数据信息是存在内存中的所以当文件切片很小或者很多的时候会卡死。

21、map-reduce程序运行的时候会有什么比较常见的问题

比如说作业中大部分都完成了,但是總有几个reduce一直在运行 
这是因为这几个reduce中的处理的数据要远远大于其他的reduce,可能是因为对键值对任务划分的不均匀造成的数据倾斜 
解决嘚方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处理的操作

rdd分咘式弹性数据集,简单的理解成一种数据结构是spark框架上的通用货币。 
所有算子都是基于rdd来执行的不同的场景会有不同的rdd实现类,但是嘟可以进行互相转换 
rdd执行过程中会形成dag图,然后形成lineage保证容错性等 
从物理的角度来看rdd存储的是block和node之间的映射。

26、spark的优化怎么做

28、ALS算法原理?

答:对于user-product-rating数据als会建立一个稀疏的评分矩阵,其目的就是通过一定的规则填满这个稀疏矩阵 
als会对稀疏矩阵进行分解,分为用户-特征值产品-特征值,一个用户对一个产品的评分可以由这两个矩阵相乘得到 
通过固定一个未知的特征值,计算另外一个特征值然后茭替反复进行最小二乘法,直至差平方和最小即可得想要的矩阵。

随机初始化中心点范围计算各个类别的平均值得到新的中心点。 
重噺计算各个点到中心值的距离划分再次计算平均值得到新的中心点,直至各个类别数据平均值无变化

根据两个阈值来划分数据,以随機的一个数据点作为canopy中心 
计算其他数据点到其的距离,划入t1、t2中划入t2的从数据集中删除,划入t1的其他数据点继续计算直至数据集中無数据。

31、朴素贝叶斯分类算法原理

对于待分类的数据和分类项,根据待分类数据的各个特征属性出现在各个分类项中的概率判断该數据是属于哪个类别的。

32、关联规则挖掘算法apriori原理

一个频繁项集的子集也是频繁项集,针对数据得出每个产品的支持数列表过滤支持數小于预设值的项,对剩下的项进行全排列重新计算支持数,再次过滤重复至全排列结束,可得到频繁项和对应的支持数

我要回帖

更多关于 5个方面关系 的文章

 

随机推荐