Kubernetes与大数据之四:基于Kubernetes的Spark运行Terasort(50GB data)

测试眼里的Hadoop系列 之Terasort TeraSort是Hadoop的测试中很有用的一个工具,但以前只是粗略的知道它的功能和用法,简单的用它做了几个测试用例。实际上,对于这种比较通用的工具,如果能够了解它更多一些的话,对于理解Hadoop是很有帮助的,同时也可以更好的利用它来帮助测试。最近有点时间,就了解了一些它的背景,代码实现原理等等,就先记录下来吧。 1. Hadoop与Sort Benchmarks SortBenchmar 阅读详情

 

一、前言

Terasort可以测试Kubernetes平台对于Spark计算过程的如下需求的支持:

从HDFS读取能力

向HDFS写入能力

shuffle中网络读写能力

本文使用如下terasort的实现,包括TeraGen、TeraSort和TeraValidate:

https://github.com/ehiggs/spark-terasort

转载自https://blog.youkuaiyun.com/cloudvtech

二、准备工作

2.1 获取代码

git clone https://github.com/ehiggs/spark-terasort.git

2.2 修改编译配置

指定合适的spark和scala版本

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <scala.version>2.11.8</scala.version>
  <scala.binary.version>2.11</scala.binary.version>
  <spark.version>2.1.1</spark.version>
</properties>

2.3 编译

mvn install

ls target/
archive-tmp                  generated-sources  maven-status                    spark-terasort-1.1-SNAPSHOT-jar-with-dependencies.jar
classes                      jars              site                            spark-terasort-1.1-SNAPSHOT-javadoc.jar
classes.440875732.timestamp  maven-archiver    spark-terasort-1.1-SNAPSHOT.jar  surefire

转载自https://blog.youkuaiyun.com/cloudvtech

三、运行

3.1 在hdfs建立数据目录

hadoop fs -mkdir /terasort

3.2 建立spark运行的namespace和权限

admin-role.conf

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: spark-admin
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: spark-admin
  namespace: spark
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: spark-admin
  namespace: spark
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile

建立spark namespace并绑定cluster-admin role

kubectl create namespace spark
kubectl apply -f admin-role.conf 

3.3 运行TeraGen

run_spark_teragen.sh 

/root/spark/bin/spark-submit     \

  --master k8s://https://192.168.0.3:6443  \  #master地址

  --deploy-mode cluster   \

  --name spark-terasort   \

  --class com.github.ehiggs.spark.terasort.TeraGen   \ #class地址

  --conf spark.kubernetes.namespace=spark \ #namespace

  --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark-admin \ #service account

  --conf spark.kubernetes.container.image=192.168.0.3:5000/spark:terasort     \ #镜像地址

  --conf spark.eventLog.dir=hdfs://192.168.2.11:9000/eventLog \ #log地址

  --conf spark.eventLog.enabled=true \ #打开log

  --conf spark.executor.instances=50 \ #executor数目

  --conf spark.driver.cores=2 \ #driver CPU数目

  --conf spark.driver.memory=8g \ #driver内存

  --conf spark.executor.memory=6g \ #executor内存

  --conf spark.executor.cores=1 \ #executor CPU数目

  --proxy-user hadoop \ #运行用户

                       local:///opt/spark/examples/jars/spark-terasort-1.1-SNAPSHOT-jar-with-dependencies.jar \

                       50g \ #数据大小

                       hdfs://172.2.2.11:9000/terasort/50g_generated #数据生成目录

3.4 运行TeraSort

run_spark_terasort.sh 

/root/spark/bin/spark-submit     \
  --master k8s://https://172.3.0.3:6443  \
  --deploy-mode cluster   \
  --name spark-terasort   \
  --class com.github.ehiggs.spark.terasort.TeraSort   \
  --conf spark.kubernetes.namespace=spark \
  --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark-admin \
  --conf spark.kubernetes.container.image=172.3.0.3:5000/spark:terasort     \
  --conf spark.eventLog.dir=hdfs://172.2.2.11:9000/eventLog \
  --conf spark.eventLog.enabled=true \
  --conf spark.executor.instances=50 \
  --conf spark.driver.cores=2 \
  --conf spark.driver.memory=8g \
  --conf spark.executor.memory=6g \
  --conf spark.executor.cores=1 \
  --proxy-user hadoop \
    local:///opt/spark/examples/jars/spark-terasort-1.1-SNAPSHOT-jar-with-dependencies.jar \
    hdfs://172.2.2.11:9000/terasort/50g_generated \
    hdfs://172.2.2.11:9000/terasort/50g_sorted

