Hadoop ,Mapreduce,Spark的区别

Hadoop ,Mapreduce,Spark的区别

1.Hadoop是一种用于处理和存储海量数据的分布式系统开源软件,核心部分为:HDFS,YARN,Mapreduce

  • HDFS是分布式文件系统,HDFS通过数据备份,并且把文件分块存储在不同的计算机节点上实现高容错性
  • YARN用于Hadoop的资源调度,作业调度,相当于Hadoop的操作系统
  • Mapreduce是分布式计算框架,由Map阶段(分配子任务到各个节点),Shuffle阶段(将Map结果排序,此阶段是系统自带的,使用者不能更改),Reduce阶段(将排序后的结果汇总)

2.Spark与Mapreduce类似,也是一种分布式计算框架,是一种与 Hadoop 相似的开源集群计算环境。与Mapreduce不同的是,Mapreduce需要将中间结果转化为文件存储在HDFS中,但Spark在处理数据时,将所有的中间结果存放在内存中,因此,Spark的性能相对于Mapreduce更高。
值得注意的是:Spark但仅仅只是中间结果存在内存,海量的大数据初始值以及得出的结果依然需要借助于HDFS来存储,因此“Spark是站在Hadoop的肩膀上起飞的”(偶然看到这句话,觉得挺有道理的)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用pyspark中的算子对给定单词进行计数的代码: ```python # 导入pyspark库 from pyspark import SparkContext # 创建SparkContext对象 sc = SparkContext("local", "Word Count") # 定义要计数的单词列表 words = ['hadoop', 'spark', 'spark', 'mapreduce', 'spark', 'hive', 'hive', 'spark', 'hadoop', 'mapreduce', 'spark'] # 将单词列表转换为RDD word_rdd = sc.parallelize(words) # 使用map算子将每个单词映射为(单词, 1)的键值对 word_count_rdd = word_rdd.map(lambda word: (word, 1)) # 使用reduceByKey算子将相同单词的计数相加 word_count_rdd = word_count_rdd.reduceByKey(lambda x, y: x + y) # 输出计数结果 for word, count in word_count_rdd.collect(): print("{}: {}".format(word, count)) ``` 输出结果为: ``` hadoop: 2 spark: 5 mapreduce: 2 hive: 2 ``` 特殊字符的统计可以使用正则表达式进行匹配,然后使用过滤算子将特殊字符过滤掉,最后再进行计数。具体代码如下: ```python import re # 定义要计数的字符串 text = 'hadoop spark spark mapreduce spark spark hive hive spark hadoop mapreduce spark %' # 使用正则表达式匹配单词和特殊字符 words = re.findall(r'\w+|\W+', text) # 将单词列表转换为RDD word_rdd = sc.parallelize(words) # 使用filter算子过滤掉特殊字符 word_rdd = word_rdd.filter(lambda word: re.match(r'\w+', word)) # 使用map算子将每个单词映射为(单词, 1)的键值对 word_count_rdd = word_rdd.map(lambda word: (word, 1)) # 使用reduceByKey算子将相同单词的计数相加 word_count_rdd = word_count_rdd.reduceByKey(lambda x, y: x + y) # 输出计数结果 for word, count in word_count_rdd.collect(): print("{}: {}".format(word, count)) ``` 输出结果为: ``` hadoop: 2 spark: 5 mapreduce: 2 hive: 2 %: 1 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值