《OD大数据实战》Spark入门实例
一、环境搭建
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入门实例的更多相关文章
- 《OD大数据实战》HDFS入门实例
一.环境搭建 1. 下载安装配置 <OD大数据实战>Hadoop伪分布式环境搭建 2. Hadoop配置信息 1)${HADOOP_HOME}/libexec:存储hadoop的默认环境 ...
- 《OD大数据实战》驴妈妈旅游网大型离线数据电商分析平台
一.环境搭建 1. <OD大数据实战>Hadoop伪分布式环境搭建 2. <OD大数据实战>Hive环境搭建 3. <OD大数据实战>Sqoop入门实例 4. &l ...
- 《OD大数据实战》Hive环境搭建
一.搭建hadoop环境 <OD大数据实战>hadoop伪分布式环境搭建 二.Hive环境搭建 1. 准备安装文件 下载地址: http://archive.cloudera.com/cd ...
- 《OD大数据实战》环境整理
一.关机后服务重新启动 1. 启动hadoop服务 sbin/hadoop-daemon.sh start namenode sbin/hadoop-daemon.sh start datanode ...
- 大数据实战-Spark实战技巧
1.连接mysql --driver-class-path mysql-connector-java-5.1.21.jar 在数据库中,SET GLOBAL binlog_format=mixed; ...
- 《OD大数据实战》Hive入门实例
官方参考文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual 一.命令行和客户端 1. 命令窗口 1)进入命令窗口 hi ...
- 《OD大数据实战》Kafka入门实例
官网: 参考文档: Kafka入门经典教程 Kafka工作原理详解 一.安装zookeeper 1. 下载zookeeper-3.4.5-cdh5.3.6.tar.gz 下载地址为: http://a ...
- 《OD大数据实战》Sqoop入门实例
官网地址: http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.5-cdh5.3.6/SqoopUserGuide.html 一.环境搭建 1. 下载 s ...
- 《OD大数据实战》Flume入门实例
一.netcat source + memory channel + logger sink 1. 修改配置 1)修改$FLUME_HOME/conf下的flume-env.sh文件,修改内容如下 e ...
随机推荐
- Linux课程---7、shell技巧(获取帮助命令)
Linux课程---7.shell技巧(获取帮助命令) 一.总结 一句话总结: ls --help:简单手册 man ls:内容手册 1.tab补全? 命令+tab:加快敲命令敲文件目录的速度,多敲几 ...
- Android 布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...
- POJ 2421 Constructing Roads(Kruskal算法)
题意:给出n个村庄之间的距离,再给出已经连通起来了的村庄.求把所有的村庄都连通要修路的长度的最小值. 思路:Kruskal算法 课本代码: //Kruskal算法 #include<iostre ...
- 【二叉树的递归】05二叉树中找任意起点和终点使他们的路径和最大【Binary Tree Maximum Path Sum】
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定一个二叉树,寻找值最大的路径. ...
- fedora使用mac osx字体和渲染方式
fedora 19的倒退(中文显示有问题)让人感到很沮丧,不过,后来还是找到了一个很好的解决方案:使用max osx的字体和渲染方式 1. 安装infinality字体渲染软件: rpm -Uvh h ...
- ACM学习历程—HDU 3915 Game(Nim博弈 && xor高斯消元)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3915 题目大意是给了n个堆,然后去掉一些堆,使得先手变成必败局势. 首先这是个Nim博弈,必败局势是所 ...
- jcrop的bug
1 360(7.1.1.620,内核:31.0.1650.63)的极速模式下,出现裁剪框后,鼠标点击,页面就会滑动到底部. 查看了下源码,发现是下面的代码: function watchKeys() ...
- HDOJ5438(图的各个连通分量遍历)
#include<cstdio> #include<cstring> using namespace std; ; template<class T> struct ...
- windows服务和进程的区别和联系
Windows Service 是主要用于服务器环境而长期运行的应用程序, 这类程序不需要有用户界面或者任何模拟输出. 任何的用户消息通常都是记录在Windows 事件日志里.Windows Serv ...
- 查看,检查,修复pg的命令
标签(空格分隔): ceph,ceph运维,pg 如果集群状态是HEALTH_ERR 并且有pgs inconsistent,需要进行如下操作: 1. 通过下面的命令查看哪些pg状态不一致: # ce ...