spark

部署Spark 0.9集群

被刻印的时光 ゝ 提交于 2020-02-29 16:45:29
Spark 0.9 1 部署Spark集群 这种是运维人员在生产环境下,搭建起一个Spark集群。 (可选)创建新用户 Spark 一般我倾向于把需要启动daemon进程,对外提供服务的程序,即服务器类的程序,安装在单独的用户下面。这样可以做到隔离,运维方面,安全性也提高了。 创建一个新的group, $ sudo groupadd spark 创建一个新的用户,并加入group, $ sudo useradd -g spark spark 给新用户设置密码, $ sudo passwd spark 在每台机器上创建 spark 新用户,并配置好SSH无密码,参考我的另一篇博客, SSH无密码登录的配置 假设有三台机器,hostname分别是 master, worker01, worker02。 1.1 下载 Spark 预编译好的二进制包 如果你需要用到HDFS,则要针对Hadoop 1.x 和Hadoop 2.x 选择不同的版本。这里我选择 Hadoop 2.x 版。 spark@master $ wget http://d3kbcqa49mib13.cloudfront.net/spark-0.9.0-incubating-bin-hadoop1.tgz spark@master $ tar zxf spark-0.9.0-incubating-bin-hadoop1

Flume、Kafka、Storm、Scala、Impala、Hive、Spark基本概念

谁说我不能喝 提交于 2020-02-29 11:32:17
Flume Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力。 Flume-og采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用,另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点。Flume Master间使用gossip协议同步数据。 Flume-ng最明显的改动就是取消了集中管理配置的 Master 和 Zookeeper,变为一个纯粹的传输工具。Flume-ng另一个主要的不同点是读入数据和写出数据现在由不同的工作线程处理(称为 Runner)。 在 Flume-og 中,读入线程同样做写出工作(除了故障重试)。如果写出慢的话(不是完全失败)

Spark 入门(Python、Scala 版)

帅比萌擦擦* 提交于 2020-02-29 09:44:17
本文中,我们将首先讨论如何在本地机器上利用Spark进行简单分析。然后,将在入门级水平探索Spark,了解Spark是什么以及它如何工作(希望可以激发更多探索)。最后两节将开始通过命令行与Spark进行交互,然后演示如何用Python写Spark应用,并作为Spark作业提交到集群上。同时也会提供相应的 Scala 版本。 1、设置Spark环境 在本机设置和运行Spark非常简单。你只需要下载一个预构建的包,只要你安装了Java 6+和Python 2.6+,就可以在Windows、Mac OS X和Linux上运行Spark。确保java程序在PATH环境变量中,或者设置了JAVA_HOME环境变量。类似的,python也要在PATH中。 假设你已经安装了Java和Python,以及 Spark,如果没有请参照之前的教程: 《Spark 伪分布式 & 全分布式 安装指南》: http://my.oschina.net/leejun2005/blog/394928 注意:如果要用到下文的 pyspark,则需要设置 python 相关的 spark 包路径: vi .bashrc export PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH 否则会报错:

Spark 下的词频计数

徘徊边缘 提交于 2020-02-29 08:04:43
安装 Spark 下载 Spark 1.52 Pre-Built for hadoop 2.6 http://spark.apache.org/downloads.html 。还需要预装 Java,Scala 环境。 将 Spark 目录文件放到 /opt/spark-hadoop 下,运行 ./spark-shell 会出现连接 Scale 窗口;运行 ./python/pyspark 会出现连接 Python 的窗口。这表示安装成功。 将 python 目录下 pyspark 复制到 Python 安装目录 /usr/local/lib/python2.7/dist-packages。这样才可以在程序中导入pyspark 库。 测试 #!/usr/bin/python # -*- coding:utf-8 -*- from pyspark import SparkConf, SparkContext import os os.environ["SPARK_HOME"] = "/opt/spark-hadoop" APP_NAME = "TopKeyword" if __name__ == "__main__": logFile = "./README.md" sc = SparkContext("local", "Simple App") logData = sc

