Enhance Amazon EMR scaling capabilities with Application Master Placement

Post Syndicated from Lorenzo Ripani original https://aws.amazon.com/blogs/big-data/enhance-amazon-emr-scaling-capabilities-with-application-master-placement/

In today’s data-driven world, processing large datasets efficiently is crucial for businesses to gain insights and maintain a competitive edge. Amazon EMR is a managed big data service designed to handle these large-scale data processing needs across the cloud. It allows running applications built using open source frameworks on Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Kubernetes Service (Amazon EKS), or AWS Outposts, or completely serverless. One of the key features of Amazon EMR on EC2 is managed scaling, which dynamically adjusts computing capacity in response to application demands, providing optimal performance and cost-efficiency.

Although managed scaling aims to optimize EMR clusters for best price-performance and elasticity, some use cases require more granular resource allocation. For example, when multiple applications are submitted to the same clusters, resource contention may occur, potentially impacting both performance and cost-efficiency. Additionally, allocating the Application Master (AM) container to non-reliable nodes like Spot can potentially result in loss of the container and immediate shutdown of the entire YARN application, resulting in wasted resources and additional costs for rescheduling the entire YARN application. These uses cases require more granular resource allocation and sophisticated scheduling policies to optimize resource utilization and maintain high performance.

Starting with the Amazon EMR 7.2 release, Amazon EMR on EC2 introduced a new feature called Application Master (AM) label awareness, which allows users to enable YARN node labels to allocate the AM containers within On-Demand nodes only. Because the AM container is responsible for orchestrating the overall job execution, it’s crucial to verify that it gets allocated to a reliable instance and not be subjected to shutdown due to Spot Instance interruption. Additionally, limiting AM containers to On-Demand helps maintain consistent application launch time, because the fulfillment of the On-Demand Instance isn’t prone to unavailable Spot capacity or bid price.

In this post, we explore the key features and use cases where this new functionality can provide significant benefits, enabling cluster administrators to achieve optimal resource utilization, improved application reliability, and cost-efficiency in your EMR on EC2 clusters.

Solution overview

The Application Master label awareness feature in Amazon EMR works in conjunction with YARN node labels, a functionality offered by Hadoop that empowers you to define labels to nodes within a Hadoop cluster. You can use these labels to determine which nodes of the cluster should host specific YARN containers (such as mappers vs. reducers in a MapReduce, or drivers vs. executors in Apache Spark).

This feature is enabled by default when a cluster is launched with Amazon EMR 7.2.0 and later using Amazon EMR managed scaling, and it has been configured to use YARN node labels. The following code is a basic configuration setup that enables this feature:

[
   {
     "Classification": "yarn-site",
     "Properties": {
      "yarn.node-labels.enabled": "true",
       "yarn.node-labels.am.default-node-label-expression": "ON_DEMAND"
     }
   }
]

Within this configuration snippet, we activate the Hadoop node label feature and define a value for the yarn.node-labels.am.default-node-label-expression property. This property defines the YARN node label that will be used to schedule the AM container of each YARN application submitted to the cluster. This specific container plays a key role in maintaining the lifecycle of the workflow, so verifying its placement on reliable nodes in production workloads is crucial, because the unexpected shutdown of this container can result in the shutdown and failure of the entire application.

Currently, the Application Master label awareness feature only supports two predefined node labels that can be specified to allocate the AM container of a YARN job: ON_DEMAND and CORE. When one of these labels is defined using Amazon EMR configurations (see the preceding example code), Amazon EMR automatically creates the corresponding node labels in YARN and labels the instances in the cluster accordingly.

To demonstrate how this feature works, we launch a sample cluster and run some Spark jobs to see how Amazon EMR managed scaling integrates with YARN node labels.

Launch an EMR cluster with Application Manager placement awareness

To perform some tests, you can launch the following AWS CloudFormation stack, which provisions an EMR cluster with managed scaling and the Application Manager placement awareness feature enabled. If this is your first time launching an EMR cluster, make sure to create the Amazon EMR default roles using the following AWS Command Line Interface (AWS CLI) command:

aws emr create-default-roles

To create the cluster, choose Launch Stack:

Launch Cloudformation Stack

Provide the following required parameters:

  • VPC – An existing virtual private cloud (VPC) in your account where the cluster will be provisioned
  • Subnet – The subnet in your VPC where you want to launch the cluster
  • SSH Key Name – An EC2 key pair that you use to connect to the EMR primary node

After the EMR cluster has been provisioned, establish a tunnel to the Hadoop Resource Manager web UI to review the cluster configurations. To access the Resource Manager web UI, complete the following steps:

  1. Set up an SSH tunnel to the primary node using dynamic port forwarding.
  2. Point your browser to the URL http://<primary-node-public-dns>:8088/, using the public DNS name of your cluster’s primary node.

