性能

#性能#

已有18人关注此标签

内容分类

宋淑婷

如何使用EMR上的spark有效地读取/解析s3文件夹中.gz文件的负载

我正在尝试通过在EMR上执行的spark应用程序读取s3上目录中的所有文件。 数据以典型格式存储,如“s3a://Some/path/yyyy/mm/dd/hh/blah.gz” 如果我使用深度嵌套的通配符(例如“s3a:// SomeBucket / SomeFolder / / / / *。gz”),性能非常糟糕,需要大约40分钟才能读取几万个小的gzip压缩文件。我的另外两种方法,我的研究告诉我,它的性能要高得多。 使用hadoop.fs库(2.8.5)我尝试读取我提供的每个文件路径。 private def getEventDataHadoop( eventsFilePaths: RDD[String] )(implicit sqlContext: SQLContext): Try[RDD[String]] = Try( { val conf = sqlContext.sparkContext.hadoopConfiguration eventsFilePaths.map(eventsFilePath => { val p = new Path(eventsFilePath) val fs = p.getFileSystem(conf) val eventData: FSDataInputStream = fs.open(p) IOUtils.toString(eventData) }) } ) 这些文件路径由以下代码生成: private[disneystreaming] def generateInputBucketPaths( s3Protocol: String, bucketName: String, service: String, region: String, yearsMonths: Map[String, Set[String]] ): Try[Set[String]] = Try( { val days = 1 to 31 val hours = 0 to 23 val dateFormatter: Int => String = buildDateFormat("00") yearsMonths.flatMap { yearMonth: (String, Set[String]) => for { month: String <- yearMonth._2 day: Int <- days hour: Int <- hours } yield s"$s3Protocol$bucketName/$service/$region/${dateFormatter(yearMonth._1.toInt)}/${dateFormatter(month.toInt)}/" + s"${dateFormatter(day)}/${dateFormatter(hour)}/*.gz" }.toSet } ) hadoop.fs代码失败,因为Path类不可序列化。我想不出怎么能解决这个问题。 所以这导致我使用AmazonS3Client的另一种方法,我只是要求客户端给我文件夹(或前缀)中的所有文件路径,然后将文件解析为字符串,由于它们被压缩可能会失败: private def getEventDataS3(bucketName: String, prefix: String)( implicit sqlContext: SQLContext ): Try[RDD[String]] = Try( { import com.amazonaws.services.s3._, model._ import scala.collection.JavaConverters._ val request = new ListObjectsRequest() request.setBucketName(bucketName) request.setPrefix(prefix) request.setMaxKeys(Integer.MAX_VALUE) val s3 = new AmazonS3Client(new ProfileCredentialsProvider("default")) val objs: ObjectListing = s3.listObjects(request) // Note that this method returns truncated data if longer than the "pageLength" above. You might need to deal with that. sqlContext.sparkContext .parallelize(objs.getObjectSummaries.asScala.map(_.getKey).toList) .flatMap { key => Source .fromInputStream(s3.getObject(bucketName, key).getObjectContent: InputStream) .getLines() } } ) 此代码产生null异常,因为配置文件不能为null(“java.lang.IllegalArgumentException:配置文件不能为null”)。请记住,此代码在AWS中的EMR上运行,因此如何提供所需的凭据?其他人如何使用此客户端在EMR上运行spark作业?

云攻略小攻

千万QPS的缓存!Redis 5.0最新的Stream数据结构,你还在等什么?

讲到Redis大家都很熟悉,Redis是意大利西西里岛帅哥Salvatore Sanfilippo的开源作品~,2009年诞生,走到2019年已经十周年了~Redis最大的特点就是快,访问延时在1ms内,同时单实例性能就能达到10w+ QPS,中国互联网典型的场景就是用户多、高并发,所以各大互联网公司都对Redis有深度的使用。作者最新推出的Redis 5.0增加了Stream的数据结构, 它是一个新的强大的支持多播的可持久化的消息队列。本次阿里云将推出全新版本的Redis 5.0,在提供社区功能的基础上提供了更多的企业级的特性~ (1)审计日志:提供操作日志、敏感日志、慢日志的审计能力~对于重要的数据变更能做到可以追溯(2)大key分析能力: Redis使用过程中经常因为业务使用不当引起大key的问题,为此阿里云Redis在服务端提供了大Key的分析能力,当前分析能力覆盖了Redis 4.0、5.0的版本~,可以为客户分析后端数据的内存使用情况。同时在本次发布会我们还将对阿里云Redis的性能增强版本和混合云解决方案进行介绍~对于性能增强版本我们通过多线程突破了开源Redis单线程的瓶颈,整体的QPS能力能达到社区的300%,对于混合云的解决方案客户可以通过redis-shake搭建同步通道,通过redis-full-check搭建数据比对通道,客户可以在业务上灵活配置访问流量,保证企业客户的上云流程~云数据库Redis 5.0重磅发布会,直播入口 支持全新Stream 数据类型,给您不一样的缓存体验,快速查看! 你优秀,你来说:1、您在什么样的业务场景下会使用Redis?一般是单独使用还是组合其他数据库共同使用?2、您对于Redis Stream的应用场景有什么希望了解的,对于消息队列的选型有什么历史经验?3、您希望阿里云Redis提供哪些功能帮助您解决日常使用问题?