Spark编程指南—Python版

拈花ヽ惹草 提交于 2020-02-29 08:04:28
本文翻译自Spark( http://spark.apache.org )的官方文档。由于Spark更新较快,部分API已经过时,本文仅供参考,请以相应版本的官方文档和运行时的提示为准。 概述 从高层次上来看,每一个Spark应用都包含一个驱动程序,用于执行用户的main函数以及在集群上运行各种并行操作。Spark提供的主要抽象是弹性分布式数据集(RDD),这是一个包含诸多元素、被划分到不同节点上进行并行处理的数据集合。RDD通过打开HDFS(或其他hadoop支持的文件系统)上的一个文件、在驱动程序中打开一个已有的Scala集合或由其他RDD转换操作得到。用户可以要求Spark将RDD持久化到内存中,这样就可以有效地在并行操作中复用。另外,在节点发生错误时RDD可以自动恢复。 Spark提供的另一个抽象是可以在并行操作中使用的共享变量。在默认情况下,当Spark将一个函数转化成许多任务在不同的节点上运行的时候,对于所有在函数中使用的变量,每一个任务都会得到一个副本。有时,某一个变量需要在任务之间或任务与驱动程序之间共享。Spark支持两种共享变量:广播变量,用来将一个值缓存到所有节点的内存中;累加器,只能用于累加,比如计数器和求和。 这篇指南将展示这些特性在Spark支持的语言中是如何使用的(本文只翻译了Python部分)。如果你打开了Spark的交互命令行——bin/spark

3 分钟学会调用 Apache Spark MLlib KMeans

风格不统一 提交于 2020-02-29 05:38:07
Apache Spark MLlib是Apache Spark体系中重要的一块拼图:提供了机器学习的模块。只是,眼下对此网上介绍的文章不是非常多。拿KMeans来说,网上有些文章提供了一些演示样例程序,而这些程序基本和Apache Spark 官网上的程序片断类似:在得到训练模型后,差点儿都没有展示怎样使用该模型、程序运行流程、结果展示以及举例測试数据等部分。 笔者依据Apache Spark官网上的程序片断。写了一个完整的调用MLlib KMeans库的測试程序,并成功在Spark 1.0 + Yarn 2.2 的环境上运行。因为仅为高速体验目的。本程序里面的非常多细节并未被打磨,但相信已可为对Spark MLlib感兴趣的朋友们提供些许入门级帮助。 [A. 程序主要部分] [B. 測试数据] [C. 运行] 利用 ${SPARK_HOME}/bin/spark-submit 将程序提交给Yarn去运行。 [D. 结果] - Console 返回的结果(最后几行): - Yarn Web Console返回的运行结果: - Yarn Log 中显示 Scala 程序的Output: [E. 总结] - 调用 Spark MLlib 库的过程并不复杂 - 利用MLlib KMeans 训练出来的 Model(KMeansModel),能够方便地对新的数据作出分类预測 来源:

“大数据”领域里的“不明觉厉”

a 夏天 提交于 2020-02-29 02:07:24
大数据(Big Data) 大数据,官方定义是指那些数据量特别大、数据类别特别复杂的数据集,这种数据集无法用传统的数据库进行存储,管理和处理。大数据的主要特点为 数据量大(Volume) , 数据类别复杂(Variety) , 数据处理速度快(Velocity) 和 数据真实性高(Veracity) ,合起来被称为4V。 大数据中的数据量非常巨大,达到了PB级别。而且这庞大的数据之中,不仅仅包括结构化数据(如数字、符号等数据),还包括非结构化数据(如文本、图像、声音、视频等数据)。这使得大数据的存储,管理和处理很难利用传统的关系型数据库去完成。在大数据之中,有价值的信息往往深藏其中。这就需要对大数据的处理速度要非常快,才能短时间之内就能从大量的复杂数据之中获取到有价值的信息。在大数据的大量复杂的数据之中,通常不仅仅包含真实的数据,一些虚假的数据也混杂其中。这就需要在大数据的处理中将虚假的数据剔除,利用真实的数据来分析得出真实的结果。 大数据分析(Big Data Analysis) 大数据,表面上看就是大量复杂的数据,这些数据本身的价值并不高,但是对这些大量复杂的数据进行分析处理后,却能从中提炼出很有价值的信息。对大数据的分析,主要分为五个方面: 可视化分析(Analytic Visualization) 、 数据挖掘算法(Date Mining Algorithms) 、

spark中的python 和 scala的shell

故事扮演 提交于 2020-02-28 23:30:49
本机:win10 python3.5.4 spark3.0.0 JDK13.0.1 scala2.13.1 hadoop2.7.7 终端输入 spark-shell进入scala的shell 打开python版本的Spark shell,也就是PySpark shell 若没有配置spark环境需要: 进入你的spark目录然后输入: bin\pyspark 若已经配置了spark环境 终端输入 pyspark 进入python 来源: https://www.cnblogs.com/ivyharding/p/12380929.html

spark安装小白教程

放肆的年华 提交于 2020-02-28 22:25:18
本人情况: 首次接触大数据工具spark,只会python,sql; 不会java。 本机情况: win10新电脑,里面基本啥都没有,连java都没有 需求: 尝试单机安装spark,学习这个大数据工具,特来记录安装全过程。 第一步:安装JDK 1. 下载安装JDK JDK为java开发工具包(java SDK) 进入 JDK安装官网 ,安装免费;进入后,看到下面的界面 点击后,进入: 先点击accept,再点击需要下载的exe文件 下载完之后,我们就可以直接安装JDK,JDK在windows下的安装非常简单,按照正常的软件安装思路去双击下载得到的exe文件,然后设定你自己的安装目录(这个安装目录在设置环境变量的时候需要用到)即可。 2. JDK环境变量设置 环境变量设置:右击【此电脑】--【属性】--【高级系统设置】--在此界面选【高级】--【环境变量】--在系统变量找”path“---选择并编辑添加安装JDK目录下的文件夹路径名称。之后一路确定。 这样设置好后,便可以在任意目录下打开的cmd命令行窗口下运行下面命令。查看是否设置成功。 java -version 观察可以输出相关java的信息,恭喜宝宝JDK安装成功!!!!撒花 第二步:安装Scala 1. 下载安装Scale scale是spark的开发语言 进入 scala官网 ,看到下面的界面 点击后,跳转到

Spark运行原理

人走茶凉 提交于 2020-02-28 19:54:55
Spark运行架构 基本概念 RDD:分布式内存的抽象概念,高度受限的共享内存模型 DAG:有向无环图,反应RDD的依赖关系 Executot:运行在工作节点的一个进程,负责运行任务,存储数据 任务Task:运行在Executor上的工作单元 作业:一个作业包含多个RDD及作用于相应RDD的操作 阶段Stage:作业调度的基本单位,以宽依赖、窄依赖划分。 架构设计 Spark的运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Work Node)、每个应用的任务控制节点(Driver)和每个工作节点上负责具体任务的进程(Executor) 其中,Executor使用多线程来执行具体任务,减少任务的启动开销;其还有一个BlockManager存储模块,将内存和磁盘共同作为存储设备,内存作为默认存储,不够时,写入磁盘。因此减少了IO开销。 Spark运行基本流程 首先为应用构建基本运行环境,由任务控制节点Driver创建一个Spark Context对象,由该对象与资源管理器通信,申请资源和任务的调配 资源管理器为Executor分配资源,启动进程,Executor随时和资源管理器保持通信,利用心跳 Spark Context根据RDD的依赖关系构建相应的DAG图,将DAG图提交给DAG调度器(DAG Scheduler)