
spark
文章平均质量分 65
zxfBdd
这个作者很懒,什么都没留下…
展开
-
Hadoop Shuffle和Spark Shuffle的区别
一.MR的Shuffle mapShuffle 数据存到hdfs中是以块进行存储的,每一个块对应一个分片,maptask就是从分片中获取数据的 在某个节点上启动了map Task,map Task读取是通过k-v来读取的,读取的数据会放到环形缓存区,这样做的目的是为了防止IO的访问次数,然后环形缓存区的内存达到一定的阀值的 时候会把文件益写到磁盘,溢出的各种小文件会合并成一个大文件,这个合并的过程中会进行排序,这个排序叫做归并排序 1.1map阶段...转载 2021-04-20 20:41:12 · 449 阅读 · 0 评论 -
如何在Spark的Worker节点中给RocketMq发送消息
1.背景 之前使用spark进行数据计算,需要将计算结果发送到rocketmq上去,有两种做法:第一种是将计算结果collect到Driver端,然后统一发送。第二种是直接在各个计算结果的partition(即foreachPartition函数)分片中发送。第一种存在的问题是,如果计算结果的数据量非常庞大,如上千万,就需要很大的内存来支持,同时增加了网络传输开销。如果是第二种就不存在这种问题,直接在worker节点发送完毕,不存在数据堆积和网络开销。 既然说是要发送数据到rock...转载 2021-02-07 17:18:40 · 552 阅读 · 0 评论 -
spark-python版本依赖与三方模块方案
spark-python版本依赖与三方模块方案本文讲解spark client模式和cluster模式的第三方库依赖解决方法,注意,在用的时候需要看清楚自己的集群是哪种方法部署spark。更新:2019-12-181、cluster模式如果spark集群是以cluster模式搭建,方法就比较简单。下面是一些步骤,每个公司的集群配置不同,具体的参数配置位置需要根据实际情况而定。(1)使用conda创建python虚拟环境、安装第三方库假设虚拟环境是pyspark_py36,安...转载 2021-01-07 17:32:11 · 812 阅读 · 0 评论 -
yarn上报错Cannot run program “python“: error=2, No such file or directory
配置好yarn《【解决】处于ACCEPTED状态不running,Oozie提交pyspark任务后》,并解决宕机问题《运行yarn宕机(pyspark任务,通过Oozie提交)》后,出现新的问题:java.io.IOException: Cannot run program "python": error=2, No such file or directoryat java.lang.ProcessBuilder.start(ProcessBuilder.java:1...转载 2021-01-05 21:14:36 · 4899 阅读 · 0 评论 -
pyspark出现Java.io.IOException: Cannot run program “python“: CreateProcess error=2问题的解决办法
Java.io.IOException: Cannot run program "python": CreateProcess error=2解决办法:在ubuntu用户系统配置文件.bashrc中加入:export PYSPARK_PYTHON=/usr/bin/python同步所有spark的集群中的机器该配置source .bashrc使生生效...转载 2021-01-05 21:12:33 · 1426 阅读 · 0 评论 -
spark教程-Pyspark On Yarn 的模块依赖问题
原理简述Yarn 模式是把资源统一交给 Yarn 集群来管理,其优点在于实现了 application 的多样性,如 MapReduce 程序、HBase 集群、Storm 集群、spark 集群等;Yarn 模式有两种运行模式:client 和 cluster,区别在于client 模式的 Driver 运行在 client 端,而 client 端可能是 spark 集群内节点,也可以不是,一般来说不是集群内节点,这就需要在客户端节点上安装程序运行所需环境,以支持 spark 的正常...转载 2021-01-05 18:46:55 · 1196 阅读 · 0 评论 -
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD
今天小编用Python编写Spark程序报了如下异常:py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.: java.lang.IllegalArgumentException: Unsupported class file major version 55从网上找到的解决方案是JDK版本问题,于是乎小编将Ja...转载 2021-01-05 16:03:13 · 19236 阅读 · 3 评论 -
如何在virtualenv环境中安装指定的python版本
指定python版本:virtualenv -p python执行文件路径 自定义虚拟环境名称。如果文件路径有空格,用引号。如果不指定python版本,则默认使用环境变量中的python版本可使用-p PYTHON_EXE选项在创建虚拟环境的时候指定Python版本1 #创建python2.7虚拟环境2 virtualenv -p /usr/bin/python2.7 ENV2.73 4 #创建python3.4虚拟环境5 virtualenv -p /usr/l...转载 2020-12-14 17:58:55 · 16805 阅读 · 0 评论 -
python项目打包虚拟环境
python项目打包时,需要将虚拟环境与python自身安装路径下的lib包整合在一起,将如下内容保存为packvenv.sh文件,修改PYTHON_PATH(python的安装路径)以及VENV_PATH(虚拟环境的全路径)为自己的目录,然后给文件添加执行权限:chmod +x packvenv.sh,./packvenv.sh执行即可Linux:packvenv.sh #!/bin/bash PYTHON_PATH=/usr/local/python2.7...转载 2020-12-14 15:41:48 · 1440 阅读 · 0 评论 -
spark-submit提交任务到集群,分发虚拟环境和第三方包
spark-submit提交任务的参数很多:Usage: spark-submit [options] <app jar | python file> [app arguments]Usage: spark-submit --kill [submission ID] --master [spark://...]Usage: spark-submit --status [submission ID] --master [spark://...]Usage: spark-sub...转载 2020-12-15 17:21:55 · 1057 阅读 · 0 评论 -
pycharm本地开发pyspark并提交远程执行
最近在学习pyspark的开发,遇到些问题记录下。我们在开发pyspark时经常需要进行测试,自己电脑上安装搭建一个spark环境代价有点高,目前有的同事在开发时,通常是开发完把代码贴出到本地测试集群进行测试,因此,能不能借助pycharm里的一个功能,连接本地测试集群的pyspark进行执行呢,经过一番搜索终于实现了这一个功能。新建带有Virtualenv的工程Virtualenv是什么?Python 的第三方包成千上万,在一个 Python 环境下开发时间越久、安装依赖越多,就越容...转载 2020-12-11 15:38:26 · 1220 阅读 · 0 评论 -
pyenv install太慢
如果是下载 python 源码这一步慢,那么可以参考我的办法。 mkdir $PYENV_ROOT/cache 然后用别的方法下载 Python 源码放到该目录下。 这个路径是由 PYTHON_BUILD_CACHE_PATH 控制的,默认值是 "$PYENV_ROOT/cache",但是文件夹并不是默认创建的。 相关代码可以自己查看https://github.com/pyenv/pyenv/blob/master/plugins/python-build/bin/...原创 2020-12-11 15:32:20 · 2016 阅读 · 0 评论 -
Spark混部集群适配独立Python 用户指南
问题分析更新时间:2020/10/19 GMT+08:00说明:以PySpark任务提交的独立Python包中为ARM版本Python为例说明。 集群为x86与ARM的混合部署Spark集群。 任务脚本“/opt/test_spark.py”为举例脚本,可用其它PySpark任务替代。 test_spark.py脚本内容# test_spark.pyimport osimport sysfrom pyspark import SparkContextfrom pyspark i转载 2020-12-11 15:12:10 · 642 阅读 · 1 评论 -
pyspark提交集群任务
1.打包python环境 建议使用conda conda克隆环境 conda create -n prod_env --clone base 进入conda的miniconda3/envs # 打包python环境 zip -r prod_env.zip prod_env 2.提交任务sh脚本 exportPYSPARK_DRIVER_PYTH...转载 2020-12-11 15:05:34 · 1108 阅读 · 0 评论 -
Python版本管理神器-pyenv
一、问题情景:Python解释器版本混乱, 2和3差别巨大, 而且细分版本也不尽相同, 难以选择和管理. 不同Linux发行版自带Python不同, 如ubuntu16自带2.7和3.5版本, 其中系统许多组件依赖于自带解释器, 一旦删除或者更改都可能会造成系统出问题. 不同的Python解释器软件包管理也是问题, 如pip和ipython等必备包组件, 而且在项目开发中如何保证不同的包环境互不干扰也是一个问题.那么有没有一个终极的解决办法能在管理不同解释器版本的同时控制不同的包环境呢? 有...转载 2020-12-11 15:04:00 · 465 阅读 · 0 评论 -
Linux 下的 Python 多版本管理(pyenv)
如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的Python运行环境,我们可以使用virtualenv解决这个问题,它可以为一个应用创建一套“隔离”的Python运行环境。1|0一. 安装virtualenv sudo apt-get install python-virtualenvsudo easy_install virtualenv 2|0二. 创建环境创建python2环境:virtualenv myenv创...转载 2020-12-11 15:02:48 · 957 阅读 · 0 评论 -
Linux下搭建PySpark环境
linux版scala:https://downloads.lightbend.com/scala/2.11.0/scala-2.11.0.tgzlinux/windows通用版spark:https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgzlinux/windows通用版hadoop:https://mirrors.tuna.tsinghua.edu.cn/apach...转载 2020-12-15 17:22:13 · 965 阅读 · 2 评论 -
pyspark 安装配置【linux && win】
一、windows 安装1、下载spark http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz 2、配置spark 环境变量set SPARK_HOME=d:\spark2.3.1set PATH=%SPARK_HOME%\bin;%PATH%3、安装python的pyspark模块pip install pyspark -i https://pyp...转载 2020-12-15 17:22:50 · 412 阅读 · 0 评论 -
Linux 安装 pySpark
1、安装Java和Scale。1.1、Java 参考Java 安装运行1.2、Scale安装1)下载并解压 官网地址:https://www.scala-lang.org/download/ wget https://downloads.lightbend.com/scala/2.13.1/scala-2.13.1.tgz tar -zxvf scala-2.13.1.tgz mv scala-2.13.1 scala 2...转载 2020-12-10 19:30:39 · 926 阅读 · 1 评论 -
pyspark的安装配置
1、搭建基本spark+Hadoop的本地环境 https://blog.csdn.net/u011513853/article/details/52865076?tdsourcetag=s_pcqq_aiomsg2、下载对应的spark与pyspark的版本进行安装 https://pypi.org/project/pyspark/2.3.0/#history3、单词统计测试 a、python版本 1 2 3 4 5 6...转载 2020-12-10 19:29:37 · 518 阅读 · 0 评论 -
pyspark使用指定python环境后的提交方法
一、扫盲这篇文章很好的解释了如下几个问题:spark on Yarn 是什么? pyspark application 的运行原理是什么? pyspark application如何在 Yarn运行?二、实际将python环境打包cd path_to_python*注意这里要进入python目录下打包,否则整个路径(就是python所在的路径)都会被打包,后面解压的时候,python前面会出现超长路径,不能正常解析报错zip -r path_to_python...转载 2020-12-10 19:28:49 · 992 阅读 · 0 评论 -
pyspark入门 | spark-submit 提交pyspark任务
https://github.com/hxjcarrie/pyspark_study以LogisticRegression为例输入数据样例(第一列为label,后面为feature)lrDemo.py(基于RDD的mllib)#!coding=utf8'''author: huangxiaojuan'''import sysreload(sys)sys.setdefaultencoding('utf8')from pyspark.sql import SparkS...转载 2020-12-10 19:28:03 · 4675 阅读 · 0 评论 -
Pyspark spark-submit 集群提交任务以及引入虚拟环境依赖包攻略
网上提交 scala spark 任务的攻略非常多,官方文档其实也非常详细仔细的介绍了 spark-submit 的用法。但是对于 python 的提交提及得非常少,能查阅到的资料非常少导致是有非常多的坑需要踩。官方文档对于任务提交有这么一段介绍,但是初次使用者依然会非常疑惑:Bundling Your Application’s DependenciesIf your code depends on other projects, you will need to package t...转载 2020-12-10 19:25:53 · 1233 阅读 · 0 评论 -
pyspark使用教程(一)
使用Pyspark教程,参考《Spark快速大数据分析》1.Spark背景Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘...转载 2020-12-10 19:25:02 · 1283 阅读 · 0 评论 -
pyspark的使用和操作(基础整理)2020-12-10
Spark提供了一个Python_Shell,即pyspark,从而可以以交互的方式使用Python编写Spark程序。有关Spark的基本架构介绍参考http://blog.csdn.net/cymy001/article/details/78483614;有关Pyspark的环境配置参考http://blog.csdn.net/cymy001/article/details/78430892。pyspark里最核心的模块是SparkContext(简称sc),最重要的数据载体是RDD。RD...转载 2020-12-10 19:24:04 · 3287 阅读 · 0 评论 -
提交PySpark应用程序以集群模式在YARN上触发
我正在尝试测试为我工作的团队构建的大数据平台。它在YARN上运行时具有火花。是否可以创建PySpark应用并将其提交到YARN集群上?我能够成功提交示例SparkPi jar文件,它在YARN stdout日志中返回输出。这是我要测试的PySpark代码;<span style="color:#333333"><code>from pyspark import SparkConffrom pyspark import SparkContextHDFS_MAST转载 2020-12-10 18:12:20 · 2664 阅读 · 1 评论 -
在集群上运行Spark应用程序(Python版)
Spark应用程序在集群中运行时,需要借助于集群管理器(包括本地集群管理器、YARN、Mesos)来为其实现资源管理调度服务,实现对集群中各个机器的访问(可以参考前面章节的内容:Spark集群部署模式)。这里通过简单的示例介绍其中两种:独立集群管理器和Hadoop Yarn集群管理器。通过介绍,我们可以了解到如何在这两种集群管理器上运行Spark应用程序。启动Spark集群请登录Linux系统,打开一个终端。启动Hadoop集群cd /usr/local/hadoop/ sb...转载 2020-12-10 18:09:45 · 1245 阅读 · 1 评论 -
spark-submit 提交任务及参数说明
spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行。1. 例子一个最简单的例子,部署 spark standalone 模式后,提交到本地执行。./bin/spark-submit \--master spark://localhost:7077 \examples/src/main/python/pi.py如果部署 hadoop,并且启动 yarn 后,spark 提交到 yarn 执行的例子如下。注意...转载 2020-12-08 17:38:32 · 1350 阅读 · 0 评论 -
Spark问题12之kryoserializer shuffle size 不够,出现overflow
更多代码请见:https://github.com/xubo245/SparkLearningSpark生态之Alluxio学习 版本:alluxio(tachyon) 0.7.1,spark-1.5.2,hadoop-2.6.01.问题描述1.1运行cs-bwamem是出现序列化shuffle overflow问题,主要是需要输出sam到本地,文件比较大,默认的是:spark.kryoserializer.buffer.max 64m而实际大于2G,所以不够。spark we...转载 2020-12-08 15:35:50 · 593 阅读 · 0 评论 -
【大数据进击】如何设置spark.kryoserializer.buffer.max value
如何设置spark.kryoserializer.buffer.max value在运行Spark计算任务时,出现了Buffer Overflow错误,Kryo序列化在序列化对象时缓存爆了。反复设置了几次,终于发现了自己的错误,分享出来,希望大家能避坑。设置Kryo为序列化类//设置Kryo为序列化类(默认为Java序列类)sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")...转载 2020-12-08 15:34:50 · 2487 阅读 · 0 评论 -
Hive,Hive on Spark和SparkSQL区别
Hive on MapreduceHive的原理大家可以参考这篇大数据时代的技术hive:hive介绍,实际的一些操作可以看这篇笔记:新手的Hive指南,至于还有兴趣看Hive优化方法可以看看我总结的这篇Hive性能优化上的一些总结Hive on Mapreduce执行流程执行流程详细解析Step 1:UI(user interface) 调用 executeQuery 接口,发送 HQL 查询语句给 Driver Step 2:Driver 为查询语句创建会话句柄,并将...转载 2020-11-25 17:12:58 · 374 阅读 · 0 评论 -
Spark SQL & Spark Hive编程开发, 并和Hive执行效率对比
SparkSQL也公布了很久,今天写了个程序来看下SparkSQL、SparkHive以及直接用Hive执行的效率进行了对比。以上测试都是跑在YARN上。 首先我们来看看我的环境:3台DataNode,2台NameNode,每台机器20G内存,24核 数据都是lzo格式的,共336个文件,338.6 G 无其他任务执行如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop三个测试都是执行 select ...转载 2020-11-25 17:11:57 · 835 阅读 · 0 评论 -
在Spark中使用xgboost训练模型
spark上运行xgboost模型,具有内存运行,速度更快,减少数据传输的优势。1、交互模式测试使用spark运行xgboost首先需要下载依赖的jar包,下载地址https://github.com/criteo-forks/xgboost-jars/releases,主要需要xgboost4j-0.72-criteo-20180518_2.10-linux.jar在堡垒机中使用命令 spark-shell --jars xgboost*.jar,进入交互模式,可以编写代码进行测试。...转载 2020-09-17 10:38:03 · 2796 阅读 · 0 评论 -
hive使用spark引擎的几种情况
使用spark引擎查询hive有以下几种方式:1>使用spark-sql(spark sql cli)2>使用spark-thrift提交查询sql3>使用hive on spark(即hive本身设置执行引擎为spark)针对第一种情况:1>ambari 已经支持,不需要特殊配置;2>cdh不支持spark sql cli,原因是cdh自带的spark,spark-sql和spark-R是阉割版本的,如果需要使用spark sql cli,需要下载原生的编...转载 2020-09-14 16:27:39 · 3451 阅读 · 0 评论 -
spark操作hive分区表 源码bug排查
1.异常场景hive实现创建好分区表,然后使用spark插入数据到分区表val result = sparkSession.createDataFrame(rdd, schema)result.write.mode("append").format("hive").partitionBy("dt").saveAsTable("test_table_name")2.异常信息org.apache.spark.SparkException: Requested partitioni...转载 2020-08-25 19:03:53 · 804 阅读 · 0 评论 -
记一次spark源码的bug排查,顺便简单看一下spark sql底层引擎catalyst处理的流程
场景:hive中事先创建好分区表test_table_name,然后通过spark streaming任务处理数据,将rdd转为dataframe后写hive。具体出错代码val result = sparkSession.createDataFrame(rdd, schema)result.write.mode("append").format("hive").partitionBy("dt").saveAsTable("test_table_name")异常信息:...转载 2020-08-25 18:34:27 · 1023 阅读 · 0 评论 -
Spark SQL:RDD、DataFrames、DataSet之间的转换
文章目录 RDD转DataFrames 方式一:直接指定列名和数据类型 方式二:通过反射转换 方式三:通过编程设置Schema(StructType) RDD转DataSet DataFrame/Dataset转RDD DataFrame转Dataset Dataset转DataFrame people.txtMichael,29Andy,30Justin,19RDD转DataFramesscal...转载 2020-08-25 16:59:02 · 195 阅读 · 0 评论 -
如何高效使用Spark的mappartition
mappartition的妙用 本问主要想讲如何高效的使用mappartition。 首先,说到mappartition大家肯定想到的是map和MapPartition的对比。网上这类教程很多了,以前浪尖也发过类似的,比如 对比foreach和foreachpartition 主要是map和foreach这类的是针对一个元素调用一次我们的函数,也即是我们的函数参数是单个元素,假如函数内部存在数据库链接、文件等的创建及关闭,那么会导致处理每个元素时创建一次链接或者句柄,导致性能底...转载 2020-08-25 16:57:13 · 1447 阅读 · 1 评论 -
Spark:JavaRDD 转化为 Dataset的两种方案
JavaRDD 转化为 Dataset<Row>方案一:实体类作为schema定义规范,使用反射,实现JavaRDD转化为Dataset<Row>Student.java实体类:import java.io.Serializable;@SuppressWarnings("serial")public class Student implements Serializable { private String sid; private Stri...转载 2020-08-25 15:09:57 · 2063 阅读 · 0 评论 -
Spark 2.0 DataFrame mapPartitions操作中Unable to find encoder for type stored in a Dataset.问题的分析与解决
在项目开发的过程中,遇到了一个dataframe.mapPartitions操作的时候,出现上述的错误,看了提醒的问题,主要是:需要一个encode操作.但是为了简化操作可以直接将dataframe转换成rdddataframe.rdd.mapPartitions...转载 2020-08-25 11:23:14 · 487 阅读 · 0 评论