一、大数据云计算好不好学习?
大数据云计算等专业作为当下热门的互联网行业高新领域,被各大互联网企业大量需求,都是非常不错的选择。
哪个更值得学没有明确答案,根据每个人情况不同答案是不同的。云计算的学习难度比大数据略简单,但学习最好大专以上。只要你技术到位,未来的就业前景还是非常好的!
大数据学习内容主要有:
①JavaSE核心技术;
②Hadoop平台核心技术、Hive开发、HBase开发;
③Spark相关技术、Scala基本编程;
④掌握Python基本使用、核心库的使用、Python爬虫、简单数据分析;理解Python机器学习;
⑤大数据项目开发实战,大数据系统管理优化等。
云计算学习主要内容有:
①网络基础与linux系统的管理;
②优化及高可用技能;
③虚拟化与云平台技术;
④开发运维。
二、hadoop和spark是什么关系啊?
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
优势应该在于分布式架构比较相似能快速上手吧
三、R 语言怎样进行分布式计算
这个可能比较麻烦,需要对R程序的底层API和package都要进行重构以适应分布式运算和分布式文件存储,现在好像没有什么好办法,因为现在很多包如果放到分布式上面可能都不能运行。有程序方面的原因,也有可能很多统计算法并不适合分布式计算
简单说就是R语言和Spark的一个接口,可以通过R语言调用Spark的计算能力,把计算任务分配到Spark的节点上来做。
亮点:
1、近乎完整的dplyr语法!用过dplyr的同学一定知道这套语法是多么的人性化…
2、可以直接调用Spark的机器学习能力!再也不用纠结pull到R里面的数据不够...
3、不要钱……
弱点:
1、如果不是Spark包自带的算法的话还是要自己Call Spark API写…要懂一点分布式开发
2、仔细一想这就是给Spark做了个壳...不能说是用R在做分布式运算orz
至于Microsoft...现在有Microsoft R Server, 提供了很多R原生函数的High Performance Analysis版本,可以实现并行运算...
四、谈谈RDD,DataFrame,Dataset的区别和各自的优势
RDD、DataFrame和DataSet是容易产生混淆的概念,必须对其相互之间对比,才可以知道其中异同。
RDD和DataFrame
RDD-DataFrame
上图直观地体现了DataFrame和RDD的区别。左侧的RDD[Person]虽然以Person为类型参数,但Spark框架本身不了解
Person类的内部结构。而右侧的DataFrame却提供了详细的结构信息,使得Spark
SQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。DataFrame多了数据的结构信息,即schema。RDD是分布式的
Java对象的集合。DataFrame是分布式的Row对象的集合。DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效
率、减少数据读取以及执行计划的优化,比如filter下推、裁剪等。
提升执行效率
RDD
API是函数式的,强调不变性,在大部分场景下倾向于创建新对象而不是修改老对象。这一特点虽然带来了干净整洁的API,却也使得Spark应用程序在运
行期倾向于创建大量临时对象,对GC造成压力。在现有RDD
API的基础之上,我们固然可以利用mapPartitions方法来重载RDD单个分片内的数据创建方式,用复用可变对象的方式来减小对象分配和GC的
开销,但这牺牲了代码的可读性,而且要求开发者对Spark运行时机制有一定的了解,门槛较高。另一方面,Spark
SQL在框架内部已经在各种可能的情况下尽量重用对象,这样做虽然在内部会打破了不变性,但在将数据返回给用户时,还会重新转为不可变数据。利用
DataFrame API进行开发,可以免费地享受到这些优化效果。
减少数据读取
分析大数据,最快的方法就是 ——忽略它。这里的“忽略”并不是熟视无睹,而是根据查询条件进行恰当的剪枝。
上文讨论分区表时提到的分区剪 枝便是其中一种——当查询的过滤条件中涉及到分区列时,我们可以根据查询条件剪掉肯定不包含目标数据的分区目录,从而减少IO。
对于一些“智能”数据格 式,Spark
SQL还可以根据数据文件中附带的统计信息来进行剪枝。简单来说,在这类数据格式中,数据是分段保存的,每段数据都带有最大值、最小值、null值数量等
一些基本的统计信息。当统计信息表名某一数据段肯定不包括符合查询条件的目标数据时,该数据段就可以直接跳过(例如某整数列a某段的最大值为100,而查
询条件要求a > 200)。
此外,Spark SQL也可以充分利用RCFile、ORC、Parquet等列式存储格式的优势,仅扫描查询真正涉及的列,忽略其余列的数据。