【eclipse类源码】【视频源码剪辑】【黑熊猫源码】spark 源码 sbt

时间:2024-11-30 20:47:34 来源:活字格源码 编辑:chrome源码公开吗

1.如何运行Spark程序
2.基于Spark的Druid 索引任务(druid-spark-batch)
3.如何在Mac使用Intellij idea搭建远程Hadoop开发环境

spark 源码 sbt

如何运行Spark程序

       ã€€æœ¬æ–‡å‰ææ˜¯å·²ç»æ­£ç¡®å®‰è£…好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤:

       ã€€ã€€1、构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/build.sbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/build.properties文件配置你要使用什么版本的sbt对项目操作;project/plugins.sbt文件是给项目添加所需的插件;project/Build.scala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:

       ã€€ã€€2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProject.jar path")

       ã€€ã€€3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的jar文件存放路径为:项目根目录/target/scala-xx.xx.xx/your-project-name_xx.xx.xx-xx.jar

       ã€€ã€€4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围的不同有多种更改环境变量的方式,这里只说我的配置方式:spark根目录下的conf/spark-env.sh文件添加SPARK_CLASSPATH:xxxxxxxx)

       ã€€ã€€5、配置好环境变量后就可以在spark的根目录下使用./run脚本运行你的程序了例如:./run spark.examples.SparkPi spark://masterIP:port注意,如果程序涉及IO操作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究

       è½¬è½½ï¼Œä»…供参考。

基于Spark的Druid 索引任务(druid-spark-batch)

        随着Druid上的DataSource的数量和数据量增加,使用原来的 Hadoop MR索引任务已经不能满足对大数据量写入Druid的需求,急需找到更快的写入方式。就是本文介绍的 druid-spark-batch

        github地址

        注:sbt 编译druid-spark-batch时,需要先把对应版本的druid(如: 0..0)安装到本地mavne仓库,否则或报错 找不到对应的druid包

        Spark is included in the default hadoop coordinates similar to druid.indexer.task.defaultHadoopCoordinates=["org.apache.spark:spark-core_2.:1.5.2-mmx1"]

        1.5.2-mmx1 是依赖的spark版本号,本例使用的是spark-2.2.0, 所以middleManager节点的配置如下:

        同时把依赖的spark2.2.0的包拷贝到 druid-install-path/hadoop-dependencies/spark-core_2./2.2.0 目录下

        Druid 0..0 jackson版本为2.4.6, Druid-spark-batch jackson版本为2.6.5。

        修改Druid 0..0 jackson版本为2.6.5,重新编译,解决该问题。

        guice 和 guava包冲突,druid-spark-batch 是用的是guice-4.1.0.jar 和 guava-.0.1.jar。

        properties 设置 spark.executor.extraClassPath=true, 并配置 spark.executor.extraLibraryPath, 如下:

        druid hdfs-storage extension 模块的HadoopFsWrapper.rename 调用了 Hadoop的FileSystem类中的Rename方法。

        这方法在Hadoop中有2个一个是2个参数,一个3个参数;其中一个保护的一个是公开的。

        解决方法: **修改HadoopFsWrapper种的rename方法,修改成fs.rename(from, to)

**

        src/main/scala/io/druid/indexer/spark/SparkDruidIndexer.scala

        原因:当hdfs路径包含目录时,无法获取文件大小,导致分区startingPartitions值异常,超出2G限制

        修改如下:

如何在Mac使用Intellij idea搭建远程Hadoop开发环境

       (1)准备工作

       1)

       安装JDK

       6或者JDK

       7

       2)

       安装scala

       2..x

       (注意版本)

       2)下载Intellij

       IDEA最新版(本文以IntelliJ

       IDEA

       Community

       Edition

       .1.1为例说明,不同版本,界面布局可能不同)

       3)将下载的Intellij

       IDEA解压后,安装scala插件,eclipse类源码流程如下:

       依次选择“Configure”–>

       “Plugins”–>

       “Browse

       repositories”,输入scala,然后安装即可

       (2)搭建Spark源码阅读环境(需要联网)

       一种方法是直接依次选择“import

       project”–>

       选择spark所在目录

       –>

       “SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的视频源码剪辑网络环境(不建议在windows

       下操作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。黑熊猫源码

       第二种方法是首先在linux操作系统上生成intellij项目文件,然后在intellij

       IDEA中直接通过“Open

       Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是通讯工具源码:在

       spark源代码根目录下,输入sbt/sbt

       gen-idea

       注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij

       IDEA中。

       (3)搭建Spark开发环境

       在intellij

       IDEA中创建scala

       project,并依次选择“File”–>

       “project

       structure”

       –>

       “Libraries”,每日答题源码选择“+”,将spark-hadoop

       对应的包导入,比如导入spark-assembly_2.-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar

       包,其他不需要),如果IDE没有识别scala

       库,则需要以同样方式将scala库导入。之后开发scala程序即可:

       编写完scala程序后,可以直接在intellij中,以local模式运行,方法如下:

       点击“Run”–>

       “Run

       Configurations”,在弹出的框中对应栏中填写“local”,表示将该参数传递给main函数,如下图所示,之后点击“Run”–>

       “Run”运行程序即可。

       如果想把程序打成jar包,通过命令行的形式运行在spark

       集群中,可以按照以下步骤操作:

       依次选择“File”–>

       “Project

       Structure”

       –>

       “Artifact”,选择“+”–>

       “Jar”

       –>

       “From

       Modules

       with

       dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。

       最后依次选择“Build”–>

       “Build

       Artifact”编译生成jar包。

copyright © 2016 powered by 皮皮网   sitemap