下载spark
从http://archive.cloudera.com/cdh5/cdh/5/下载spark-1.6.0-cdh5.15.1,因为我之前使用的hadoop版本都是cdh5.15.1,所以版本要保持一致。
下载完成之后解压。
修改配置
在conf下面修改spark-env.sh,添加内容:
export SPARK_DIST_CLASSPATH=$(/home/iie4bu/app/hadoop-2.6.0-cdh5.15.1/bin/hadoop classpath)
配置环境变量
修改~/.bashrc文件:
# JAVA_HOME
JAVA_HOME=/home/iie4bu/app/jdk1.8.0_101
# HADOOP_HOME
HADOOP_HOME=/home/iie4bu/app/hadoop-2.6.0-cdh5.15.1
# HIVE_HOME
HIVE_HOME=/home/iie4bu/app/hive-1.1.0-cdh5.15.1
# SPARK_HOME
SPARK_HOME=/home/iie4bu/app/spark-1.6.0-cdh5.15.1
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$SPARK_HOME/bin:$PATH
添加依赖
目前spark中缺少一些lib包,因此先获取jar包,pom.xml内容如下:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.twitter</groupId>
<artifactId>parquet-hadoop</artifactId>
<version>1.4.3</version>
</dependency>
一般情况下把这4个jar包,导入到$HADOOP_HOME/share/hadoop/common路径下。
测试运行Local模式

- master指定运行模式,local表示本地模式
[2]表示可以两个线程并行运行。
浏览器中输入ip:4040

表示配置成功。
测试运行Standalone模式
1个Master+多个Worker
修改配置文件
修改spark-1.6.0-cdh5.15.1/conf/spark-env.sh内容如下:
SPARK_MASTER_IP=manager
SPARK_WORKER_CORES=2
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_INSTANCES=1
修改spark-1.6.0-cdh5.15.1/conf/slaves,内容如下:
manager
修改spark-1.6.0-cdh5.15.1/sbin/spark-config.sh,添加JAVA环境变量:
export JAVA_HOME=/home/iie4bu/app/jdk1.8.0_101
在sbin下运行命令:./start-all.sh


在浏览器中访问:ip:8080

可以看到worker已经注册到manager:7077,
Alive worker:1 因为我们配置了SPARK_WORKER_INSTANCES=1
当我们将SPARK_WORKER_INSTANCES的值修改为2时,重启一下spark,然后查看ip:8080,如下:

就会看到有两个实例了。使用jps查看:

看到有两个worker。
测试使用
使用命令:./bin/spark-shell --master spark://manager:7077

可以看到已经启动成功了。
在浏览器中查看:

可以看到,当前的这个spark-shell 用了4个core,用了1024M的内存。
当我们再启动一个终端时,会发生什么情况?

可以看到新来的Application没有占用Cores,而且状态是WAITING,因此只能等到上一个Application运行结束时,才能开始运行。
当然可以通过命令指定占用多少cores和memory:
--total-executor-cores NUM,--executor-cores NUM
Spark安装与配置
5191

被折叠的 条评论
为什么被折叠?