Stages: 

Executors:

Tasks: 

3.5 运行TeraValidate

run_spark_teravarify.sh 

/root/spark/bin/spark-submit     \
  --master k8s://https://172.3.0.3:6443  \
  --deploy-mode cluster   \
  --name spark-terasort   \
  --class com.github.ehiggs.spark.terasort.TeraValidate   \
  --conf spark.kubernetes.namespace=spark \
  --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark-admin \
  --conf spark.kubernetes.container.image=172.3.0.3:5000/spark:terasort     \
  --conf spark.eventLog.dir=hdfs://172.2.2.11:9000/eventLog \
  --conf spark.eventLog.enabled=true \
  --conf spark.executor.instances=50 \
  --conf spark.driver.cores=2 \
  --conf spark.driver.memory=8g \
  --conf spark.executor.memory=6g \
  --conf spark.executor.cores=1 \
  --proxy-user hadoop \
    local:///opt/spark/examples/jars/spark-terasort-1.1-SNAPSHOT-jar-with-dependencies.jar \
    hdfs://172.2.2.11:9000/terasort/50g_sorted \
    hdfs://172.2.2.11:9000/terasort/50g_varified

3.6 运行概览

3.7 运行状态图示

系统资源使用情况

转载自https://blog.youkuaiyun.com/cloudvtech

 

Hadoop实践(四)---Hadoop集群测试(MR样例) Hadoop 自带示例程序详解 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第八十四篇 C++分布式软件高并发/高可用算法01

4. 提交:协调者选择提交时间戳(>所有读时间戳),两阶段提交:a) 写意图预提交到所有参与者,b) 参与者持久化后确认,c) 协调者决定提交,异步清理意图。:客户端请求发送到协调节点,协调节点根据路由转发到主分片所在节点。Span有父子关系。1. 索引文档:客户端发送PUT请求到协调节点,协调节点路由到主分片节点,主分片写入本地,然后并行复制到副本分片,等待确认后响应客户端。3. 搜索:客户端发送搜索请求到协调节点,协调节点广播到所有相关分片,每个分片执行查询,返回结果,协调节点合并、排序、分页后返回。

weixin_49199313的博客 1077

Spark性能测试Terasort

上次做了Hadoop集群的性能测试,因为主要的大数据开发工作在Spark上,这次做一下Spark的性能测试。 CDH6.0.1环境Hadoop集群性能测试 代码参考:spark-terasort 因为使用的CDH6.0.1,Spark版本2.2.0,代码需要做一些修改,这里已经在Spark2.3源码下修改好并编译打包,放到了Spark的examples里,可以替换Spark的exampl...

L, there! 2468

Spark-terasort:Spark Terasort基准测试

Spark-Terasort TeraSort是一种流行的基准测试,用于衡量在给定群集上对1 TB随机分布的数据(或所需的任何其他数据量)进行排序的时间。 它最初是用来测量Apache:trade_mark:Hadoop:registered:集群的MapReduce性能的。 在此项目中,代码将在Scala中重写,以测量Spark集群的性能。 它是对Hadoop集群的存储层(HDFS)和计算层(YARN / Spark)进行组合测试的基准。 完整的TeraSort基准测试运行包含以下三个步骤: 通过TeraGen生成输入数据。 在输入数据上运行实际的TeraSort。 通过TeraValidate验证排序的输出数据。 您无需在每次TeraSort运行之前重新生成输入数据(步骤2)。 因此,如果对生成的数据感到满意,则可以跳过第1步(TeraGen),以便以后的TeraSort运行。 包装方式 $ sbt assembly

Spark TeraSort 实现与调优

参考ehiggs/spark-terasort以及RDD#sortBy的代码,我自己实现了一个Spark的TeraSort程序。

Just for Fun la 4639

S7-200 Smart 控制运动轴(脉冲电机/伺服)教程

S7-200 Smart 控制运动轴(脉冲电机/伺服) 结合本人刚接触触摸屏时候的踩坑经验,编写S7-200 Smart 控制运动轴(脉冲电机/伺服)的详细流程,给刚接触PLC的朋友提供一些经验指导。 本文详细介绍了S7-200 Smart 控制脉冲步进/伺服电机流程,包含接线方法及梯形图。希望对初学者有所帮助

xjbsw0的博客 5万+

STM32N6570-DK ISP调试

