一、环境搭建

1. 编译spark 1.3.0

1)安装apache-maven-3.0.5

2)下载并解压 spark-1.3.0.tgz

3)修改make-distribution.sh 

VERSION=1.3.
SCALA_VERSION=2.10
SPARK_HADOOP_VERSION=2.5.-cdh5.3.6
SPARK_HIVE=
#VERSION=$("$MVN" help:evaluate -Dexpression=project.version >/dev/null | grep -v "INFO" | tail -n )
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ >/dev/null\
# | grep -v "INFO"\
# | tail -n )
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ >/dev/null\
# | grep -v "INFO"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to , otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n)

4)替换maven仓库jar包

5)打包编译

(1)MAVEN编译

build/mvn clean package -DskipTests -Phadoop-2.4 -Dhadoop.version=2.5.-cdh5.3.6 -Pyarn -Phive-0.13. -Phive-thriftserver 

(2)使用CDH5.3.6版本的hadoop

./make-distribution.sh --tgz -Phadoop-2.4 -Dhadoop.version=2.5.-cdh5.3.6 -Pyarn -Phive-0.13. -Phive-thriftserver 

(3)使用Apache版本的hadoop

./make-distribution.sh --tgz -Phadoop-2.4 -Dhadoop.version=2.5. -Pyarn -Phive-0.13. -Phive-thriftserver 

二、测试程序

1. 准备

bin/spark-shell

val textFile = sc.textFile("README.md")

textFile.count()

textFile.count 方法没有参数时,括号可以省略

textFile.first

textFile.take(10)

可以将函数A作为参数传递给函数B,此时这个函数B叫做高阶函数

textFile.filter((line: String) =>line.contains("Spark"))

textFile.filter(line =>line.contains("Spark"))

textFile.filter(_.contains("Spark"))

scala中_标示任意元素

匿名函数

(line: String) =>line.contains("Spark")

def func01(line : String){

  line.contains("Spark")

}

def func01(line: String) => line.contains("Spark")

sc.parallelize(Array(1,2,3,4,5))

三、Scala集合操作

Method on Seq[T]

map(f: T => U): Seq[U]

flatMap(f: T=> Req[U]): Seq[U]

filter(f: T => Boolean): Seq[T]

exists(f: T => Boolean): Boolean

forall(f: T => Boolean): Boolean

reduce(f: (T, T) => T): T

groupBy(f: T => K): Map[K, List[T]]

sortBy(f: T => K): Seq[T]

  (line: String) =>line.contains("Spark")

  T:   (line: String)

  Boolean: line.contains("Spark")  

三、 wordcount

val linesRdd = sc.textFile("hdfs://beifeng-hadoop-02:9000/user/beifeng/mapreduce/input01/wc_input")

val wordsRdd = linesRdd.map(line => line.split(" "))

val wordsRdd = linesRdd.flatMap(line => line.split(" "))

val keyvalRdd = wordsRdd.map(word => (word, 1))

val countRdd = keyvalRdd.reduceByKey((a, b) =>(a + b))

countRdd.collect()

countRdd.cache

变成一行

sc.textFile("hdfs://beifeng-hadoop-02:9000/user/beifeng/mapreduce/input01/wc_input").flatMap(line => line.split(" ")).map( (_, 1)).reduceByKey(_ + _).collect

《OD大数据实战》Spark入门实例的更多相关文章

  1. 《OD大数据实战》HDFS入门实例

    一.环境搭建 1.  下载安装配置 <OD大数据实战>Hadoop伪分布式环境搭建 2. Hadoop配置信息 1)${HADOOP_HOME}/libexec:存储hadoop的默认环境 ...

  2. 《OD大数据实战》驴妈妈旅游网大型离线数据电商分析平台

    一.环境搭建 1. <OD大数据实战>Hadoop伪分布式环境搭建 2. <OD大数据实战>Hive环境搭建 3. <OD大数据实战>Sqoop入门实例 4. &l ...

  3. 《OD大数据实战》Hive环境搭建

    一.搭建hadoop环境 <OD大数据实战>hadoop伪分布式环境搭建 二.Hive环境搭建 1. 准备安装文件 下载地址: http://archive.cloudera.com/cd ...

  4. 《OD大数据实战》环境整理

    一.关机后服务重新启动 1. 启动hadoop服务 sbin/hadoop-daemon.sh start namenode sbin/hadoop-daemon.sh start datanode ...

  5. 大数据实战-Spark实战技巧

    1.连接mysql --driver-class-path mysql-connector-java-5.1.21.jar 在数据库中,SET GLOBAL binlog_format=mixed; ...

  6. 《OD大数据实战》Hive入门实例

    官方参考文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual 一.命令行和客户端 1. 命令窗口 1)进入命令窗口 hi ...

  7. 《OD大数据实战》Kafka入门实例

    官网: 参考文档: Kafka入门经典教程 Kafka工作原理详解 一.安装zookeeper 1. 下载zookeeper-3.4.5-cdh5.3.6.tar.gz 下载地址为: http://a ...

  8. 《OD大数据实战》Sqoop入门实例

    官网地址: http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.5-cdh5.3.6/SqoopUserGuide.html 一.环境搭建 1. 下载 s ...

  9. 《OD大数据实战》Flume入门实例

    一.netcat source + memory channel + logger sink 1. 修改配置 1)修改$FLUME_HOME/conf下的flume-env.sh文件,修改内容如下 e ...

随机推荐

  1. Git之Eclipse提交项目到Github并实现多人协作

    一.Eclipece提交项目到Github 见  eclipse提交项目到github 二.利用github组织实现多人协作 1.新建组织: New organization

  2. log4j报错ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

    ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only err ...

  3. vmware的双网卡以及Pro的注册码

    DC/OS的master需要能够上外网而且能够和本地内网设备交互,于是打算在虚拟机上面做测试,于是调研了一下虚拟机的双网卡配置.   最推荐的方式是使用vmware的station,而不是player ...

  4. Poj 1019 Number Sequence( 数据分析和操作)

    一.题目大意 有这样一个序列包含S1,S2,S3...SK,每一个Si包括整数1到 i.求在这个序列中给定的整数n为下标的数. 例如,前80位为1121231234123451234561234567 ...

  5. SSH不允许Root登陆的方法

    不允许Root登陆的方法如下: vim /etc/ssh/sshd_config 把PermitRootLogin yes 改成: PermitRootLogin no 然后重启sshd服务: Ser ...

  6. nginx的安装及基本配置

    在CentOS7(mini)上安装: [root@~ localhost]#lftp 172.16.0.1 lftp 172.16.0.1:/pub/Sources/7.x86_64/nginx> ...

  7. pythoon_interview_redit

    easy/intermediate What are Python decorators and how would you use them?How would you setup many pro ...

  8. C#自定义控件 ————进度条

    先看看样式 一个扇形的进度条 对外公开的方法和属性 事件 value_change;//值改变时触发的事件progress_finshed;//进度条跑完时触发的事件 属性 Max_value//获取 ...

  9. 问题:C#调webservice超时;结果:C#调用webservice服务超时

    C#调用WebService服务时,报错,The operation has timed out,意思是“操作超时”. 方法/步骤 首先修改服务端配置 WebService服务所在站点为服务端,它提供 ...

  10. .NET后台控制网页标签的ICO图标

    aspx文件的head属性中增加runat="server" 后台cs文件中: /// <summary> /// 客户端注册ICO图标 /// </summar ...