如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Spark入门1Spark简介Spark简介Spark简介:特性2Spark生态圈Spark软件栈:SparkSQLSpark软件栈:SparkStreamingSpark软件栈:MLlibSpark软件栈:GraphX3Spark与Hadoop的对比SPARK比MR开发速度快Spark与Hadoop的联系4Spark集群组件Spark程序运行模式4Standalone模式:即部署了spark自带的资源管理集群——“Standalone”Spark自带资源管理集群有两类角色:master和workermaster是资源管理集群中的主节点worker是资源管理集群中的从节点集群启动后,worker节点会向master节点注册自己,master节点会维护worker节点的心跳。一个具体的spark运算程序则相当于资源管理集群的一个客户端,它通过启动一个Driver实例来与资源管理集群通信,请求运算资源(cpu、内存、io等)Driver,master和worker之间的通信用Akka框架实现(Akka也使用Scala编写,用于构建可容错的、高可伸缩性的Actor模型应用)注:类比hadoop中的mapreduce和yarn之间的关系SparkStandalone集群部署:spark编译Spark集群部署:spark编译Spark集群部署:环境准备Spark集群:环境准备Spark集群部署:spark安装部署Spark集群部署:详细配置5Spark使用示例:spark-shellSpark使用示例:spark-shellSpark使用示例:提交运行jar包Spark使用示例:提交运行jar包1Scala简介Scala开发环境2Scala基础语法:变量声明Scala基础语法:方法调用,一切皆对象条件判断:vala=if(x>0)1else-1//混合类型valb=if(x>0)1else"error"//()表示“无有用值”valc=if(x>0)1else()for循环:for(i<-0to5)println(i)for(i<-0until10)println(i)for(i<-1to3;j<-1to3ifi!=j){println((10*i+j)+"")}for(i<-1to10ifi%2==0)yieldifor(i<-1to10)yieldi%3deffun(x:Int):Int=x+1//函数默认参数deffun(a:Int,b:Int=100)=a+b//可变参数defsum(args:Int*)={varresult=0for(i<-args)result+=iresult}//无返回值的参数deffun1(x:Int){println(x)}或deffun2(x:Int):Unit={println(x)}//注意:参数类型必须声明,返回值类型可以不声明,函数是递归的必须声明返回类型deffac(n:Int):Int={if(n<=0)1elsen*fac(n-1)}//没有定义函数名字的函数(x:Int)=>x+1//将匿名函数赋给变量valfun=(x:Int)=>x+1匿名函数通常用于作为“参数”传递给高阶函数3//3个整数的数组,所有元素为0valarr1=newArray[Int](3)valarr2=Array(0,0,0)//字符串数组valarr3=Array("hadoop","spark")//取值、赋值,脚标使用圆括号指定valstr=arr3(1)arr3(1)="storm"ArrayBuffer类似Java中的ArrayListimportscala.collection.mutable.ArrayBuffervala=ArrayBuffer[Int]()或:vala=newArrayBuffer[Int]a+=1//在尾端添加元素a+=(1,2,3)//追加多个元素a++=ArrayBuffer(7,8,9)//追加集合a.trimEnd(2)//移除最后两个元素a.insert(2,6,7)//在下标2之前插入6,7a.remove(2,2)//从下标2开始移除2个元素valb=a.toArray//转变成定长数组b.toBuffer//转变成变长数组valarr=Array(1,2,3,4,5)//带下标的for循环for(i<-(0until(arr.length,2)).reverse){println(arr(i))}//增强for循环for(i<-arr)println(i)转换动