将下载线接入STLINK V3EC接口,将BOOT1拨码拨至右边,即将其置为H,上电或已经上电的按复位,打开STM32CubeProgrammer,设置start address:0x70000000。板子消耗电流较大,即使缩短数据线接了USB供电依然不能正常点亮显示屏,最终通过板上CN2端子加了外部5V供电,仍然需要560mA的外部电流。3.烧录bin文件:STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。

liu的博客 1063

Spark 与 Hadoop 关于 TeraGen/TeraSort 的对比实验(包含源代码)

自从 Hadoop 问世以来,MapReduce 在很长时间内都是排序基准测试的纪录保持者,但这一垄断在最近被基于内存计算的 Spark 打破了。在今年Databricks与AWS一起完成的一个Daytona Gray类别的Sort Benchmark中,Spark 完胜 Hadoop MapReduce:“1/10计算资源,1/3耗时”。这是个很有意思的对比实验,因此笔者也在一个小规模集群上做了一个微缩版的类似试验。

samhacker的专栏 8345

若依框架-实现管理端与用户端的不同页面布局

我们现在要做的是:管理员登录时展示后台管理端,普通用户登录时展示我们自己写的页面。所以我们可以用v-if来判断登录用户的角色,如果用户角色包含admin,说明是管理员,渲染管理端相关组件,否则渲染用户端组件。不过若依作者的本意还是想退出系统后清空角色信息,所以为了保险期间,我们可以在退出系统后,延迟2秒,再单独清空角色信息。当我们登录管理端后,再退出登录,会有那么一瞬间渲染用户页面,然后才是回到登录界面。这个时候,前端检测到角色信息为空,不包含admin,于是就会渲染用户页面。用来延迟 2 秒执行。

m0_74462339的博客 1564

Hdfs TeraSort性能测试报错处理

terasort性能测试报错处理

m0_47139984的博客 612

vite打包文件如何支持files协议,支持双击即可打开网页,支持electron打包文件。

原本的所需框架为vite + element-plus项目,需要打包之后用eletron打包为桌面应用。但遇到一个问题,耗费了整整一下午时间。vite的配置也没有考虑过纯静态页面的情况。打包之后的页面只支持https协议。不断是百度以及问AI然后看vite官网文档,最后终于配置好了。这里有一个问题就是上面箭头所指位置,不支持跨域,也是es6的语法也不支持。配置完之后打包文件如下。

guiplan 1561

YOLO11改进|卷积篇|引入多样化分支块DBB

YOLO11中添加多样化分支块DBB

A1983Z的博客 1443

探索高效大数据排序:Spark-TeraSort Benchmark

探索高效大数据排序:Spark-TeraSort Benchmark spark-terasortSpark Terasort项目地址:https://gitcode.com/gh_mirrors/sp/spark-terasort 在这个大数据时代,快速而准确的排序是任何大规模数据分析任务中的关键环节。Spark-TeraSort 是一个专为 Apache Spark 设计的基准测试程序,它借...

gitblog_00043的博客 463

V90伺服 EPOS模式下回原(详细配置+SCL源代码)

/ 输出上限 100.0%rSetPoint : Real;// 设置目标值工程量。// 通道转换参考值。Td : Real;

RXXW_Dor的博客 2662

Terasort 基准测试

Terasort 基准测试 生成数据,teragen 后面生成数据大小,比如我们要生成4GB数据 410241024*1024/100 行数据,因为每一行数据是100B,所有要除以100。 第二个参数是 数据存放目录 /opt/model/hadoop-2.7.6/bin/hadoop jar ./hadoop-mapreduce-examples-2.7.6.jar teragen 42949672 terasort/4GB-input ...

qq_38347727的博客 817

51智能小车(双轮)

前几天接了个小单子,是一个基于51单品机的作品,发现自己对小车的认识还是不太🆗。也算是完成了任了的;欢迎各位小伙伴来多多交流,大家一起进步。最后有需要单片机课程设计的小伙伴滴滴我哦(有偿)。企鹅:2397746994。

qq_56992543的博客 2346

ZYNQ 网络通信的四种实现方案

一,ZYNQ MIO以RGMII 接口连接外部PHY芯片实现LWIP网络通信。 二,ZYNQ PS 的 ENET0/ENET1 通过 EMIO 的方式扩展至 PL,在 PL 中通过 RGMII 接口连接扩展子卡实现 LWIP 网络通信。 在PL中搭建了1个AXI 1G/2.5G Ethernet Subsystem以及1个AXI Direct Memory Access IP 核。这两个 IP核均通过AXI 总线经S_AXI_HP0 口与PS 连接,PS 通过AXI 总线对其进行配置和控..