This will open the Hadoop Resource Manager web UI, where you can see how the cluster has been configured.

YARN node labels

In the CloudFormation stack, you launched a cluster specifying to allocate the AM containers on nodes labeled as ON_DEMAND. If you explore the Resource Manager web UI, you can see that Amazon EMR created two labels in the cluster: ON_DEMAND and SPOT. To review the YARN node labels present in your cluster, you can inspect the Node Labels page, as shown in the following screenshot.

On this page, you can see how the YARN labels were created in Amazon EMR:

  • During initial cluster creation, default node labels such as ON_DEMAND and SPOT are automatically generated as non-exclusive partitions
  • The DEFAULT_PARTITION label stays vacant because every node gets labeled based on its market type—either being an On-Demand or Spot Instance

In our example, because we launched a single core node as On-Demand, you can observe a single node assigned to the ON_DEMAND partition, and the SPOT partition remains empty. Because the labels are created as non-exclusive, nodes with these labels can run both containers launched with a specific YARN label and also containers that don’t specify a YARN label. For additional details on YARN node labels, see YARN Node Labels in the Hadoop documentation.

Now that we have discussed how the cluster was configured, we can perform some tests to validate and review the behavior of this feature when using it in combination with managed scaling.

Concurrent application submission with Spot Instances

To test the managed scaling capabilities, we submit a simple SparkPi job configured to utilize all available memory on the single core node initially launched in our cluster:

spark-example \
  --deploy-mode cluster \
  --driver-memory 10g \
  --executor-memory 10g \
  --conf spark.dynamicAllocation.maxExecutors=1 \
  --conf spark.yarn.executor.nodeLabelExpression=SPOT \
  SparkPi 800000

In the preceding snippet, we tuned specific Spark configurations to utilize all the resources of the cluster nodes launched (you could also achieve this using the maximizeResourceAllocation configuration while launching an EMR cluster). Because the cluster has been launched using m5.xlarge instances, we can launch individual containers up to 12 GB in terms of memory requirements. With these assumptions, the snippet configures the following:

  • The Spark driver and executors were configured with 10 GB of memory to utilize most of the available memory on the node, in order to have a single container running on each node of our cluster and simplify this example.
  • The node-labels.am.default-node-label-expression parameter was set to ON_DEMAND, making sure the Spark driver is automatically allocated to the ON_DEMAND partition of our cluster. Because we specified this configuration while launching the cluster, the AM containers are automatically requested to be scheduled on ON_DEMAND labeled instances, so we don’t need to specify it at the job level.
  • The yarn.executor.nodeLabelExpression=SPOT configuration verifies that the executors operated exclusively on TASK nodes using Spot Instances. Removing this configuration allows the Spark executors to be scheduled both on SPOT and ON_DEMAND labeled nodes.
  • The dynamicAllocation.maxExecutors setting was set to 1 to delay the processing time of the application and observe the scaling behavior when multiple YARN applications were submitted concurrently in the same cluster.

As the application transitioned to a RUNNING state, we can verify from the YARN Resource Manager UI that its driver placement was automatically assigned to the ON_DEMAND partition of our cluster (see the following screenshot).

Additionally, upon inspecting the YARN scheduler page, we can see that our SPOT partition doesn’t have a resource associated with it because the cluster was launched with just one On-Demand Instance.

Because the cluster didn’t have Spot Instances initially, you can observe from the Amazon EMR console that managed scaling generates a new Spot task group to accommodate the Spark executor requested to run on Spot nodes only (see the following screenshot) . Before this integration, managed scaling didn’t take into account the YARN labels requested by an application, potentially leading to unpredictable scaling behaviors. With this release, managed scaling now considers the YARN labels specified by applications, enabling more predictable and accurate scaling decisions.

While waiting for the launch of the new Spot node, we submitted another SparkPi job with identical specifications. However, because the memory required to allocate the new Spark Driver was 10 GB and such resources were currently unavailable in the ON_DEMAND partition, the application remained in a pending state until resources became available to schedule its container.

Upon detecting the lack of resources to allocate the new Spark driver, Amazon EMR managed scaling commenced scaling the core instance group (On-Demand Instances in our cluster) by launching a new core node. After the new core node was launched, YARN promptly allocated the pending container on the new node, enabling the application to start its processing. Subsequently, the application requested additional Spot nodes to allocate its own executors (see the following screenshot).

This example demonstrates how managed scaling and YARN labels work together to improve the resiliency of YARN applications, while using cost-effective job executions over Spot Instances.

