Spark 实践
概念
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
环境搭建
计划安装3台计算机,安装ubuntu系统,主机名分别为master,slave1,slave2,IP分别为(166.111.198.222/166.111.198.119/166.111.199.73)。
安装软件: java-jdk1.7.0 / hadoop2.6.4 /spark2.0.0
java安装目录:
/opt/kdk1.7.0_79
hadoop安装目录:
/opt/hadoop-2.6.4/
spark安装目录:
/opt/spark-2.0.0-bin-hadoop2.6
首先要使各主机ssh免密码登陆
- 无序列表项
1在master生成密钥对
ssh-keygen -t rsa -P
在~/.ssh下生成 id_rsa和id_rsa.pub
- 1把id_rsa.pub复制到slave1 的~/.ssh/authorized_keys文件里
scp ~/.ssh/id_rsa.pub root@slave:/root/id_rsa.pub
在slave上
cat id_rsa.pub >> .ssh/authorized_keys chmod 600 .ssh/authorized_keys
- 3回到master,测试登陆slave