- 浏览: 599516 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Spark是一个快速、通用的计算集群框架,它的内核使用Scala语言编写,它提供了Scala、Java和Python编程语言high-level API,使用这些API能够非常容易地开发并行处理的应用程序。
下面,我们通过搭建Spark集群计算环境,并进行简单地验证,来体验一下使用Spark计算的特点。无论从安装运行环境还是从编写处理程序(用Scala,Spark默认提供的Shell环境可以直接输入Scala代码进行数据处理),我们都会觉得比Hadoop MapReduce计算框架要简单得多,而且,Spark可以很好地与HDFS进行交互(从HDFS读取数据,以及写数据到HDFS中)。
安装配置
下载安装配置Scala
在~/.bashrc中增加环境变量SCALA_HOME,并使之生效:
下载安装配置Spark
我们首先在主节点m1上配置Spark程序,然后将配置好的程序文件复制分发到集群的各个从结点上。下载解压缩:
在~/.bashrc中增加环境变量SPARK_HOME,并使之生效:
在m1上配置Spark,修改spark-env.sh配置文件:
在该脚本文件中,同时将SCALA_HOME配置为Unix环境下实际指向路径,例如:
修改conf/slaves文件,将计算节点的主机名添加到该文件,一行一个,例如:
spark与hive进行整合
启动hive metastore
后台运行
spark配置
运行需要指定Jar文件
最后,将Spark的程序文件和配置文件拷贝分发到从节点机器上:
启动Spark集群
我们会使用HDFS集群上存储的数据作为计算的输入,所以首先要把Hadoop集群安装配置好,并成功启动,我这里使用的是Hadoop 1.2.1版本。启动Spark计算集群非常简单,执行如下命令即可:
可以看到,在m1上启动了一个名称为Master的进程,在s1上启动了一个名称为Worker的进程,如下所示,我这里也启动了Hadoop集群:
主节点m1上:
从节点s1上:
各个进程是否启动成功,也可以查看日志来诊断,例如:
主节点上:
tail -100f $SPARK_HOME/logs/spark-shirdrn-org.apache.spark.deploy.master.Master-1-m1.out
从节点上:
tail -100f $SPARK_HOME/logs/spark-shirdrn-org.apache.spark.deploy.worker.Worker-1-s1.out
Spark集群计算验证
我们使用我的网站的访问日志文件来演示,示例如下:
统计该文件里面IP地址出现频率,来验证Spark集群能够正常计算。另外,我们需要从HDFS中读取这个日志文件,然后统计IP地址频率,最后将结果再保存到HDFS中的指定目录。
首先,需要启动用来提交计算任务的Spark Shell:
bin/spark-shell
在Spark Shell上只能使用Scala语言写代码来运行。
然后,执行统计IP地址频率,在Spark Shell中执行如下代码来实现:
上述的文件hdfs://m1:9000/user/shirdrn/wwwlog20140222.log是输入日志文件。处理过程的日志信息,示例如下所示:
可以看到,输出了经过map和reduce计算后的部分结果。
最后,我们想要将结果保存到HDFS中,只要输入如下代码:
查看HDFS上的结果数据:
转自:http://www.cnblogs.com/onetwo/p/5424377.html
下面,我们通过搭建Spark集群计算环境,并进行简单地验证,来体验一下使用Spark计算的特点。无论从安装运行环境还是从编写处理程序(用Scala,Spark默认提供的Shell环境可以直接输入Scala代码进行数据处理),我们都会觉得比Hadoop MapReduce计算框架要简单得多,而且,Spark可以很好地与HDFS进行交互(从HDFS读取数据,以及写数据到HDFS中)。
安装配置
下载安装配置Scala
wget http://www.scala-lang.org/files/archive/scala-2.11.8.tgz tar xvzf scala-2.11.8.tgz
在~/.bashrc中增加环境变量SCALA_HOME,并使之生效:
export SCALA_HOME=/usr/scala/scala-2.11.8 export PATH=$PATH:$SCALA_HOME/bin
下载安装配置Spark
我们首先在主节点m1上配置Spark程序,然后将配置好的程序文件复制分发到集群的各个从结点上。下载解压缩:
wget http://d3kbcqa49mib13.cloudfront.net/spark-1.6.3-incubating-bin-hadoop1.tgz tar xvzf spark-1.6.3-incubating-bin-hadoop1.tgz
在~/.bashrc中增加环境变量SPARK_HOME,并使之生效:
export SPARK_HOME=/home/shirdrn/cloud/programs/spark-1.6.3-incubating-bin-hadoop1 export PATH=$PATH:$SPARK_HOME/bin
在m1上配置Spark,修改spark-env.sh配置文件:
cd /home/shirdrn/cloud/programs/spark-1.6.3-incubating-bin-hadoop1/conf cp spark-env.sh.template spark-env.sh
在该脚本文件中,同时将SCALA_HOME配置为Unix环境下实际指向路径,例如:
export SCALA_HOME=/opt/scala-2.11.8 export JAVA_HOME=/opt/java/jdk1.7.0_80 export SPARK_MASTER_IP=192.168.109.137 export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/opt/hadoop-2.6.4/etc/hadoop
修改conf/slaves文件,将计算节点的主机名添加到该文件,一行一个,例如:
s1 s2 s3
spark与hive进行整合
启动hive metastore
后台运行
hive --service metastore &
spark配置
将 $HIVE_HOME/conf/hive-site.xml copy或者软链 到 $SPARK_HOME/conf/ 将 $HIVE_HOME/lib/mysql-connector-java-5.1.12.jar copy或者软链到$SPARK_HOME/lib/ copy或者软链$SPARK_HOME/lib/ 是方便spark standalone模式使用
运行需要指定Jar文件
./bin/spark-sql --master spark:master:7077 --jars /home/stark_summer/spark/spark-1.4/spark-1.4.1/lib/mysql-connector-java-5.1.12.jar
最后,将Spark的程序文件和配置文件拷贝分发到从节点机器上:
scp -r ~/cloud/programs/spark-0.9.0-incubating-bin-hadoop1 shirdrn@s1:~/cloud/programs/ scp -r ~/cloud/programs/spark-0.9.0-incubating-bin-hadoop1 shirdrn@s2:~/cloud/programs/ scp -r ~/cloud/programs/spark-0.9.0-incubating-bin-hadoop1 shirdrn@s3:~/cloud/programs/
启动Spark集群
我们会使用HDFS集群上存储的数据作为计算的输入,所以首先要把Hadoop集群安装配置好,并成功启动,我这里使用的是Hadoop 1.2.1版本。启动Spark计算集群非常简单,执行如下命令即可:
cd /home/shirdrn/cloud/programs/spark-0.9.0-incubating-bin-hadoop1/ sbin/start-all.sh
可以看到,在m1上启动了一个名称为Master的进程,在s1上启动了一个名称为Worker的进程,如下所示,我这里也启动了Hadoop集群:
主节点m1上:
54968 SecondaryNameNode 55651 Master 55087 JobTracker 54814 NameNode
从节点s1上:
33592 Worker 33442 TaskTracker 33336 DataNode
各个进程是否启动成功,也可以查看日志来诊断,例如:
主节点上:
tail -100f $SPARK_HOME/logs/spark-shirdrn-org.apache.spark.deploy.master.Master-1-m1.out
从节点上:
tail -100f $SPARK_HOME/logs/spark-shirdrn-org.apache.spark.deploy.worker.Worker-1-s1.out
Spark集群计算验证
我们使用我的网站的访问日志文件来演示,示例如下:
27.159.254.192 - - [21/Feb/2014:11:40:46 +0800] "GET /archives/526.html HTTP/1.1" 200 12080 "http://shiyanjun.cn/archives/526.html" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0" 120.43.4.206 - - [21/Feb/2014:10:37:37 +0800] "GET /archives/417.html HTTP/1.1" 200 11464 "http://shiyanjun.cn/archives/417.html/" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
统计该文件里面IP地址出现频率,来验证Spark集群能够正常计算。另外,我们需要从HDFS中读取这个日志文件,然后统计IP地址频率,最后将结果再保存到HDFS中的指定目录。
首先,需要启动用来提交计算任务的Spark Shell:
bin/spark-shell
在Spark Shell上只能使用Scala语言写代码来运行。
然后,执行统计IP地址频率,在Spark Shell中执行如下代码来实现:
val file = sc.textFile("hdfs://m1:9000/user/shirdrn/wwwlog20140222.log") val result = file.flatMap(line => line.split("\\s+.*")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
上述的文件hdfs://m1:9000/user/shirdrn/wwwlog20140222.log是输入日志文件。处理过程的日志信息,示例如下所示:
.... res14: Array[(String, Int)] = Array((27.159.254.192,28), (120.43.9.81,40), (120.43.4.206,16), (120.37.242.176,56), (64.31.25.60,2), (27.153.161.9,32), (202.43.145.163,24), (61.187.102.6,1), (117.26.195.116,12), (27.153.186.194,64), (123.125.71.91,1), (110.85.106.105,64), (110.86.184.182,36), (27.150.247.36,52), (110.86.166.52,60), (175.98.162.2,20), (61.136.166.16,1), (46.105.105.217,1), (27.150.223.49,52), (112.5.252.6,20), (121.205.242.4,76), (183.61.174.211,3), (27.153.230.35,36), (112.111.172.96,40), (112.5.234.157,3), (144.76.95.232,7), (31.204.154.144,28), (123.125.71.22,1), (80.82.64.118,3), (27.153.248.188,160), (112.5.252.187,40), (221.219.105.71,4), (74.82.169.79,19), (117.26.253.195,32), (120.33.244.205,152), (110.86.165.8,84), (117.26.86.172,136), (27.153.233.101,8), (123.12...
可以看到,输出了经过map和reduce计算后的部分结果。
最后,我们想要将结果保存到HDFS中,只要输入如下代码:
result.saveAsTextFile("hdfs://m1:9000/user/shirdrn/wwwlog20140222.log.result")
查看HDFS上的结果数据:
[shirdrn@m1 ~]$ hadoop fs -cat /user/shirdrn/wwwlog20140222.log.result/part-00000 | head -5 (27.159.254.192,28) (120.43.9.81,40) (120.43.4.206,16) (120.37.242.176,56) (64.31.25.60,2)
转自:http://www.cnblogs.com/onetwo/p/5424377.html
发表评论
文章已被作者锁定,不允许评论。
-
Spark 会把数据都载入到内存吗
2017-06-01 10:14 819前言 很多初学者其实对Spark的编程模式还是RDD这个概念理 ... -
Spark Driver和Executor资源调度学习
2017-05-31 16:14 978一、引子 在Worker Actor中,每次LaunchE ... -
Spark 实现TopN的问题(groupBy)
2017-05-31 14:11 1403t2.txt ab 11 ab 23 ab 13 a ... -
Spark block和partition的区别
2017-05-31 13:48 978hdfs中的block是分布式存储的最小单元,类似于盛放文件的 ... -
Spark 什么是DAG(有向无环图)(窄依赖和宽依赖)
2017-05-26 16:46 2155在Spark里每一个操作生成一个RDD,RDD之间连一条边,最 ... -
Spark 为什么比Hadoop快
2017-05-25 16:12 1337Spark SQL比Hadoop Hive快, ... -
Spark 集群的搭建(1.6.3)
2017-05-24 10:41 8参考内容:http://www.cnblogs.com/one ... -
Spark shuffle实现详细探究学习
2017-04-28 15:08 573Background 在MapReduce框架中,shuffl ... -
Spark collect和take函数学习(RDD-->Array)
2017-04-27 15:44 2109将RDD转成Scala数组,并返回。 函数原型 def ... -
Spark MLlib平台的协同过滤算法---电影推荐系统学习
2017-04-27 15:33 627import org.apache.log4j.{Level, ... -
Spark parallelize函数和makeRDD函数的区别(Array-->RDD)
2017-04-27 14:56 833我们知道,在Spark中创建RDD的创建方式大概可以分为三种: ... -
Spark Streaming实时计算学习
2017-04-27 10:31 943随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处 ... -
Spark SQL简单示例学习
2017-04-25 14:17 762Spark SQL 作为Apache Spark大数据框架的一 ... -
Spark RDD基于内存的集群计算容错抽象(核心概念)
2017-04-11 20:09 675摘要 本文提出了分布 ... -
Spark 入门知识学习
2017-04-08 11:46 406什么是Spark Apache Spark是 ...
相关推荐
在Spark 1.6.3中,MLlib进一步优化了算法性能,并引入了一些新的机器学习模型和功能,使得开发者能够更轻松地构建和部署机器学习应用。 Spark的另一个重要组件是Spark Streaming,它提供了对实时数据流的处理能力。...
Spark是Apache软件基金会下的一个开源大数据处理框架,其1.6.3版本是Spark早期的一个稳定版本,适合用于学习和理解Spark的基本架构和工作原理。本压缩包包含的就是Spark 1.6.3的源代码,这对于深入研究Spark的内部...
Spark是Apache软件基金会下的一个开源大数据处理框架,其1.6.3版本是该框架的一个稳定版本,提供了高效、易用且可扩展的数据处理能力。"spark-1.6.3-bin-hadoop2.4.tgz"是一个压缩包,包含了Spark 1.6.3版本与Hadoop...
首先,Spark 1.6.3 提供了高效的计算引擎,其核心组件包括 Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和 GraphX(图计算)。在这一版本中,Spark SQL 提供了对 SQL 查询的支持,使得非程序员也能...
spark-assembly-1.6.1-hadoop2.6.0.jar,欢迎下载,,,,,,,,,,,,,,,,,,,,
Spark缺少的jar包
hadoop-2.6.0.tar.gz + ideaIC-13.1.6.tar.gz + jdk-7u75-linux-i586.tar.gz + scala-2.10.4.tgz + spark-1.0.0-bin-hadoop2.tgz
spark-assembly-1.6.0-cdh5.9.2-hadoop2.6.0-cdh5.9.2.jar
EduWind协助机构和个人快速建立强互动的网络教学平台,拥有在网校管理、课程发布、课程学习、课程交易,题库、社交互动等功能。使用Eduwind,快速拥有属于自己的网校平台。 EduWind在线教育平台 1.6.3 更新内容...
这个安装包为在Linux环境中搭建Spark集群提供了必要的组件和库。 **1. Spark基础知识** Spark的核心设计是基于分布式内存计算模型,它引入了Resilient Distributed Datasets (RDDs)的概念,这是一种可分区的、只读...
influxdb 流式数据库 centos下可以使用yum下载, 配置yum方法: [influxdb] name = InfluxDB Repository - RHEL $releasever baseurl = https://repos.influxdata.com/rhel/$releasever/$...enabled = 1 gpgcheck = 0 ...
Spark是用于大数据的快速通用集群计算系统。 它提供了Scala,Java,Python和R中的高级API,以及优化的引擎,该引擎支持用于数据分析的通用计算图。 它还支持丰富的高级工具集,包括用于SQL和DataFrames的Spark SQL,...
spark-assembly-1.6.0-cdh5.8.4-hadoop2.6.0-cdh5.8.4.jar
在这个学习文档中,我们将讨论如何在 Hadoop 集群上搭建 Spark 分布式集群。 首先,你需要下载 Spark 的安装包,版本为 1.6.3,这可以通过 wget 命令从指定的 URL 获取。将安装包解压到 `/usr/local` 目录下。解压...
【技能兴鲁模拟操作题.docx】涉及到的知识点主要集中在Hadoop集群上搭建1.6.3版本的Spark分布式集群的步骤,以下是详细的操作过程: 1. **Spark安装包处理**: - 首先,你需要从指定的URL下载Spark安装包。这通常...
1. **弹性分布式数据集(RDD)**:RDD是Spark的基础数据结构,它是不可变、分区的记录集合,可以在集群中并行操作。RDD支持两种操作:转换(transformations)和动作(actions)。转换创建新的RDD,而动作触发计算并...
Apache Kafka作为DStream数据源,spark使用流处理处理kafka数据的时候需要将本jar包导入venv/lib/python3.7/site-packages/pyspark/jars
ant-antlr-1.6.3.jarant-antlr-1.6.3.jarant-antlr-1.6.3.jarant-antlr-1.6.3.jar
jquery 1.6.3 正式版源码 jquery源码 jquery1.6.3 源码 jquery最新版源码
VdhCoAppSetup1.6.3是一款专为视频下载辅助工具Video DownloadHelper设计的配套安装程序。这个版本1.6.3相较于1.6.1版本,包含了更新和改进,旨在提供更稳定、更高效的视频下载支持。Video DownloadHelper是一款广受...