When to use Application Manager placement awareness and managed scaling

You can use this placement awareness feature to improve cost-efficiency by using Spot Instances while protecting the Application Manager from being incorrectly shut down due to Spot interruptions. It’s particularly useful when you want to take advantage of the cost savings offered by Spot Instances while preserving the stability and reliability of your jobs running on the cluster. When working with managed scaling and the placement awareness feature, consider the following best practices:

  • Maximum cost-efficiency for non-critical jobs – If you have jobs that don’t have strict service level agreement (SLA) requirements, you can force all Spark executors to run on Spot Instances for maximum cost savings. This can be achieved by setting the following Spark configuration:
    spark.yarn.executor.nodeLabelExpression=SPOT

  • Resilient execution for production jobs – For production jobs where you require a more resilient execution, you might consider not setting the yarn.executor.nodeLabelExpression parameter. When no label is specified, executors are dynamically allocated between both On-Demand and Spot nodes, providing a more reliable execution.
  • Limit dynamic allocation for concurrent applications – When working with managed scaling and clusters with multiple applications running concurrently (for example, an interactive cluster with concurrent user utilization), you should consider setting a maximum limit for Spark dynamic allocation using the dynamicAllocation.maxExecutors setting. This can help manage resources over-provisioning and facilitate predictable scaling behavior across applications running on the same cluster. For more details, see Dynamic Allocation in the Spark documentation.
  • Managed scaling configurations – Make sure your managed scaling configurations are set up correctly to facilitate efficient scaling of Spot Instances based on your workload requirements. For example, set an appropriate value for Maximum On-Demand instances in managed scaling based on the number of concurrent applications you want to run on the cluster. Additionally, if you’re planning to use your On-Demand Instances for running solely AM containers, we recommend setting scheduler.capacity.maximum-am-resource-percent to 1 using the Amazon EMR capacity-scheduler classification.
  • Improve startup time of the nodes – If your cluster is subject to frequent scaling events (for example, you have a long-running cluster that can run multiple concurrent EMR steps), you might want to optimize the startup time of your cluster nodes. When trying to get an efficient node startup, consider only installing the minimum required set of application frameworks in the cluster and, whenever possible, avoid installing non-YARN frameworks such as HBase or Trino, which might delay the startup of processing nodes dynamically attached by Amazon EMR managed scaling. Finally, whenever possible, don’t use complex and time-consuming EMR bootstrap actions to avoid increasing the startup time of nodes launched with managed scaling.

By following these best practices, you can take advantage of the cost savings of Spot Instances while maintaining the stability and reliability of your applications, particularly in scenarios where multiple applications are running concurrently on the same cluster.

Conclusion

In this post, we explored the benefits of the new integration between Amazon EMR managed scaling and YARN node labels, reviewed its implementation and usage, and defined a few best practices that can help you get started. Whether you’re running batch processing jobs, stream processing applications, or other YARN workloads on Amazon EMR, this feature can help you achieve substantial cost savings without compromising on performance or reliability.

As you embark on your journey to use Spot Instances in your EMR clusters, remember to follow the best practices outlined in this post, such as setting appropriate configurations for dynamic allocation, node label expressions, and managed scaling policies. By doing so, you can make sure that your applications run efficiently, reliably, and at the lowest possible cost.


About the authors

Lorenzo Ripani is a Big Data Solution Architect at AWS. He is passionate about distributed systems, open source technologies and security. He spends most of his time working with customers around the world to design, evaluate and optimize scalable and secure data pipelines with Amazon EMR.

Miranda Diaz is a Software Development Engineer for EMR at AWS. Miranda works to design and develop technologies that make it easy for customers across the world to automatically scale their computing resources to their needs, helping them achieve the best performance at the optimal cost.

Sajjan Bhattarai is a Senior Cloud Support Engineer at AWS, and specializes in BigData and Machine Learning workloads. He enjoys helping customers around the world to troubleshoot and optimize their data platforms.

Bezuayehu Wate is an Associate Big Data Specialist Solutions Architect at AWS. She works with customers to provide strategic and architectural guidance on designing, building, and modernizing their cloud-based analytics solutions using AWS.

[$] Debian’s “secret” sauce

Post Syndicated from jake original https://lwn.net/Articles/990177/

While Debian’s “sauce” is not actually all that secret, it is not particularly
well-known either, Samuel Henrique said at the start of his DebConf24 talk. There is a lot
of software-engineering effort that has been put in place by the
distribution in order to create and maintain its releases, but “loads of
people are not aware
” of it. That may be due to the fact that all of
that is
not really documented anywhere in a central location that he can just point
someone to. Recognizing that is what led him to give the talk;
hopefully it will be a “first step toward” helping solve the problem.

