- 浏览: 2188697 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
Spark简介
Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark Streaming、MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台。从各方面报道来看Spark抱负并非池鱼,而是希望替代Hadoop在大数据中的地位,成为大数据处理的主流标准,不过Spark还没有太多大项目的检验,离这个目标还有很大路要走。
Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala 提供一个称为 Actor 的并行模型,其中Actor通过它的收件箱来发送和接收非同步信息而不是共享数据,该方式被称为:Shared Nothing 模型)。在Spark官网上介绍,它具有运行速度快、易用性好、通用性强和随处运行等特点。
环境介绍
这里Hadoop已经安装完毕,并且能正常工作,Spark可以运行在Standalone模式上,所以假如你没有Hadoop环境,当然也是可以使用的。
1,下载scala :
wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz?_ga=1.103717955.215870088.1434449855
2, 安装scala , 解压到某个目录,并加入环境变量
export SCALA_HOME=/ROOT/server/scala
export PATH=$PATH:$SCALA_HOME/bin
3,下载spark,这里推荐下载spark源码,自己编译所需对应的hadoop版本,虽然spark官网也提供了二进制的包!
http://spark.apache.org/downloads.html
4,编译spark
这里需要注意,默认的spark编译,使用的是scala2.10的版本,一定要确保你所有使用的scala在大版本2.10.x范围内一致,否则在某些情况下可能会出现莫名其妙的问题。
我这里用的是spark1.4.0的版本,所以只能用scala2.11.x的版本,这就需要重新编译spark了,另一个原因也需要和对应的haodop版本编译对应。
编译步骤
(1)将下载好的spark源码解压到某个目录下
(2)进入源码目录,分别执行如下命令
设置使用scala那个版本编译
dev/change-version-to-2.11.sh
maven打包,指定hadoop版本和scala版本
mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package
大概半小时候可编译成功
5,安装spark
请参考散仙以前的文章:http://qindongliang.iteye.com/blog/2224797
6,spark测试的几个命令:
7,远程任务提交
Spark集群一般都会部署在Linux上,而我们开发一般都会在windows上,那么我们想调试Spark程序,应该怎么做?
大多数的情况下,你都需要把你的程序打包成一个jar,然后上传到Linux上,然后在执行测试,这样非常麻烦,你频繁改代码
就意味着,你得不断的打包,上传,打包,上传,这跟hadoop的调试是一样的。
更简洁的方式,就是直接在编译器(这里推荐Intellj IDEA)里,开发,然后打包,直接在IDEA里以编程方式提交spark任务,这样在开发期间相对就比较很高效了。
如何打包构建一个spark应用的程序 ?
(1)安装使用maven 下载地址 https://maven.apache.org/
(2)安装使用sbt 下载地址 http://www.scala-sbt.org/
这里推荐用sbt,专门针对scala项目的进行构建打包的
好吧,也许你需要一个demo来帮助你理解?
在IDEA中,创建一个Scala的SBT项目:
然后在build.sbt文件中,加入如下依赖:
一段简单的代码:
然后直接运行就能直接在windows上提交任务到Linux上的spark集群了
IDEA的控制台里会打印计算结果:
在Spark的8080监控页面显示如下:
8,遇到的问题:
IDEA里警告日志显示:
Spark集群的Master机器的master的log日志显示:
服务器上log是准确的,它告诉我们有客户端和服务端的序列化版本不一致,意思就是说,你的scala或者是hadoop的版本等跟服务器上的可能不一致,所以安装时务必要确定所有的软件版本号一致。
这个问题,我在stackoverflow上提问了2天,都没人知道,最后各种疯狂的找资料才发现就是软件版本不一致导致的,真是大意失荆州了,解铃还须系铃人!
最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark Streaming、MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台。从各方面报道来看Spark抱负并非池鱼,而是希望替代Hadoop在大数据中的地位,成为大数据处理的主流标准,不过Spark还没有太多大项目的检验,离这个目标还有很大路要走。
Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala 提供一个称为 Actor 的并行模型,其中Actor通过它的收件箱来发送和接收非同步信息而不是共享数据,该方式被称为:Shared Nothing 模型)。在Spark官网上介绍,它具有运行速度快、易用性好、通用性强和随处运行等特点。
环境介绍
序号 | 应用 | 说明 |
1 | CDH Hadoop2.6 | 如果想跑在hadoop上,则需要安装 |
2 | JDK7 | 底层依赖 |
3 | Scala2.11.7 | 底层依赖 |
4 | Maven3.3.3 | 构建编译打包 |
5 | Ant1.9.5 | 构建编译打包 |
6 | Spark1.4.0 | 主角 |
7 | Intillj IDEA | 开发IDE |
8 | SBT | scala-spark专属打包构建工具 |
9 | Centos6或Centos7 | 集群运行的Linux系统 |
这里Hadoop已经安装完毕,并且能正常工作,Spark可以运行在Standalone模式上,所以假如你没有Hadoop环境,当然也是可以使用的。
1,下载scala :
wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz?_ga=1.103717955.215870088.1434449855
2, 安装scala , 解压到某个目录,并加入环境变量
export SCALA_HOME=/ROOT/server/scala
export PATH=$PATH:$SCALA_HOME/bin
3,下载spark,这里推荐下载spark源码,自己编译所需对应的hadoop版本,虽然spark官网也提供了二进制的包!
http://spark.apache.org/downloads.html
4,编译spark
这里需要注意,默认的spark编译,使用的是scala2.10的版本,一定要确保你所有使用的scala在大版本2.10.x范围内一致,否则在某些情况下可能会出现莫名其妙的问题。
我这里用的是spark1.4.0的版本,所以只能用scala2.11.x的版本,这就需要重新编译spark了,另一个原因也需要和对应的haodop版本编译对应。
编译步骤
(1)将下载好的spark源码解压到某个目录下
(2)进入源码目录,分别执行如下命令
设置使用scala那个版本编译
dev/change-version-to-2.11.sh
maven打包,指定hadoop版本和scala版本
mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package
大概半小时候可编译成功
5,安装spark
请参考散仙以前的文章:http://qindongliang.iteye.com/blog/2224797
6,spark测试的几个命令:
standlone模式 bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://Hadoop-1-231:7077 examples/target/spark-examples_2.11-1.4.0.jar 100 yarn-cluster模式cluster bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster examples/target/spark-examples_2.11-1.4.0.jar 100 yarn-client模式cluster bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client examples/target/spark-examples_2.11-1.4.0.jar 100
7,远程任务提交
Spark集群一般都会部署在Linux上,而我们开发一般都会在windows上,那么我们想调试Spark程序,应该怎么做?
大多数的情况下,你都需要把你的程序打包成一个jar,然后上传到Linux上,然后在执行测试,这样非常麻烦,你频繁改代码
就意味着,你得不断的打包,上传,打包,上传,这跟hadoop的调试是一样的。
更简洁的方式,就是直接在编译器(这里推荐Intellj IDEA)里,开发,然后打包,直接在IDEA里以编程方式提交spark任务,这样在开发期间相对就比较很高效了。
如何打包构建一个spark应用的程序 ?
(1)安装使用maven 下载地址 https://maven.apache.org/
(2)安装使用sbt 下载地址 http://www.scala-sbt.org/
这里推荐用sbt,专门针对scala项目的进行构建打包的
好吧,也许你需要一个demo来帮助你理解?
在IDEA中,创建一个Scala的SBT项目:
然后在build.sbt文件中,加入如下依赖:
name := "spark2117" version := "1.0" scalaVersion := "2.11.7" libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.6.0" libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.4.0" libraryDependencies += "javax.servlet" % "javax.servlet-api" % "3.0.1"
一段简单的代码:
然后直接运行就能直接在windows上提交任务到Linux上的spark集群了
IDEA的控制台里会打印计算结果:
在Spark的8080监控页面显示如下:
8,遇到的问题:
IDEA里警告日志显示:
15/08/04 19:33:09 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@h1:7077] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].
Spark集群的Master机器的master的log日志显示:
java.io.InvalidClassException: scala.reflect.ClassTag$$anon$1; local class incompatible: stream classdesc serialVersionUID = -4937928798201944954, local class serialVersionUID = -8102093212602380348
服务器上log是准确的,它告诉我们有客户端和服务端的序列化版本不一致,意思就是说,你的scala或者是hadoop的版本等跟服务器上的可能不一致,所以安装时务必要确定所有的软件版本号一致。
这个问题,我在stackoverflow上提问了2天,都没人知道,最后各种疯狂的找资料才发现就是软件版本不一致导致的,真是大意失荆州了,解铃还须系铃人!
最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
发表评论
-
Scala里面的排序函数的使用
2018-01-09 20:20 2647排序方法在实际的应用场景中非常常见,Scala里面有三种排序 ... -
在Scala里面如何使用元组
2018-01-08 22:05 917元组在Scala语言中是一 ... -
Spark如何读取一些大数据集到本地机器上
2018-01-04 21:07 1682最近在使用spark处理分 ... -
使用Spark SQL的临时表解决一个小问题
2017-12-28 18:27 2455最近在使用spark处理一个业务场景时,遇到一个小问题,我在 ... -
Spark任务两个小问题笔记
2017-12-26 19:52 1653今天在用spark处理数据 ... -
Spark中foreachPartition和mapPartitions的区别
2017-12-25 21:19 3328spark的运算操作有两种类型:分别是Transformat ... -
Spark Streaming优雅的关闭策略优化
2017-12-07 19:26 4153前面文章介绍了不少有关Spark Streaming的off ... -
kafka版本不一致导致的一个小问题(二)
2017-12-04 21:37 8573背景介绍: 我们公司的实时流项目现在用的spark stre ... -
谈谈如何优雅的关闭正在运行中的Spark Streaming的流程序
2017-11-30 19:20 2306前面的文章,已经简 ... -
如何管理Spark Streaming消费Kafka的偏移量(三)
2017-11-28 23:41 5217前面的文章已经介绍了在spark streaming集成kaf ... -
理解Spark的运行机制
2017-11-23 21:52 1251Spark生态系统目前已经非常成熟了,有很多类型的任务都可以使 ... -
如何管理Spark Streaming消费Kafka的偏移量(二)
2017-11-16 19:30 4738上篇文章,讨论了在spar ... -
如何管理Spark Streaming消费Kafka的偏移量(一)
2017-11-14 20:42 4092最近工作有点忙,所以更新文章频率低了点,在这里给大家说声抱 ... -
在scala中使用spark sql解决特定需求(2)
2017-07-21 16:00 2288接着上篇文章,本篇来 ... -
在scala中使用spark sql解决特定需求
2017-07-20 19:53 1036spark sql一个强大之处就 ... -
Spark如何在一个SparkContext中提交多个任务
2017-07-04 19:09 6766在使用spark处理数据的时候,大多数都是提交一个job执行, ... -
如何使用scala+spark读写hbase?
2017-06-12 19:48 3449最近工作有点忙,所以文章更新频率低了点,希望大家可以谅解,好 ... -
使用ES-Hadoop插件结合spark向es插入数据
2017-05-05 17:19 5062上篇文章简单介绍了E ... -
spark sql 快速体验调试
2017-04-13 16:40 1061spark sql提供了更快的查询性能,如何能够更快的体验,开 ... -
spark on yarn 如何集成elasticsearch
2017-04-11 16:16 1562随着spark越来越流行,我们的很多组件都有可能和spark集 ...
相关推荐
标题“hive3.x编译spark3.x包”表明我们要讨论的是关于如何在Hive 3.x版本上编译与之兼容的Spark 3.x版本的二进制包。这个过程通常涉及到以下步骤: 1. **环境准备**:首先确保你已经安装了Java开发环境(JDK),...
Spark是Apache软件基金会下的一个开源大数据处理框架,以其高效的分布式计算能力和易用性而闻名。在本提供的资源中,我们有一个已经编译完成的Spark 1.6.1版本的源码包,这对于想要深入理解Spark工作原理、进行二次...
Java提交Spark任务到YARN平台是一项常见的大数据处理操作,它结合了Java的编程能力和Spark的高性能计算框架,以及Hadoop的资源管理系统YARN。在这个过程中,开发者需要理解多个关键概念和配置步骤,以便有效地调度和...
自己学习并应用Spark一段时间后,由于需要改源代码,就研究了下怎么编译源码,成功编译后,记录下了编译的步骤和遇到的问题,例如编译过程中,下载大量的依赖包,默认从国外下载,非常慢,可能要编译好几个小时,...
Spark是Apache Hadoop...总的来说,Spark 2.0.1集群的安装和任务提交涉及多方面的知识,包括系统配置、集群管理、Spark编程和任务调度。理解并掌握这些知识点对于在大数据环境下高效利用Spark进行数据处理至关重要。
Spark 编译部署和 SparkBench 编译 Spark 编译部署和 SparkBench 编译是 Spark 单节点部署的超详细步骤,以及 SparkBench 编译的步骤。该文档可以用于 Spark 调优。 一、安装 JDK 在开始安装 Spark 之前,需要...
6. **监控和调试**:使用Spark的Web UI(默认端口8080)和Hive的Web UI(默认端口9999)监控任务执行情况,以便找出性能瓶颈并进行调优。 7. **安全性**:如果在生产环境中,还需考虑安全认证,如Kerberos,以及...
一旦Master和Worker都已正确配置并启动,接下来就可以通过`spark-submit`命令提交Spark应用程序,并启用远程调试选项了。具体操作如下: 1. **仅针对Driver程序的调试** 如果只需要调试Driver程序部分,可以使用...
### Spark源码编译流程详解 #### 一、前言 随着大数据技术的快速发展,Apache Spark作为其中的重要一环,其高效的数据处理能力受到了广泛的关注。对于开发者而言,理解Spark的内部实现机制以及如何编译Spark源码是...
在现代大数据处理领域,Spark作为...在Standalone模式下,我们可以方便地在Spring Boot应用中启动和管理Spark任务,进行远程服务计算。这种方式为开发者提供了灵活性和便利性,便于在微服务架构中嵌入大数据处理能力。
windows中使用yarn-cluster模式提交spark任务,百度找不着的啦,看我这里。另外spark的版本要使用正确哦 更简单的方式参考: https://blog.csdn.net/u013314600/article/details/96313579
2.Spark编译与部署(下)--Spark编译安装.pdf 2.Spark编译与部署(中)--Hadoop编译安装.pdf 3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5....
hbase2.3.5+spark-3.0.3源码编译包
"web管理spark任务"指的是利用Spark自带的Web UI以及相关的工具,通过Web界面来提交、监控和管理Spark作业。这种方式提供了可视化的方式,使得开发者和运维人员能够更直观地了解作业的运行状态。 首先,我们来详细...
使用hive3.1.2和spark...所以,如果想要使用高版本的hive和hadoop,我们要重新编译hive,兼容spark3.0.0。除了兼容spark3.0.0外,还将hive3.1.2的guava的版本进行了提升,和hadoop3.x保持一致,以便兼容hadoop3.1.3。
在本文中,我们将详细探讨如何在Eclipse 3.5.2中部署、编译和运行Spark源代码。首先,我们需要准备必要的软件组件,包括Openfire、Spark和Smack。 一、准备工作 1. 下载相关组件: - Openfire(版本 3.6.4) - ...
在介绍IM Spark源代码的部署和编译之前,首先需要了解一些前提条件和基础知识。Spark项目是一个基于Openfire的即时通讯(IM)平台,它使用Java语言开发。Eclipse是一个广泛使用的集成开发环境(IDE),用于Java开发...
在Spark生态系统中,Java作为广泛使用的编程语言...总的来说,Java提交Spark任务到YARN平台涉及环境配置、代码编写、任务打包和提交等多个步骤。理解并熟练掌握这些步骤对于开发和运行大规模分布式Spark应用至关重要。
Apache Spark的作业提交与运行机制是其核心组成部分之一,涉及到进程、线程的创建以及任务的调度等多个方面。 首先,要想深入理解Spark作业的提交与运行,需要搭建实验环境。搭建步骤主要包括下载Spark二进制包,...