如何利用pykafka远程消费 zookeeper+kafka集群 python脚本

如何利用pykafka远程消费 zookeeper+kafka集群 python脚本,第1张

#从kafka消费
#consumer_area = topic_areaget_simple_consumer(auto_offset_reset=OffsetTypeLATEST)
#从ZOOKEEPER消费
consumer_area = topic_areaget_balanced_consumer(
consumer_group=b'zs_download_04', # 自己命令
auto_offset_reset=OffsetTypeLATEST,#在consumer_group存在的情况下,设置此变量,表示从最新的开始取
#auto_offset_reset=OffsetTypeEARLIEST,
#reset_offset_on_start=True,
auto_commit_enable=True,
#auto_commit_interval_ms=1,
zookeeper_connect=ZK_LIST
)

基于Python本身的优点:简单,易学,速度快,免费、开源,高层语言,可移植性,解释性,可扩展性,可嵌入性,丰富的库,独特的语法。Python已经成为现在编程的必备语言。作为“胶水语言”它能够把其他语言制作的各种模块轻松联结在一起。
比起C和Java,Python的魅力更为突显,因为完成同一项任务,C语言需要1000行代码,Java只需要100行代码,而Python可能只需要20行就轻松搞定。
:《Python入门教程》
Python在系统运维上的优势在于其强大的开发多能力和完整的工业链,它的开发能力远强于各种Shell和Perl,的确通过Shell脚本来实现自动化运维!借助自动化运维来实现大规模集群维护的想法是对的,但由于Shell本身的可编程能力较弱,对很多日常维护中需要的特性支持不够,也没有现成的库可以借鉴,各种功能都需要从头写起,所以说Shell脚本力量不够。
而现Python是更好的选择,Python除了易读易写更兼具面向对象和函数式风格,已经成为IT运维、科学计算、数据处理等领域的主要编译语言。通过系统化的将各种管理工具结合,对各类工具进行二次开发,形成统一的服务器管理系统。
和Python类似的Ruby也很适合编写系统管理软件,但是在相关库和工具上比Python差远了。
让系统易运维管理是一个工程,Python在服务器管理工具上非常丰富:配置管理(Saltstack)、批量执行( Fabric, saltstack)、监控(Zenoss, nagios 插件)、虚拟化管理( Python-libvirt)、进程管理 (Supervisor)、云计算(Openstack)等,大部分系统C库都有Python绑定。
作为一门编程语言,Python几乎可以用在任何领域和场合,自身带有无限可能,担任任何角色。
从国内的豆瓣、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、热酷、土豆、新浪、到国外的谷歌、NASA、YouTube、Facebook等互联网巨头公司都用Python完成各项任务。
随着云计算技术的发展与成熟,低端运维人员的市场越来越小,甚至是没有市场,因为中小型公司不需要运维,而大公司的门槛高,低端运维没有核心竞争力,会工程开发能力的运维才是大企业喜闻乐见的。
掌握Linux技能是一个运维人员的基本,要胜任大公司以企业及的运维工作光会Linux还远远不够。Linux+Python是运维的最佳搭配。