wangjie36的博客 1万+

hadoop.terasort测试

硬件配置: node configuration: 2*4-core 16GB-ram 4*1T-storage node number: 11 软件配置(其他是默认设置):replication: 1--------------------------------- 测试过程中调节的参数:mapred.tasktracker.map.tasks.maximum=4(共八个cores, 留一个给d

nuoline的专栏 1258

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大数据平台CDH性能测试之Hibench

CDH性能测试之HiBenchHiBench简介 在大数据领域,集群的性能主要是整体的网络和数据吞吐量决定的。使用Hibench测试时,使用传统电口千兆网络的任务,运行时间比光网任务慢10s左右。Hibench是用来衡量CDH性能的基准测试集,包含:文件系统IO性能,系统的批处理吞吐,数据仓库OLAP分析算子,机器学习的处理能力,以及流处理系统的能力。 HiBench简介 Hibench是Intel推出的大数据基准测试工具,提供对hive(aggregation,scan,join),排序(sort,TER

测试小菜蝶 4344

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

探索大数据排序的极限:Spark上的TeraSort基准测试项目

探索大数据排序的极限:Spark上的TeraSort基准测试项目 在大数据处理的浩瀚宇宙中,排序任务一直是一项核心且极具挑战性的操作。今天,我们向您介绍一个强大而实用的工具——Spark TeraSort Benchmark。该项目源自对顶尖技术的追求与实现,旨在利用Apache Spark的强大分布式计算能力,进行大规模的数据排序验证。尽管它并非目前保持世界纪录的TeraSort程序,但其独特的...

gitblog_00801的博客 557

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

.NET与大数据

前言当别人做大数据用Java、Python的时候,我使用.NET做大数据、数据挖掘,这确实是值得一说的事。写的并不全面,但都是实际工作中的内容。.NET在大数据项目中,可以做什么?1、写脚本(使用控制台程序+顶级语句)2、写工具(使用Winform)3、写接口、写服务使用C#写代码的优点是什么?1、静态类型+匿名类型,一次性使用的实体类就用匿名类型,多次或多个地方使用的实体类就用静态类型,静态类型...

weixin_68436326的博客 388

.NET工程师知识图谱--大数据

1.知识图谱 1.1.数据采集 名称 说明 网络爬虫 按照一定规则自动抓取网站信息的程序,可以为数据收集提供来源。 Flume 分布式、高可靠、高可用服务,可以有效收集、聚合、移动大量的日志数据。Flume的设计目的是要向Hadoop集群批量导入基于事件的海量数据。 Logstash 开源服务器端数据处理管道,可以同时从多个数据来源采集数据和转换数据,并将数据传输至存储中。 Beats 轻量级数据采集产品,包含用于收集网络流量数据的Packetbeat,用于收集系统、进程和文件

lordwish的专栏 614

.NET也能玩大数据?

前言当别人做大数据用Java、Python的时候,我使用.NET做大数据、数据挖掘,这确实是值得一说的事。写的并不全面,但都是实际工作中的内容。.NET在大数据项目中,可以做什么?1、写脚本(使用控制台程序+顶级语句)2、写工具(使用Winform)3、写接口、写服务使用C#写代码的优点是什么?1、静态类型+匿名类型,一次性使用的实体类就用匿名类型,多次或多个地方使用的实体类就用静态类型,静态类型...

weixin_68436326的博客 328

Kubernetes的Spark运行Terasort(四)

目的: Terasort测试Kubernetes平台对于Spark计算过程 前提: 从HDFS读取能力 向HDFS写入能力 shuffle中网络读写能力 1:准备工作 获取代码 git clone https://github.com/ehiggs/spark-terasort.git 修改编译配置 指定合适的spark和scala版本 <propertie...

CodeAsWind 2427

TeraSort实验--测试Map和Reduce Task数量对Hadoop性能的影响

一、           实验环境 1个master节点, 16个slave节点: CPU:8GHZ , 内存: 2G 网络:局域网 二、           实验描述    通过Hadoop自带的Terasort排序程序,测试不同的map task和reduce task数量,对Hadoop性能的影响。    实验数据由程序中的teragen程序生成,数据量为1

zhigang1007的博客 1316
上一篇: Kubernetes与大数据之三:为基于Kubernetes的Spark安装History Server
下一篇: kubernetes系列之十九:配置kubernetes使用kubevirt管理虚拟机
cloudvtech
博客等级 码龄9年 533粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值