Несломимата Украйна: Фабриките

Post Syndicated from original https://www.toest.bg/neslomimata-ukrayna-fabrikite/

Несломимата Украйна: Фабриките

Първо я видяхме откъм гърба. Голяма полуразрушена сграда със следи от куршуми и снаряди в стените. Там, където са били прозорците, сега пълзят бурени. Подът е с огромни зеещи черни дупки. Ръждясали остатъци от машини все още се търкалят навсякъде. 

Андрей Несмачний ни води внимателно между руините към циментови вити стълби в единия край на халето. Докато ходим и си гледаме в краката, той ни обяснява:

Когато руснаците окупираха Ирпин през 2022 г., стреляха с артилерия срещу тази фабрика за обработка на дърво.

Сочи дупки в стената и назовава оръдията и калибъра на снарядите, които са ги направили. 

Всичко тук беше опожарено. Едва ли ще успеем да съберем достатъчно пари, за да я ремонтираме цялата, защото трябва да съборим тази ѝ част до основи и да я построим наново. Другото крило обаче успяхме.

Изкачваме бавно стълбите и пред погледа ни се разкрива свят на широки помещения, преградени със стени. Във всяко от тях – машини и по един-двама човека, които изработват чаши и бутилки от стъкло. Малко по-нататък двама мъже правят ножове. Врати няма и шумът от машините е оглушителен. Фабриката прилича на амалгама от завод и казарма. По столове и закачалки има разхвърляни войнишки дрехи в цвят каки. В някои от помещенията освен машини са сложени тесни войнишки легла с камуфлажни покривки. По плотовете са разпилени купища куршуми и гилзи с различен калибър. Малкият кухненски бокс с печка, кафемашина, хладилник и маса за хранене също изглежда полеви и се намира точно до тоалетната – единственото помещение с врата, на която има надпис: „КАЦАПСЬКИЙ РОДДОМ“ (КАЦАП в Украйна е обиден, иронизиращ израз за руснаци. Роддом е родилен дом).

Несломимата Украйна: Фабриките
© Николета Атанасова

От едно от помещенията изскача мъж. Сигурно е около два метра висок, с голяма рижа брада, рошави вежди и камуфлажно облекло. Забързан е, но спира при нас. Василий е собственик на сградата и е преживял руската окупация и обстрелите през 2022 г. в Ирпин. Подава ми дружелюбно ръка. Докато ми разказва как фабриката му е била опожарена и обстрелвана, а той, опитвайки се да я защити, е тежко ранен от куршумите и осколките, повдига тениската си. Целият му корем е в огромни, груби белези от операции. Всъщност почти няма здраво място по кожата му, върху която бледорозовите, надигнати следи от хирургичните неравни шевове водят в посока черния дроб, стомаха и гениталиите. Прекарал е месеци в болници без гаранции, че ще оцелее, но оживява, за да се върне и възстанови фабриката си заедно с Андрей. 

Двамата кръщават фабриката Bat Art.

В нея работят ветерани, най-често инвалиди от войната на Русия в Украйна. Докато се лекуват физически, момчетата и момичетата идват тук, за да се възстановят психически от преживяното на фронта, защото имат нужда да се чувстват полезни и да вършат нещо. Споменавам шума. И двамата се смеят с глас и ми казват, че на фронта шумът е многократно по-силен и че ветераните най-много се страхуват от тишината, защото тя предвещава атака на врага. 

Във фабриката, сред грохота на няколкото машини, ветераните изработват най-специалните чаши, бутилки и ножове, които съм виждала. Във всяка чаша или нож има вграден куршум. Парите от продажбите отиват за бригадите, в които воюват.

Андрей Несмашни е доброволец в армията от първия ден на нахлуването на Русия в Украйна. По време на обстрелите на фабриката в Ирпин той воюва в Киевска област, а по-късно, в края на май 2022 г., го изпращат в Херсон. Там е ранен. През есента на 2022-ра се връща за лечение в Ирпин и започват да възстановят фабриката на Василий с идеята да я направят работно място за ветерани. 

В момента тук работят десет мъже и една жена ветерани, но не се задържат много, защото, който се възстанови, веднага се връща на фронта като доброволец. Те имат право да останат в цивилния живот, но избират отново да воюват. Аз също на всеки два-три месеца се връщам на първа линия. Не може да е другояче. Въобще не си задавам въпроса да отида ли на фронта, или не, защото знам, че ако не го направя, ако всички не го правят, ние просто няма да сме живи. Украйна няма да я има като нация и страна. Аз не харесвам войната, не искам да има война, но трябва да отида и да се сражавам. Просто трябва. Това е моята страна, моята земя, аз обичам свободата и искам страната ми да е свободна. 