k8s小能手

k8s的日志服务开启有什么好处,性能有什影响吗?不开启日志服务时,将无法使用集群审计功能 这个审计功能能帮助我做些什么?

k8s的日志服务开启有什么好处,性能有什影响吗?不开启日志服务时,将无法使用集群审计功能 这个审计功能能帮助我做些什么?

李博bluemind

MongoDB跑容器上性能怎么样,有了解的吗?

MongoDB跑容器上性能怎么样,有了解的吗 本问题均来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博bluemind

咨询下MongoDB在centos7.2与centos7.4版本下性能有明显差距吗?

咨询下MongoDB在centos7.2与centos7.4版本下性能有明显差距吗? 本问题来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博bluemind

MongoDB多集合分页查询

MongoDB中存放了两个Collection,两个Collection结构完全一样。现在需要做分页查询,而MongoDB不支持类似Join的功能,无法做到数据合并排序。 考虑使用PHP做这个功能,但又担心性能和速度的问题。 问问还有其他的方法吗,谢谢。 本问题及下方已被采纳的回答均来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博bluemind

redis连接池问题

比如就一个服务A,部署在服务器1上。 redis部署在服务器2上。 为什么还会需要redis连接池这个东西?我在服务A上维护一个全局变量的redis连接实例,前端请求过来我都是用这个连接实例去执行redis指令,不也可以吗? redis连接池,无非就是高并发的时候可以支持多个redis连接实例去连接redis,但是redis本身就是单线程的,我多个连接同时去连redis(不还是得排队么),然后执行指令,和我单个全局连接直接去一个个执行redis指令,感觉应该差不多性能吧? 而且如果是全局单个redis连接的话,每次请求过来我还省了连接这个操作,不是又省了点时间么?

李博bluemind

MongoDB跑容器上性能怎么样,有了解的吗?

MongoDB跑容器上性能怎么样,有了解的吗? 本问题及下方已被采纳的回答均来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博bluemind

关于 redis连接数 和 redis性能 的关系

一直对redis连接数和redis性能的关系一知半解,我知道redis是单进程单线程,但是具体就不清楚了.期间查了一些资料也没有找到想要的答案,希望能给一下详细的解释,或者给个链接也好

李博bluemind

如何限制MongoDB的最大占用内存?

想从部署mongodb的机器中预留出一部分内存,在允许mongodb性能的下降的情况下,用什么方式去限制mongodb的内存占用呢?

李博bluemind

Stream函数式操作流元素是否比for性能高?

Stream函数式操作流元素是否比for性能高?

云攻略小攻

数据江湖唯快不破 云数据库迈入百万IOPS时代,快到飞起是怎样的体验?

IOPS看起来十分高大上,其实也不难理解,意思是IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,以衡量存储每秒可接受多少次主机发出的访问,也是衡量硬盘性能的主要指标之一。 100万随机IOPS这个数字有多快? 用过SSD硬盘的朋友都知道,基于SSD的电脑比基于普通磁介质硬盘(HDD)的电脑在速度上不可同日而语。而阿里云超大规模、超高性能ESSD云盘,可提供单盘高达100万的随机读写能力(IOPS),相比SSD云盘提升了50倍。ESSD基于新一代分布式块存储架构,拥有媲美本地SSD盘的性能,同时兼具云盘的99.9999999%可靠性设计。结合25GE网络和RDMA技术,提供低至200us的延迟性能,可实时响应各类企业操作处理。 全新云数据库RDS基于高达100万IOPS的高性能ESSD云盘,可显著提升企业数据库性能。对于关系型数据库来说,由于需要处理实时业务,因此几乎所有变化的数据都必须完成落盘写入,以实现ACID的各项要求。基于分布式存储模型数据读写延迟往往会影响数据库系统的整体性能及稳定性表现,因此更高的IOPS对于数据库整体性能提升有着至关重要的意义。全新高性能ESSD云盘,可为用户提供从1800到100万不等的IOPS,适应不同类型企业应用的性能要求。 云数据库RDS+ESSD云盘,释放百万IOPS能力,风驰电掣的读写效率能为用户和应用带来哪些价值?百万IOPS的云数据库是怎样的体验?如何成为第一批公测的幸运儿?来看发布会你就知道啦!欢迎大家点击直播间,报名观看了解更多新特性的功能细节,听取更多应用案例4月3日15:00 RDS - 高性能ESSD云盘发布会传送门: https://yq.aliyun.com/live/928了解更多请点击:https://promotion.aliyun.com/ntms/act/rds/essd.html 参与话题讨论 1.您之前对ESSD云盘有了解吗?2.您是否使用过ESSD云盘?用于哪些场景?3.对于拥有全新百万级IOPS存储能力的RDS,您有怎样的期待?是否有兴趣参与公测?可能会用在什么场景中呢?

