“Spark 实践”版本间的差异

来自iCenter Wiki
跳转至: 导航搜索
 
(相同用户的4个中间修订版本未显示)
第50行: 第50行:
  
 
编辑文件  /etc/profile  加入以下内容
 
编辑文件  /etc/profile  加入以下内容
#JAVA VARIABLES START
+
#JAVA VARIABLES START
 +
export JAVA_HOME=/opt/jdk1.7.0_79
 +
export PATH=$PATH:$JAVA_HOME/bin
 +
#JAVA VARIABLES END
  
export JAVA_HOME=/home/data/jdk1.7.0_79
+
#SCALA VARIABLES START
 +
export SCALA_HOME=/opt/scala-2.11.7
 +
export PATH=$PATH:$SCALA_HOME/bin
 +
#SCALA VARIABLES END
  
export PATH=$PATH:$JAVA_HOME/bin
+
#SPARK VARIABLES START
 +
export SPARK_HOME=/opt/spark-2.0.0-bin-hadoop2.6
 +
export PATH=$PATH:$SPARK_HOME/bin
 +
#SPARK VARIABLES END
  
#JAVA VARIABLES END
+
然后刷新系统配置:
  
#SCALA VARIABLES START
+
source /etc/profile
  
export SCALA_HOME=/home/data/scala-2.11.7
+
验证配置生效:
  
export PATH=$PATH:$SCALA_HOME/bin
+
java -version
  
#SCALA VARIABLES END
+
scala -version
#SPARK VARIABLES START
+
  
export SPARK_HOME=/home/data/spark-1.4.0-bin-hadoop2.4
+
执行以上命令应显示正确的版本信息。
  
export PATH=$PATH:$SPARK_HOME/bin
+
进入spark的conf目录
  
#SPARK VARIABLES END
+
cd/opt/spark-2.0.0-bin-hadoop2.6/conf
 +
 
 +
cp spark-env.sh.template spark-env.sh
 +
 
 +
编辑spark-env.sh文件,在最后加入:
 +
export SCALA_HOME=/opt/scala-2.11.7
 +
export JAVA_HOME=/opt/jdk1.7.0_79
 +
export SPARK_MASTER_IP=localhost
 +
export SPARK_WORKER_MEMORY=1024m
 +
export master=spark://localhost 7070
 +
 
 +
编辑slaves文件,将slave加入列表(IP也可以)
 +
slave1
 +
slave2
 +
slave3
 +
 
 +
=== 启动集群 ===
 +
 
 +
进入spark下的sbin目录,执行
 +
 
 +
./spart-all.sh
 +
 
 +
期待集群,可在192.168.0.71:8080看到spark已经启动。
 +
 
 +
sbin目录下的其它命令
 +
 
 +
stop-all.sh  停止所有进程
 +
 
 +
start-master.sh 启动master
 +
 
 +
start-slaves.sh 启动所有slave (slaves文件中指定)
 +
 
 +
start-salve.sh  启动单独slave(在执行的主机上)
 +
 
 +
stop-master.sh  停止master
 +
 
 +
stop-slaves.sh  停止所有slaves

2016年9月12日 (一) 03:20的最后版本

概念

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

  • 2把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

环境配置

编辑文件 /etc/profile 加入以下内容

#JAVA VARIABLES START
export JAVA_HOME=/opt/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
#JAVA VARIABLES END
#SCALA VARIABLES START
export SCALA_HOME=/opt/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin
#SCALA VARIABLES END
#SPARK VARIABLES START
export SPARK_HOME=/opt/spark-2.0.0-bin-hadoop2.6
export PATH=$PATH:$SPARK_HOME/bin
#SPARK VARIABLES END

然后刷新系统配置:

source /etc/profile

验证配置生效:

java -version
scala -version

执行以上命令应显示正确的版本信息。

进入spark的conf目录

cd/opt/spark-2.0.0-bin-hadoop2.6/conf
cp spark-env.sh.template spark-env.sh

编辑spark-env.sh文件,在最后加入:

export SCALA_HOME=/opt/scala-2.11.7
export JAVA_HOME=/opt/jdk1.7.0_79
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=1024m
export master=spark://localhost 7070

编辑slaves文件,将slave加入列表(IP也可以)

slave1
slave2
slave3

启动集群

进入spark下的sbin目录,执行

./spart-all.sh 

期待集群,可在192.168.0.71:8080看到spark已经启动。

sbin目录下的其它命令

stop-all.sh 停止所有进程

start-master.sh 启动master

start-slaves.sh 启动所有slave (slaves文件中指定)

start-salve.sh 启动单独slave(在执行的主机上)

stop-master.sh 停止master

stop-slaves.sh 停止所有slaves