Spark
马超的博客
Stay Hungry, Stay Foolish
展开
-
spark-1.6.1 伪分布式 & 全分布式安装
Spark 伪分布式 & 全分布式Spark目前支持多种分布式部署方式: 一、Standalone Deploy Mode; 二、Amazon EC2 ; 三、Apache Mesos; 四、Hadoop YARN。 第一种方式是单机部署,不需要有依赖的资源管理器,其它三种都需要将spark部署到对应的资源管理器上。 除了部署的多种方式之外,较新版本的Spark支持多种hadoop平台,转载 2016-06-17 15:50:47 · 911 阅读 · 0 评论 -
董西城问答整理:第二课
一、spark-shell在namenode的stand-by节点执行会报sparkContext出错,然后到active的namenode的机器起spark-shell就可以了。为什么这样 你程序里有写hdfs地址了吗?需要写为逻辑名 二、hadoop集群中有5个节点,其中1个主节点,1个备用节点,3个数据节点(数据节点上有日志节点),分配内存的时候,主备节点各分配了64G,数据原创 2016-10-16 12:28:50 · 542 阅读 · 0 评论 -
使用maven构建项目生成特定的目录结构
假设已经安装maven软件(系统CentOS 6.5)创建一个空的Scala Project,项目名称wordcount,包名为org.training.spark (maven)mvn archetype:generate \ -DarchetypeGroupId=org.scala-tools.archetypes \ -DarchetypeArtifactId=scala-ar原创 2016-10-18 19:22:22 · 891 阅读 · 0 评论 -
Spark编程实例
【实例一】 分布式估算pi 假设正方形边长为x,则正方形面积为:x*x,圆的面积为:pi*(x/2)*(x/2),两者之比为:4/pi 随机产生位于正方形内的点x个,假设位于园中的有y个,则:pi=4*y/x 当x->无群大时,pi逼近真实值 object SparkPi{ //不要用继承,会有各种麻烦 def main(args:Array[String]){ //常规spa原创 2016-10-17 17:55:58 · 1623 阅读 · 1 评论 -
构建集成开发环境Apache Spark
推荐使用Intellij IDEA(eclipse也可以) 基本流程 –安装JDK1.7 –下载Inleilij IDEA,打开后,安装scala插件 –在Intellij IDEA中创建scala工程,导入spark-hadoop包 –编写spark程序 参考文章:http://dongxicheng.org/framework-on-yarn/apache-spark-intell原创 2016-10-17 16:06:19 · 513 阅读 · 0 评论 -
Spark程序设计——accumulator、广播变量、cache
(一)accumulator(累加器、计数器) 类似于MapReduce中的counter,将数据从一个节点发送到其他各个节点上去。 通常用于监控,调试,记录符合某类特征的数据数目等。 –分布式counter Accumulator使用import SparkContext._val total_counter=sc.accumulator(OL,"total_counter")//第一个原创 2016-10-17 15:38:10 · 898 阅读 · 0 评论 -
Spark程序设计——应用(wordcount、join)
wordcountval lines=sc.textFile("hamlet.txt")//映射成RDDval counts=lines.flatMap(lin=>line.split(" "))//按空格进行分词 .map(word=>(word,1))//Key/value映射 .reduceByKey(_+_)//归约,把key相同的value归约重点在于理解并行化 join原创 2016-10-16 23:35:12 · 402 阅读 · 0 评论 -
Spark程序设计——基本流程
一、基本流程 1.创建SparkContext对象 ——封装了spark执行环境信息 2.创建RDD ——可从Scala集合或Hadoop数据集上创建 3.在RDD之上进行转换和action ——Spark提供了多种转换和action函数 4.返回结果 ——保存到HDFS中,或直接打印出来二、代码示例(一)创建SparkContext(spark程序中只能有一个) 1.创建conf原创 2016-10-16 23:04:29 · 1123 阅读 · 0 评论 -
Spark程序设计——Scala
1.Java JVM的高层次语言 面向对象+函数式编程 2.静态类型 性能与Java差不多 通常不需要显式写出类型(类型推断机制) 3.与Java结合完好 可直接使用任意Java类,可继承自Java类,也可从Java代码中调用Scala代码。 定义变量:var x:Int=7var x=7 //类型推断val y="hi" //只读函数:def square(x:Int):Int=原创 2016-10-16 20:01:12 · 309 阅读 · 0 评论 -
董西城问答整理:第一课
一、Spark在任何情况下均比MapReduce高效吗? 请举例。 不是任何情况下都很高效,数据量非常大的时候MapReduce要比Spark快。 比如:WordCount计算的数据量是1PB的时候,MapReduce会比Spark快。 快的原因是目前Spark的Shuffle实现比较差,而Spark Shuffle这个实现正在改进,且会换成同MapReduce Shuffle一样的实现。二原创 2016-10-13 20:26:13 · 1133 阅读 · 1 评论 -
Spark调优方法(辅助工具准备)
1.使用工具jstack/jstat/jprofile 2.Spark界面(本文主要介绍此方法) - - - 查看运行完成作业的信息和日志//修改yarn-site。xml(需要重启所有NodeManager生效)<property><name>yarn.log-aggregation-enable</name><value>true</value></property>//配完之后用原创 2016-11-03 15:51:18 · 445 阅读 · 0 评论 -
董西城问答整理:第三课
一、spark加载hadoop本地库的时候出现不能加载的情况,这是什么原因导致的呢? 我64位机器,当时hadoop启动的时候出现不能加载本地类库的这个问题是因为hadoop本身自带的本地库是32位的,编译完hadoop源码后我替换了hadoop-3.0.0本地库为64位的。 解决办法–spark加载hadoop本地库的时候出现不能加载的情况。 vim /etc/profile export原创 2016-10-20 15:49:37 · 541 阅读 · 0 评论 -
Spark计算引擎原理
一、Spark内部原理 ——通过RDD,创建DAG(逻辑计划) ——为DAG生成物理查询计划 ——调用并执行Task 二、生成逻辑执行图:产生RDD 三、生成逻辑执行图:RDD之间关系 四、生成逻辑执行图:Shuffle —每个reduce task要从每个map task端读取一部分数据,网络连接数是:M*R。—shuffle是分布式计算框架的核心数据交换方式,其实现方式直接决定原创 2016-10-21 23:03:13 · 3110 阅读 · 0 评论 -
Spark源码走读概述
Spark代码量 ——Spark:20000loc ——Hadoop 1.0:90000loc ——Hadoop 2.0:220000loc Spark生态系统代码量 Spark生态系统 概述 ——构建Spark源代码阅读环境 ——Spark源代码构成 ——Spark源代码阅读方法 构建源码阅读环境1.IDE ——Eclipse / IDEA ——可直接导入 2.编译源原创 2016-10-22 16:50:28 · 884 阅读 · 0 评论 -
Spark Shuffle剖析
Spark核心计算——shuffle 指定两个task数量。 分为两部分shuffle write 和 shuffle read Spark核心计算——shuffle write(hash-based)(逐渐被淘汰基于hash实现的shuffle) 一个executor中的两个task,多线程。 小文件有大量随机读,占用大量IO。map-task写到bucket的过程中,先写入buffer原创 2016-10-22 15:58:55 · 528 阅读 · 0 评论 -
Spark核心概念
Spark核心概念——RDD RDD(抽象数据集的统称Spark是对RDD的其中一种实现):Resilient Distributed Datasets,弹性分布式数据集 1.分布在集群中的只读对象集合(由多个Partition构成) 2.可以存储在磁盘或内存中(多种存储级别) 3.通过并行“转换”操作构造 4.失效后自动重构RDD基本操作(operator) 1.Transformat原创 2016-10-21 19:58:31 · 697 阅读 · 0 评论 -
Spark企业级环境搭建
Chinahadoop-1节点安装Spark即可,在提交作业时由Yarn动态分发运行环境包括jar包、executor、driver等。不需要分布式部署Spark。 下载hadoop压缩包之后解压hadoop后,配置文件在…/etc/hadoop目录下。 下载Spark压缩包之后,解压进入Spark目录,找到conf进行配置。spark-env.sh(打通hadoop) spark-def原创 2016-10-21 19:05:57 · 728 阅读 · 0 评论 -
MLlib On Spark(机器学习算法)
简介:Spark包含一个提供常见的机器学习(ML)功能的程序库,叫做MLlib。它提供了很多种机器学习算法,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。MLlib还提供了一些更底层的机器学习原语,包括一个通用的梯度下降优化算法。所有这些方法都被设计为可以在集群上轻松伸缩的架构。 MLlib的设计理念:把数据以RDD的形式表示,然后在分布式数据集上调用各种算法。Ml原创 2016-10-17 23:55:26 · 1681 阅读 · 0 评论