scala补充hadoop回顾spark初识

知识点:
scala:
1.scala中如果要在一行写两段代码的话,需要用分号;隔开
2.模式匹配:(相当于java中的switch case) 不光能匹配数字还能匹配类型包括集合   
  def testmatch(i:Any)={
    i match{
          case a:Int => {println(a)}
          case b:String => {println(b)}
          case _=>{println("other")} //如果前面都不是就选这个
         }
    }
3.*表示可以传入任意数量的参数
def sum(a:Int*)={
var i = 0
for(b<-a){
i+=b
}
i
}
4.函数式编程
4.1高阶函数(将函数作为参数传给别的函数,可以对集合进行函数操作,也可以作为返回值来返回)
def add(a:Int,b:Int)={
a+b
}
def add1() = add(_:Int,2)
在调用add1的时候需要传入一个参数,然后执行的是add方法
4.2递归函数(自己调用自己,方法必须有返回值)
4.3函数柯里化(把参数一个一个独立开来写)
   def a(i:Int)(j:Int)={i+j}
4.4方法转换成函数,在方法后面加个'_'下划线
4.5匿名函数:函数没有名字
   ()=>{println(123)}
hdfs备份策略:机架感知
spark:是美国加州大学的伯克利分校的AMP实验室开发的
spark是一个基于内存的分布式计算框架
1.Mesos相当于hadoop中的yarn(资源调度平台,协调调度资源nodeManager,resourceManager)做整个平台的资源的额把控
2.Tachyon存储结构基于内存跟hdfs相似
3.Hive数据仓库(底层基于mapreduce),对外提供类sql的hql语句,进行简单的函数运算,计算比较慢。
  特点:(1)在海量数据情况下用交互式语言进行查询
  (2)Hive元数据也就是表结构,最初存在derby中,因为只能单用户访问,所以放到了mysql中
  (3)真实数据实际上是存储在hdfs上
4.storm真正的实时流式计算框架也就是只要有数据就立马进行计算
5.Spark Streaming是一个微批处理的流式计算框架 微批:数据量达到一定的微量再计算
spark生态圈:
1.sparkcore部分
2.spark streaming
3.GrophX图计算
4.机器学习库
5.sparksql 前生是sharksqk
句柄概念:建立连接
spark是一次性申请足够的资源然后进行计算,这样就少了和文件系统连接的次数,缺点浪费资源
mapredus是用多少资源申请多少资源。
hadoop:
mapreduce是一个基于磁盘迭代的计算框架,会将一个工作拆分成多个job,一个job可以由一组或多组map,reduce处理

猜你喜欢

转载自blog.csdn.net/qq_41950069/article/details/80759127
今日推荐