Несломимата Украйна: Фабриките
Андрей Несмашни © Николета Атанасова

Искам да ви кажа, че ние допускахме, че ще бъдем нападнати още през октомври 2021 г., и започнахме да се подготвяме за война, но Украйна беше лишена от оръжия и никой на Запад сякаш не вярваше истински, че Русия ще ни нападне. Затова и нямахме оръжия. Сега, почти три години по-късно, когато Русия завзема наши територии и оръжията не ни стигат, за да я защитим, Западът отново се чуди дали да ни даде оръжия, колко да са те, къде можем да ги използваме. Ще ви кажа. Нека само един от тези чиновници да отиде в Донбас например и да види за какво става дума на фронта. Да види как са въоръжени руснаците и как – ние. Да види десетките жертви, осакатените ни момчета и момичета и да прецени тази война има ли я наистина и колко е сериозна… 

За съжаление, руското влияние и пропаганда пречат на трезвата оценка на ситуацията ни както на западните чиновници, така и на много украинци, преди да бъдем нападнати. Украинците обаче разбраха какво е руската пропаганда, когато Русия нахлу в територията ни и руснаците започнаха да избиват и изнасилват децата ни и майките ни. Всеки ден има обстрелван украински град и загиват невинни хора. Вие го виждате, защото сте тук, а къде са чиновниците от Европа и САЩ? Те ни казват от топлите си, безопасни местенца, че трябва да спазваме ограничения, за да използваме оръжията, които ни дават. Как ви се струва това? Никоя страна в Европа не е застрахована от руска агресия. 

Знаете ли, аз дори не изпитвам гняв. Дори и да видя врага си в очите, не изпитвам нищо. Знам, че просто трябва да го убия, без никаква емоция. Емоциите и мислите пречат да си свършиш работата, защото това е професионалното – да не мислиш, а да действаш. Нямам съмнения, че съм прав в това, което върша, защото аз съм си вкъщи, в Украйна, а те са дошли тук и искат да ми я отнемат. Какво има да мисля? Това е. Просто война.

Андрей е сериозен, докато говори. Внезапно на лицето му се появява усмивка. Вече знам, че следва порция специфично украинско чувство за хумор. Не греша. Очите на Андрей се смеят малко цинично, все пак е дружелюбен. Когато проговаря, смехът му е и в гласа:

Някои си мислят, че войната е само да стреляш, но всъщност ти през цялото време копаеш. Много копаеш, постоянно копаеш, е, или тичаш…

Купуваме няколко чаши и си тръгваме от фабриката на Андрей с особено чувство. Украинците винаги те оставят без дъх заради историята, която са ти разказали, и в същото време се чувстваш нелепо, дори с въпросите, които си им задал. Идваш от спокойна страна и ги питаш за войната, в която живеят всеки ден. Как ли им изглеждаме отстрани, обяснявайки, че в собствената ни страна има хора, които не разбират какво прави Русия в Украйна. Сещам се какво ми каза Катя преди ден:

Те разказват своите истории, за да разберем каква цена плащат, за да сме ние с вас сега тук.

Несломимата Украйна: Фабриките
© Николета Атанасова

Ден по-късно вече сме в друг град, далеч от Ирпин. Олга с мъжа ѝ Андрей отварят вратата на подземие. Имам клаустрофобия и интуитивно спирам. Кучето им влиза първо, защото го прави всеки ден и знае, че вътре няма нищо страшно. Следвам го внимателно, докато Олга светва лампите. 

Това е малката ни фабрика за дронове. Тук ги проектираме и конструираме. Имаме голям и няколко малки 3D принтера. След като сглобим всичко, отиваме на една поляна наблизо и ги пускаме да летят. Ако всичко е наред, произвеждаме цяла серия от съответния модел и ги изпращаме на фронта. Имаме различни, например този се казва „Хрущ“, или „Майски бръмбар“. Рамката му е изцяло наше производство. Той може да носи около три килограма полезен товар на разстояние около 35 километра. Сега сме го модифицирали за бойни условия срещу врага. Другият до него е изцяло боен дрон, реплика на китайския „Мавик“. Създадохме го тук, наше производство, по молба на военните. Нашият обаче стана по-добър, защото на него може да се постави произволна система за управление, а на китайския не е възможно. Нашият носи пет килограма и лети около 105 минути. Може да бъде бомбардировач, както и да доставя боеприпаси. Този тук е разузнавач с камери. А тези не са наше производство, подарък са ни, но военните ни ги изпратиха да ги ремонтираме. Наскоро ремонтирахме и руски, които нашите бяха пленили. Всъщност ние правим всичко в сферата на дроновете, от което военните имат нужда, включително и тези безпилотни самолети, които имат различни приложения, в зависимост с какво ще ги комплектувате. Предимството им е, че може много лесно да се сглобяват и разглобяват. Този конкретно е разузнавач.