分布式和集群其实就好像权限或者表的水平切割和垂直切割,集群是一种水平切割来分担压力的形式,分布式就好像一个垂直切割来分担压力一样。分布式必定包含集群。
一、为什么要集群?
1JavaEE项目,如果部署在一台Tomcat上,所有的请求,都由这一台服务器处理,存在很大风险:
A:并发处理能力有限
(一般单台服务器处理的并发量为250左右,超过250,可能会出现数据丢失,链接不稳定的情况)。因为单服务器的性能有限制。所以单台Tomcat的最大连接数有限制,
B:容错率低,一旦服务器故障,整个服务就无法访问了。
eBay于 1999年6月停机22小时的事故,中断了约230万的拍卖,使eBay的股票下降了92个百分点。
C:单台服务器计算能力低,无法完成复杂的海量数据计算。
提高CPU主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当CPU的个数超过某一阈值,这些多处理机系统的可扩展性就变的极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的。
使用集群架构完成工作主要有以下几点决定:
1、高性能计算
一些国家重要的计算密集型应用(如天气预报,核试验模拟等),需要计算机有很强的运算处理能力⌄以全世界现有的技术,即使是大型机器,其计算能力也是有限的,很难单独完成此任务。因为计算时间可能会相当长,也许几天,甚至几年或更久。因此,对于这类复杂的计算业务,便使用了计算机集群技术,集中几十上百台,甚至成千上万台计算机进行计算。
2、价格有效性
早期的淘宝,支付宝的数据库等核心系统就是使用上百万元的小型机服务器。后因使用维护成本太高以及扩展设备费用成几何级数翻倍,甚至成为扩展瓶颈,人员维护也十分困难,最终使用PC服务器集群替换之,比如,把数据库系统从小机结合Oracle数据库迁移到MySQL开源数据库结合PC服务器上来。不但成本下降了,扩展和维护也更容易了。
3、可伸缩性
当服务负载,压力增长时,针对集群系统进行较简单的扩展即可满足需求,且不会降低服务质量。
通常情况下,硬件设备若想扩展性能,不得不增加新的CPU和存储器设备,如果加不上去了,就不得不购买更高性能的服务器,就拿我们现在的服务器来讲,可以增加的设备总是有限的。如果采用集群技术,则只需要将新的单个服务器加入现有集群架构中即可,从访问的客户角度来看,系统服务无论是连续性还是性能上都几乎没有变化,系统在不知不觉中完成了升级,加大了访问能力,轻松地实现了扩展。集群系统中的节点数目可以增长到几千乃至上万个,其伸缩性远超过单台超级计算机。
4、高可用性
单一的计算机系统总会面临设备损毁的问题,如CPU,内存,主板,电源,硬盘等,只要一个部件坏掉,这个计算机系统就可能会宕机,无法正常提供服务。在集群系统中,尽管部分硬件和软件还是会发生故障,但整个系统的服务可以是724小时可用的。
集群架构技术可以使得系统在若干硬件设备故障发生时仍可以继续工作,这样就将系统的停机时间减少到了最小。集群系统在提高系统可靠性的同时,也大大减小了系统故障带来的业务损失,目前几乎100%的互联网网站都要求724小时提供服务。
5、透明性
多个独立计算机组成的松耦合集群系统构成一个虚拟服务器。用户或客户端程序访问集群系统时,就像访问一台高性能,高可用的服务器一样,集群中一部分服务器的上线,下线不会中断整个系统服务,这对用户也是透明的。
6、可管理性
整个系统可能在物理上很大,但其实容易管理,就像管理一个单一映像系统一样。在理想状况下,软硬件模块的插入能做到即插即用。
7、可编程性
在集群系统上,容易开发及修改各类应用程序。
蓝海大脑水冷工作站超融合架构承担着计算资源池和分布式存储资源池的作用,极大地简化了数据中心的基础架构,通过软件定义的计算资源虚拟化和分布式存储架构实现无单点故障、无单点瓶颈、d性扩展、性能线性增长等能力。通过简单方便的统一管理界面,实现对数据中心计算、存储、网络、虚拟化等资源的统一监控、管理和运维。
型号 蓝海大脑水冷服务器
英特尔
处理器 Intel Xeon Gold 6240R 24C/48T,24GHz,3575MB,DDR4 2933,Turbo,HT,165W1TB
Intel Xeon Gold 6258R 28C/56T,27GHz,3855MB,DDR4 2933,Turbo,HT,205W1TB
Intel Xeon W-3265 24C/48T 27GHz 33MB 205W DDR4 2933 1TB
Intel Xeon Platinum 8280 28C/56T 27GHz 385MB,DDR4 2933,Turbo,HT 205W 1TB
Intel Xeon Platinum 9242 48C/96T 38GHz 715MB L2,DDR4 3200,HT 350W 1TB
Intel Xeon Platinum 9282 56C/112T 38GHz 715MB L2,DDR4 3200,HT 400W 1TB
AMD
处理器 AMD锐龙Threadripper Pro 3945WX 40GHz/12核/64M/3200/280W
AMD锐龙Threadripper Pro 3955WX 39GHz/16核/64M/3200/280W
AMD锐龙Threadripper Pro 3975WX 35GHz/32核/128M/3200/280W
AMD锐龙Threadripper Pro 3995WX 27GHz/64核/256M/3200/280W
AMD锐龙Threadripper Pro 5945WX 41G 12核/64M/3200/280W
AMD锐龙Threadripper Pro 5955WX 40G 16核/64M/3200/280W
AMD锐龙Threadripper Pro 5965WX 38G 24核/128M/3200/280W
AMD锐龙Threadripper Pro 5975WX 36G 32核/128M/3200/280W
AMD锐龙Threadripper Pro 5995WX 27G 64核/256M/3200/280W
显卡 NVIDIA A100×4, NVIDIA GV100×4
NVIDIA RTX 3090×4, NVIDIA RTX 3090TI×4,
NVIDIA RTX 8000×4, NVIDIA RTX A6000×4,
NVIDIA Quadro P2000×4,NVIDIA Quadro P2200×4
硬盘 NVMe2 SSD: 512GB,1TB; M2 PCIe - Solid State Drive (SSD),
SATA SSD: 1024TB, 2048TB, 5120TB
SAS:10000rpm&15000rpm,600GB,12TGB,18TB
HDD : 1TB,2TB,4TB,6TB,10TB
外形规格 立式机箱
210尺寸mm(高深宽) : 726 x 616 x 266
210A尺寸mm(高深宽) : 666 x 626 x 290
210B尺寸mm(高深宽) : 697 x 692 x 306
声卡:71通道田声卡
机柜安装 : 前置机柜面板或倒轨(可选)
电源 功率 : 1300W×2; 2000W×1
软件环境 可预装 CUDA、Driver、Cudnn、NCCL、TensorRT、Python、Opencv 等底层加速库、选装 Tensorflow、Caffe、Pytorch、MXnet 等深度学习框架。
前置接口 USB32 GEN2 Type-C×4
指承灯电和硬盘LED
灵动扩展区 : 29合1读卡器,eSATA,1394,PCIe接口(可选)
读卡器 : 9合1SD读卡器(可选)
模拟音频 : 立体声、麦克风
后置接口 PS2接口 : 可选
串行接口 : 可选
USB32 GEN2 Type-C×2
网络接口 : 双万兆 (RJ45)
IEEE 1394 : 扩展卡口
模拟音频 : 集成声卡 3口
连接线 专用屏蔽电缆(信号电缆和电源电缆)
资料袋 使用手册、光盘1张、机械键盘、鼠标、装箱单、产品合格证等