k8s小能手

资源不够 没有物理机 用虚拟机跑k8s性能怎么样?

资源不够 没有物理机 用虚拟机跑k8s性能怎么样?

李博bluemind

hdfs对于百兆内的视频读写性能如何呢?

hdfs对于百兆内的视频读写性能如何呢?

游客7xlrjtg4arnau

轻量级应用服务器

现在是100%CPU性能了?选哪一个比较好呢

云驿站

学生购买阿里云服务器可以有组团的形式吗?价格是不是更优惠?

阿里云是不是经常有组团购买服务器的活动?以前见到过,现在不知道链接在哪里。 学生组团活动是不是可以免费送域名啊? 学生购买的服务器是不是不限制CPU性能啊? 组团活动地址在哪里啊?

python小能手

在机器学习中,如果不是哪个数据集,AUC是否比精度更好?

auc在处理不平衡数据方面更好。正如在大多数情况下,如果我处理的是数据不准确的数据准确性并不能给出正确的想法。即使精度很高,模型的性能也很差。如果它不是auc,它是处理不平衡数据的最佳方法。

章为忠

3-5年的程序员的发展和出路在哪??

最近有一个工作3年多的朋友问我,他很迷茫,是继续做技术,还是转产品,或是转管理,总之就是不知道出路在哪? 3—5年的程序员们,面临一个尴尬的问题,如果没有能力,入行一两年的新程序员朋友是可以替代你大部分工作的,而且薪资还低。如果有能力,又必须要思考今后的职业方向。所以,这既是程序员们的黄金时期同时又是最迷茫的时期 是继续做技术人,还是向管理者发力?是继续留在大公司,还是转投潜力小公司? 我个人认为,最主要还是正确认识自己,坚持学习,更新知识。 如果你想做技术,那就巩固,扎实自己已知的东西,不断学习新的东西。学习架构,了解性能等等。这样才能在一些方面达到资深的程度。 如果想做产品,那就学习产品相关的知识技术,锻炼自己的思维逻辑,试着理解产品和用户。 如果你想做管理,那就锻炼自己的沟通能力,管理能力。 只有具备了某些能力,机会和选择来临的时候,才能清楚的知道该怎么选择。 那么我想问问大家,3—5年程序员的发展和出路在哪里?

k8s小能手

监控持久性卷的性能

我在Kubernetes中运行kafka集群,这严重依赖于正确的磁盘性能(IOPS,吞吐量等)。我正在使用Google的计算引擎磁盘+ Google kubernetes引擎。因此我知道我创建的磁盘具有以下约束限制: IOPS(读/写):375/750吞吐量,以MB / s为单位(读/写):60/60 问题 即使我知道大约IOPS和吞吐量限制,我也不知道我目前使用的是什么。我想用prometheus + grafana监视它,但我找不到任何可以导出持久卷的磁盘io统计数据的东西。我发现的最好的是来自kubelet的磁盘空间统计信息: kubelet_volume_stats_capacity_byteskubelet_volume_stats_available_bytes这个问题 我有什么可能的监控(最好是通过prometheus)我在Kubernetes附带的kafka持久卷的磁盘使用情况? 编辑: 我做的另一个发现是使用node-exporter的node_disk_io指标: rate(node_disk_io_time_seconds_total[5m]) * 100不幸的是,结果不包含节点名称,甚至不包含持久卷(声明)名称。相反,它有device(例如'sdb')和instance(例如'10 .90.206.10')标签,它们是唯一允许我监视特定持久音量的标签。这些标签的缺点是它们是动态的,可以随着pod重启或类似而改变。