今天从Spark和Hadoop开始入手大数据开发,学到下面就学不走了
先总结下
Spark主要是用于数据的计算,Hadoop都是数据计算框架
Hadoop 一次性数据计算
框架再处理数据的时候,会从存储设备中读取数据,进行逻辑操作,然后将处理的结果重新存储到介质中。
先将文件里的数据打散,然后再合并,最后与磁盘交互,合成文件,但是在处理复杂的逻辑,性能是比较低的,因为Hadoop中mapper计算模型比较简单,在并行运行数据处理,数据挖掘等等时,因为里面只有mapper和reducer,各个job之间靠磁盘交互,所有非常影响性能。所以不适合循环迭代式数据流处理
基于以上,反观Spark,里面提供了非常丰富的数据处理模型,而且它可以基于内存,来做数据集的多次迭代,所以它就会更好的支持数据挖掘算法和图形计算。
Spark把作业job的计算结果放在了内存当中,为下一次计算提供了非常便利的数据处理的方式,效率速度非常高,但是问题是,Spark部署在共享的数据级中会出现资源不足的问题,因为Spark所占的资源会更大一些,所以Spark不推荐和Hadoop堆栈的其他组件一起使用。
Spark和Hadoop的根本差异是多个作业之间的数据通信问题:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘
磁盘的IO会影响性能(IO就是输入输出)
Spark是有应用场景的(本来有图的,上传不了)
这有了解到Spark是由Scala语言开发的,当然没学,就去听了下Scala的网课,发现Scala又是Java的改进基础,又去学习Java,哈哈哈哈哈因崔斯汀!今天就温故学习了IDEA建模块,写了个小Java程序helloworld,有点晚了明天继续,每天进步一点点!!!