随着互联网的不断发展,我们对python编程开发技术的学习和掌握程度也在不断的提高。下面我们就通过案例分析来了解和学习一下,关于程序扩展都有哪些 *** 作方法。



必要的概念

传统编程依赖于两个核心概念:函数和类。使用这些构建块就可以构建出无数的应用程序。

但是,当我们将应用程序迁移到分布式环境时,这些概念通常会发生变化。

一方面,OpenMPI、Python多进程和ZeroMQ等工具提供了用于发送和接收消息的低级原语。这些工具非常强大,但它们提供了不同的抽象,因此要使用它们就必须从头开始重写单线程应用程序。

另一方面,我们也有一些特定领域的工具,例如用于模型训练的TensorFlow、用于数据处理且支持SQL的Spark,以及用于流式处理的Flink。这些工具提供了更高级别的抽象,如神经网络、数据集和流。但是,因为它们与用于串行编程的抽象不同,所以要使用它们也必须从头开始重写应用程序。

用于分布式计算的工具

Ray占据了一个独特的中间地带。它并没有引入新的概念,而是采用了函数和类的概念,并将它们转换为分布式的任务和actor。Ray可以在不做出重大修改的情况下对串行应用程序进行并行化。

开始使用Ray

rayinit()命令将启动所有相关的Ray进程。在切换到集群时,这是需要更改的行(我们需要传入集群地址)。java课程培训机构发现这些过程包括:

有很多worker进程并行执行Python函数(大概是每个CPU核心对应一个worker)。

用于将“任务”分配给worker(以及其他计算机)的调度程序进程。任务是Ray调度的工作单元,对应于一个函数调用或方法调用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10744129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存