Докато Андрей говори, не спира да ходи из голямата стая, размахва ръце като възторжен диригент и постоянно взема в ръце един или друг дрон, после ги оставя и започва да сглобява безпилотния самолет. Говори за тях с огромна усмивка, в погледа му има гордост и радост от това, което прави.

Андрей е инженер и е работил за големи компании, които произвеждат дронове, още преди началото на войната. След нахлуването на Русия в Украйна той и Олга създават своята фабрика за дронове. 

Разбрахме, че през големите фирми трудно ще бъдем полезни на нашите момчета на фронта, защото е много бавно, дори невъзможно да прокараш своя разработка в големите компании, а тук, в нашата собствена фабрика, ние правим това, от което имат нужда на фронта. Обаждат се и ни казват: трябва ни това и това, да може да прави тези и тези неща, и ние модифицираме и разработваме всичко веднага сами според конкретните нужди на фронта днес, а не отпреди няколко месеца. Това е много важно, защото войната се променя всеки ден, условията и нуждите на войниците – също. Ние сме в пряк контакт с тях и сме достатъчно гъвкави, за да правим това, което им трябва в момента. В голяма компания това не може да стане. 

Щастливи сме, че с нашите дронове спасяваме живота на нашите войници, защото много често дроновете успяват да заменят пехотинците. Например за обучението на един пилот на вертолет са нужни няколко години, самата машина струва милиони долари и накрая врагът сваля вертолета, пилотът загива или отива в плен. Това е огромна загуба. При дроновете, дори и да бъде свалено устройството, пилотът му седи на сигурно място в тила и загубата е само малко труд и пари. Какво е тази загуба, ако спаси дори един човешки живот?! Дронове се правят на килограм, но хората… Войната вече е война на дронове. Само трябва добре да се обучават пилоти, това става за около месец-два. Засега не достигат нито пилотите, нито обучаващите, но е въпрос на време. Ние правим постоянно обучения за нашите продукти. Елате да видите – това сме произвели от сутринта, само за няколко часа.

Андрей ме води в съседната стая. Там около масите седят няколко човека. Един запоява, друг прави тестове на компютър, трети сглобява частите на дрон. Съсредоточени са, дори не ни поглеждат. В различни райони на Украйна има няколко клона на фабриката на Андрей и за него работят около трийсет човека. Не искам да нарушавам спокойствието в тясната, задръстена с части стаичка и набързо разглеждам наоколо, но Андрей ме кара да клекнем до малки 3D принтери, за видя как става магията…

Тръгваме си зашеметени от подземието, в което се крие царството на бъдещето. Андрей и Олга ни махат на входа с усмивка. В таксито, което ни кара към града, разглеждам няколкото снимки, които съм направила, и си мисля за магията… Телефонът ми звъни в едно от приложенията. Мой познат ме пита развълнувано: „Търсих те няколко пъти, не дава заето, но какво ми говори украинският оператор?“ Усмихвам се и кратичко отговарям:

Моля, изчакайте! Абонатът говори за победата.

На второ четене: „Спомен за гората“

Post Syndicated from original https://www.toest.bg/na-vtoro-chetene-spomen-za-gorata/

„Спомен за гората“ от Дамир Каракаш

На второ четене: „Спомен за гората“

превод от хърватски Русанка Ляпова, София: изд. ICU, 2023

Клише е, но не е лъжа – в малките книги има една особена големина. Не равностойна на мащабност и епичност, а измерима като разрастване навътре. „Спомен за гората“ е точно такава книжка (в нежния смисъл на това умалително). Тази проза напълно се вписва в профила на своите издатели от ICU, които публикуват на български и словенеца Горан Войнович.

Дамир Каракаш е хърватин, един от водещите писатели в страната си, но засега това е първата му и единствена книга на български. Не знам дали изборът точно на този автобиографичен роман, а не на някой от по-мащабните или известните му е продиктуван от други съображения (например финансиране), но със сигурност това му произведение, почти повест, отвори апетита ми за още от прозата на автора.

Каракаш е роден в село в Лика, планинския район на страната, и – наред с други „по-сериозни“ неща – е учил и агрономия – съвсем тематично за автор, толкова обвързан със селския живот и земята, както е в тази книга. Изглежда, че и в други свои романи той проблематизира сблъсъка между селския произход и градската среда. При това за Каракаш се казва, че е от малцината автори, които пишат за своята Лика, използвайки тамошния диалект. Други негови романи пък описват живота му в Париж („Прекрасно място за нещастие“) или се занимават с представителите на загребската субкултура по време на войната в Югославия (Blue Moon).

