环境:ubuntu 14.04, jdk 1.6, scala 2.11.4, spark 1.1.0, hadoop 2.5.1
一 spark 单机模式
部分操作参考:http://www.cnblogs.com/chenfool/p/3858930.html,我之前写的spark 1.0.1部署
1 安装scala,具体操作参考我之前的博文
2 解压spark1.1.0包,这里我下载的是编译好的包,spark-1.1.0-bin-hadoop2.4.tgz
tar -zxvf spark-1.1.0-bin-hadoop2.4.tgz
3 拷贝一下conf/spark-env.sh.template文件,改名为spark-env.sh,修改配置文件
export HADOOP_HOME=/opt/hadoop-2.5.1 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export SCALA_HOME=/opt/scala-2.11.4 export SPARK_MASTER_IP=spark export JAVA_HOME=/opt/jdk1.6.0_45 SPARK_EXECUTOR_INSTANCES=4 SPARK_EXECUTOR_CORES=1 SPARK_EXECUTOR_MEMORY=1G SPARK_DRIVER_MEMORY=1G SPARK_YARN_APP_NAME="Spark 1.1.0"
4 修改conf/slaves 文件,添加slave节点的hosname
spark
5 启动spark, jps 检查是否启动成功
sbin/start-all.sh
17400 Jps
15569 DataNode
17111 Master
15800 ResourceManager
15927 NodeManager
17333 Worker
15440 NameNode
这个列表里包含了hadoop的相关进程,spark的进程时Master 和 Worker进程
6 运行计算PI值的测试用例
bin/run-example SparkPi
测试通过,证明部署成功
二 Yarn部署模式
其实这个模式更简单,将单机的spark进程停止后,直接就能使用yarn来跑spark的程序了
运行wordcount程序
SPARK_JAR="/opt/spark-1.1.0-bin-hadoop2.4/lib/spark-assembly-1.1.0-hadoop2.4.0.jar" \ ./bin/spark-class org.apache.spark.deploy.yarn.Client \ --jar /opt/spark-1.1.0-bin-hadoop2.4/lib/spark-examples-1.1.0-hadoop2.4.0.jar \ --class org.apache.spark.examples.JavaWordCount \ --args hdfs://hadoop:9000/test/in/test.txt \ --num-executors 2 \ --executor-cores 1 \ --driver-memory 1024M \ --executor-memory 1000M \ --name "word count on spark"
运行计算PI值
./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn-cluster \ --num-executors 1 \ --driver-memory 1g \ --executor-memory 1g \ --executor-cores 1 \ lib/spark-examples*.jar \ 10
在hadoop的yarn页面能看到运行结果
spark 1.1.0 的单机部署,参考我之间的博客:http://www.cnblogs.com/chenfool/p/3858930.html