1.å¦ä½è¿è¡Sparkç¨åº
2.åºäºSparkçDruid ç´¢å¼ä»»å¡ï¼druid-spark-batchï¼
3.如何在Mac使用Intellij idea搭建远程Hadoop开发环境
å¦ä½è¿è¡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-batchgithubå°å
注ï¼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包。