„Спомен за гората“ е носталгичен разказ за детството и израстването на село през 60-те –

ту земен, жив и натуралистичен до графичност на езика, ту лиричен и чувствителен, ту почти комичен. Гората е символичната рамка на този живот в оазиса на опитоменото от човека пространство – тя е място за излаз на детското въображение, уютна възможност за отдалечаване от дома, но и място друго, застрашително, в което броди една от метафорите на романа – голямата и страшна мечка, разкъсваща хора. Място на търсене и изпитания и в крайна сметка – на инициация за порасналия герой.

Героят, разбира се, е алтер егото на Дамир Каракаш – момче, страдащо от слабо, болно сърце. Факт, който в тази сурова, лишена от префиненост и „лигавщини“ среда, където най-важното е да се утвърдиш като мъж, ще се окаже проблемен. Неслучайно най-голямото опасение на героя е да го преценят като недостоен да влезе в казармата, а най-голямата му мечта – да стане военен. Заради желанието да възмъжее момчето ще подложи себе си на режим, който ще застраши здравето и дори живота му. В този контекст отношението на близките се лута между смута от грубоватото му жалене („Де ще се дене клетият, такъв недъгав?“, „Що ги създава Господ такива, негодни за живот?“) и порива да омаловажат слабостта му в името на вярата, че за да се кали и да бъде като всички останали, той не бива да бъде щаден.

Книгата е организирана в глави, които са привидно несвързани, макар между тях да има някаква – най-малкото хронологична – връзка: от детството, през неусетното порастване, до юношеството. Всяка е сцена сама по себе си, като особено ми допадна предизвикателството към читателските очаквания. Защото главите не следват сюжетните необходимости и често завършват без изненади, без кулминации и драма. Просто става онова, което се случва в ежедневния живот. Да, невинаги в него има обрати, напрежение преди добрия завършек, та дори понякога да си казваме „Е, и?“. Каквото и да се случва тук, дори да е нелеко и различно от ежедневния битов ритъм, то е обгърнато в някакво усещане за естественост, за познатост, дори за покой.

Каракаш не е търсил изключителното, откроената събитийност – напротив, наративът е изграден от „баналности“ (в хубавия, познат смисъл на тази дума), от битовизми, които ни се струват толкова близки и познати в един балкански контекст. Ето например едно „събитие“ – баща му донася първата в селото тоалетна тип „клекало“ и първия допотопен душ, като, разбира се, е страшно горд от това („Да се види кой е пръв в селото“). За разлика от това, другите, големите събития на историческия контекст присъстват изключително фоново, дискретно, на практика незабележимо.

Романът на Дамир Каракаш ни връща към осъзнаването, че добрата литература може да е направена от житейските незначителности.

От важните извън нея битови всекидневности. Игрите, първите цигари и мастурбации; пасенето на добитъка и работата на полето; дочуването на прибързаното съвкупление на родителите в тясната къща; типичното безцеремонно отношение към животните на село; страхопочитанието пред първия телевизор; неизбежните псувни; коленето на прасето; ценността и на най-малките притежания по времето на соца; толкова естествената липса на гузност да се сдобиеш с тях по коварен начин; местните „лоши момчета“; лова с баща ти; дъжда или жегата; човешките нечистотии; тайната болка по възрастен съсед, който приживе е бил твое убежище; и да, грубите, натурални емоции…

… най-неочаквано тя [майка ми] ме целуна по бузата, а аз се стреснах, защото не съм свикнал. Баща ми и майка ми никога не ме целуват, само се ръкуват с мен. Не ме целуват даже за рождения ми ден, защото никога не го празнувам. У нас на село не съм виждал някой да целуне някого. А баща си не съм го виждал и да плаче; даже не мога да си го представя.

Не обичам клишето „тиха книга“, но тази е точно такава, при цялата си фина живост. Разказ, в който въображението надскача уредения бит, за да навлезе в гората – там, където дебне стръвницата, символ на болестта, на опасността, но и въобще на предстоящото. Всяко порастване – всяко живеене – е дебненето за тази мечка. И срещата е неизбежна.

На второ четене: „Спомен за гората“

