环境
Spark On Yarn环境准备:
Spark:0.9.1 release。注意要选择relase版本(不是incubating版),踩到的坑会比较少。下载页面 http://spark.apache.org/downloads.html
Hadoop:2.0.0-cdh4.2.1。MRv2(Yarn)
环境:cygwin(Git console also works)
编译机器:内存够大(2G以上吧)
如果带宽够大,你就成功30了。如果你有SSD,你就成功80%了。
准备
下载后解压spark,然后SparkBuild.scala做一些修改。SparkBuild.scala是Spark使用的build系统sbt的配置文件。相当于maven的pom文件。
修改project/SparkBuild.scala:
1) force protobuf dependency:这个版本是hadoop 2.0.0-cdh4.2.1用的版本。不写定版本会有问题。
libraryDependencies ++= Seq(
"com.google.protobuf" % "protobuf-java" % "2.4.0a" force(),
2)修改maven repo。搜索resolvers ++= Seq,对于有local maven repo的情况下,修改为本地的repo。
3)修改maven local repo地址。如果之前用过maven了。可以指定local repo
resolvers ++= Seq(Resolver.file("Local Maven Repo", file("D:/repository"))),
编译
进入Spark Home,执行
SPARK_HADOOP_VERSION=2.0.0-cdh4.2.1 SPARK_YARN=true sbt/sbt assembly
编译很慢,约一个小时。如果dependency需要下载就不好说了。
Tips:如果有问题,可以尝试proxy:export HTTP_PROXY=http://127.0.0.1:port
拷贝
把需要的内容拷贝到hadoop集群上。比如spark目录。这个目录包含下面的目内容:
bin和conf下的所有文件:
./bin/run-example
./bin/spark-shell
./bin/pyspark
./bin/compute-classpath.sh
./bin/spark-class
./conf/fair-scheduler.xml
./conf/metrics.properties.template
./conf/spark-env.sh
./conf/fairscheduler.xml.template
./conf/log4j.properties
./conf/slaves
和spark & example:
./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar
./examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar
分发
可以参考下面的脚本分发
#!/bin/sh #Author: Meng Zang <mzang@ctrip.com> #Date: 2014-04-11 NODES_ADDRESS=~/spark/nodes TMP_SPARK=~/spark SPARK=/usr/local/spark sync() { # sudo mkdir ${SPARK} # sudo cp $TMP_SPARK/* $SPARK for node in $(cat $NODES_ADDRESS) do ssh -p 1022 $node "mkdir -p $TMP_SPARK" ssh -p 1022 $node "sudo mkdir -p $SPARK" rsync -vaz --delete -e 'ssh -p 1022' $TMP_SPARK/ $node:$TMP_SPARK ssh -p 1022 $node "sudo cp $TMP_SPARK/* $SPARK" done } case "$1" in 'sync') sync ;; *) echo "Usage: $0 {sync}" exit 1 esac exit 0
执行example
# step into spark dir export HADOOP_CONF_DIR=/etc/hadoop/conf export YARN_CONF_DIR=/etc/hadoop/conf SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \ ./bin/spark-class org.apache.spark.deploy.yarn.Client \ --jar examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar \ --class org.apache.spark.examples.SparkPi \ --args yarn-standalone \ --num-workers 3 \ --master-memory 4g \ --worker-memory 2g \ --worker-cores 1
执行过程中,可以去MRv2的web console查看。也可以在控制台看到执行的report
14/04/11 16:43:44 INFO Client: Application report from ASM: application identifier: application_1397119957695_0037 appId: 37 clientToken: null appDiagnostics: appMasterHost: SVR2370HP360.hadoop.test.sh.ctriptravel.com appQueue: default appMasterRpcPort: 0 appStartTime: 1397205809221 yarnAppState: RUNNING distributedFinalState: UNDEFINED appTrackingUrl: SVR2368HP360.hadoop.test.sh.ctriptravel.com:8088/proxy/application_1397119957695_0037/ appUser: op1 14/04/11 16:43:45 INFO Client: Application report from ASM: application identifier: application_1397119957695_0037 appId: 37 clientToken: null appDiagnostics: appMasterHost: SVR2370HP360.hadoop.test.sh.ctriptravel.com appQueue: default appMasterRpcPort: 0 appStartTime: 1397205809221 yarnAppState: RUNNING distributedFinalState: UNDEFINED appTrackingUrl: SVR2368HP360.hadoop.test.sh.ctriptravel.com:8088/proxy/application_1397119957695_0037/ appUser: op1 14/04/11 16:43:46 INFO Client: Application report from ASM: application identifier: application_1397119957695_0037 appId: 37 clientToken: null appDiagnostics: appMasterHost: SVR2370HP360.hadoop.test.sh.ctriptravel.com appQueue: default appMasterRpcPort: 0 appStartTime: 1397205809221 yarnAppState: FINISHED distributedFinalState: SUCCEEDED appTrackingUrl: appUser: op1
相关推荐
在Spark on YARN模式下,又分为Cluster和Client两种部署模式。Cluster模式下,Driver程序在ResourceManager上运行,而Client模式下,Driver在提交应用程序的客户端上运行。 接下来,我们将按照以下步骤进行配置: ...
通过编译Spark以支持Hadoop 3.3.3和Hive 2,我们可以利用Spark的高性能计算能力和Hadoop的分布式存储,实现高效的数据处理和分析。在实际应用中,还需要对Spark的配置、资源管理以及编程模型有深入理解,才能充分...
- **Spark on YARN**:探讨如何在 Hadoop YARN 上部署和运行 Spark 应用程序。 #### 1.4 更多 - **Spark 配置**:提供有关如何配置 Spark 应用程序的详细信息。 - **Spark 监控**:介绍如何监控 Spark 应用程序的...
"SPARK3_ON_YARN"标签表明Spark3是在YARN上运行的,这允许Spark作业与其他Hadoop生态系统的应用共享集群资源。YARN作为Hadoop的第二代资源管理系统,负责集群中所有计算资源的管理和调度,确保高效利用硬件资源,...
Spark支持四种运行模式:本地模式(用于测试)、集群模式(如YARN、Mesos或standalone)、Spark on Kubernetes以及云服务提供商的托管Spark。 6. **编程接口**: Spark提供了Python(PySpark)、Java、Scala和R的...
下载Spark的预编译版本,配置`spark-env.sh`和`spark-defaults.conf`文件,指定Hadoop的配置路径、Spark的工作内存、主节点等参数。启动Spark的Master和Worker节点,可以通过`start-all.sh`命令完成。 在整个过程中...
总之,Hadoop 2.7.4 Windows 64位编译bin包为Windows用户提供了在本地开发和测试大数据处理应用的便利。通过理解和掌握上述知识点,用户可以在Windows环境下高效地利用Hadoop进行大数据处理任务。
- 最后,启动Spark相关服务,如Spark History Server,如果需要,配置Spark on YARN。 8. **测试与优化** - 测试安装是否成功,可以上传文件到HDFS,运行Hadoop MapReduce作业,启动Hive会话,创建HBase表并插入...
本文将详细介绍如何在CDH 6.3.2上部署和运行Flink 1.13.1。 首先,我们需要理解CDH 6.3.2的环境。CDH是一个包含Hadoop、Hive、HBase、Spark等组件的统一平台,提供了企业级的大数据处理能力。对于Flink的部署,CDH...
在本文中,我们将详细介绍如何在 Standalone 模式下安装和配置 Flink,以及进行基本的 WordCount 测试。 首先,选择合适的 Flink 版本至关重要。在这个例子中,我们选择了 Flink 1.10.1。每个版本都有其特定的特性...
2. **Python环境配置**:如果打算使用PySpark(Python on Spark),则需要确保安装了JDK 1.6.x版本。 3. **开发工具**:建议使用IntelliJ IDEA作为主要的开发工具,并且可以使用IDEA 13作为示例来进行操作。 4. **...
描述中的“cdh-6.2.1 flink 1.13.6”表明这个Flink版本是为CDH 6.2.1构建的,强调了其与YARN(Yet Another Resource Negotiator)的兼容性,这意味着用户可以在YARN上部署和管理Flink作业,实现资源的有效管理和调度...
用户无需手动编译和配置,可以直接通过CDH的管理工具如CM(Cloudera Manager)来安装和管理这些parcel,大大简化了部署流程。 标签"CDH Flink"表明这个压缩包是针对CDH环境优化的Flink版本,意味着它可能包含了一些...
因此,这个插件不仅适用于开发传统的MapReduce程序,还可以用于开发基于YARN的应用,如Spark on YARN等。 在安装插件时,确保你的Eclipse版本与Hadoop Plugin兼容,通常推荐使用Java 7或更高版本的JDK。安装完成后...
用户可以通过解压此文件来查看和编译源代码,然后在本地或集群环境中部署和测试这个集成解决方案。 6. **集成与优化**:通过将Storm与Tez结合,可以利用Tez的DAG执行模型优化 Storm作业的执行效率,同时借助YARN的...