„Спомен за гората“ е и от тези книги, които задължително ти напомнят за други подобни. Нима не сме чели десетки романи за същите онези неща, които правят всички на тази възраст, дори и отвъд конкретното поколение? Тайната се крие именно в това дежавю, в тази уютна познатост. Мисля си тук за прекрасната и много подобна автофикционална книга на Юли Шумарев „Макгахански блусове и балади“ (за детството с родителите му, баба му и дядо му на един от пловдивските сокаци през 70-те); за „Когато големите станат малки“ от Алберт Бенбасат (за детството му и еврейското му семейство в стара София от 50-те); за „Струни“ на Радко Пенев; за първата част от трилогията на Иван Станков (детството през 60-те покрай Дунава); за „Цялото наше безумство“ на малайската авторка Ши-Ли Коу (да, звучи далечно, но е точно като при нас!) и за още много други книги. Всички те си струват да бъдат прочетени, също като тази.


Активните дарители на „Тоест“ получават постоянна отстъпка в размер нa 20% от коричната цена на всички заглавия от каталога на издателство ICU, както и на няколко други български издателства в рамките на партньорската програма Читателски клуб „Тоест“. За повече информация прочетете на toest.bg/club.

Никой от нас не чете единствено най-новите книги. Тогава защо само за тях се пише? „На второ четене“ е рубрика, в която отваряме списъците с книги, публикувани преди поне година, четем ги и препоръчваме любимите си от тях. Рубриката е част от партньорската програма Читателски клуб „Тоест“. Изборът на заглавия обаче е единствено на авторите – Стефан Иванов и Антония Апостолова, които биха ви препоръчали тези книги и ако имаше как веднъж на две седмици да се разходите с тях в книжарницата.

Security updates for Monday

Post Syndicated from jake original https://lwn.net/Articles/994080/

Security updates have been issued by Debian (docker.io, libreoffice, node-dompurify, python-reportlab, and thunderbird), Fedora (buildah, chromium, kernel, kernel-headers, libgsf, mosquitto, p7zip, podman, python-cramjam, python-virtualenv, redis, rust-async-compression, rust-brotli, rust-brotli-decompressor, rust-libcramjam, rust-libcramjam0.2, rust-nu-command, rust-nu-protocol, rust-redlib, rust-tower-http, thunderbird, and webkit2gtk4.0), Oracle (.NET 6.0, .NET 8.0, e2fsprogs, firefox, golang, openssl, python3-setuptools, systemd, and thunderbird), SUSE (chromium, firefox, java-jwt, libmozjs-128-0, libwireshark18, ntpd-rs, OpenIPMI, thunderbird, and wireshark), and Ubuntu (firefox, python2.7, python3.5, thunderbird, and ubuntu-advantage-desktop-daemon).

Perfectl Malware

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2024/10/perfectl-malware.html

Perfectl in an impressive piece of malware:

The malware has been circulating since at least 2021. It gets installed by exploiting more than 20,000 common misconfigurations, a capability that may make millions of machines connected to the Internet potential targets, researchers from Aqua Security said. It can also exploit CVE-2023-33246, a vulnerability with a severity rating of 10 out of 10 that was patched last year in Apache RocketMQ, a messaging and streaming platform that’s found on many Linux machines.

The researchers are calling the malware Perfctl, the name of a malicious component that surreptitiously mines cryptocurrency. The unknown developers of the malware gave the process a name that combines the perf Linux monitoring tool and ctl, an abbreviation commonly used with command line tools. A signature characteristic of Perfctl is its use of process and file names that are identical or similar to those commonly found in Linux environments. The naming convention is one of the many ways the malware attempts to escape notice of infected users.

Perfctl further cloaks itself using a host of other tricks. One is that it installs many of its components as rootkits, a special class of malware that hides its presence from the operating system and administrative tools. Other stealth mechanisms include:

  • Stopping activities that are easy to detect when a new user logs in
  • Using a Unix socket over TOR for external communications
  • Deleting its installation binary after execution and running as a background service thereafter
  • Manipulating the Linux process pcap_loop through a technique known as hooking to prevent admin tools from recording the malicious traffic
  • Suppressing mesg errors to avoid any visible warnings during execution.

The malware is designed to ensure persistence, meaning the ability to remain on the infected machine after reboots or attempts to delete core components. Two such techniques are (1) modifying the ~/.profile script, which sets up the environment during user login so the malware loads ahead of legitimate workloads expected to run on the server and (2) copying itself from memory to multiple disk locations. The hooking of pcap_loop can also provide persistence by allowing malicious activities to continue even after primary payloads are detected and removed.

Besides using the machine resources to mine cryptocurrency, Perfctl also turns the machine into a profit-making proxy that paying customers use to relay their Internet traffic. Aqua Security researchers have also observed the malware serving as a backdoor to install other families of malware.

Something this complex and impressive implies that a government is behind this. North Korea is the government we know that hacks cryptocurrency in order to fund its operations. But this feels too complex for that. I have no idea how to attribute this.

The collective thoughts of the interwebz