Posts

Showing posts from February, 2025

Apache Cassandra Performance Optimization

Image
Hey Guys!! I'm back with a new learning this week, I worked and experimented on Apache Cassandra Distributed database. It's special feature is it's quering capability with NoSQL - Not only SQL. Let's jump to our last set blog post where we have learnt about the Cassandra installation on a VM. Hope you are ready with Cassandra DB node. 1: Optimizing Data Modeling Objective: Understand partitioning and primary key design to optimize performance. Create an inefficient table within company_db keyspace: CREATE KEYSPACE company_db WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; USE company_db; CREATE TABLE company_db.employees_bad ( id UUID PRIMARY KEY, name TEXT, department TEXT, age INT, city TEXT ); Now let's Insert some sample records into the table and try to query it. INSERT INTO employees_bad (id, name, department, age, city) VALUES (uuid(), 'Reemi', 'Engineering', 30, 'New York...

Cassandra nodetool by examples

Image
To monitor an Apache Cassandra cluster from the command line interface (CLI), you can use the nodetool utility, which is a powerful command-line tool specifically designed for managing and monitoring Cassandra clusters. Here are some key commands and their functionalities: Key nodetool Commands Check Cluster Status : nodetool status This command displays the status of all nodes in the cluster, including whether they are up or down, their load, and other important metrics. Column Family Statistics : nodetool cfstats [keyspace_name] . [table_name] This command provides detailed statistics for a specific table (column family), including read/write counts, disk space used, and more. Thread Pool Statistics : nodetool tpstats This command shows statistics about thread pools used for read, write, and mutation operations, helping to identify potential bottlenecks. Network Statistics : nodetool netstats This command displays information about netwo...

Apache Cassandra 5 installation on Ubuntu

Image
In this post we will have step-by-step process of installation of the Latestt version of Apache Cassandra 5.0.3 (as of Feb 2025 available as latest) on Ubuntu 20. What problem I'm solving with this? There is no direct documentation on the Cassandra to help on installation of latest version that is 5.0.3 on Ubuntu. So I've experimented it on the online Ubuntu terminal(kllercoda) and posting all the steps here. Pre-requisite to install Cassandra 1. Ubuntu Terminal either killercoda or codespace on github works good for this experiment. 2. Cassandra has specific compatibility requirements with different Java versions, which are crucial for ensuring optimal performance and stability. you must have super(root) user access to install cassandra. Step 1: Install Java/JRE Ensure Java installed by checking with command `java -version` and if not existing then install as following: #install jdk17-jre apt install openjdk-17-jre-headless java -version Step 2: Add Ca...

Kafka Message system on Kubernetes

Image
  Setting up the Kubernetes namespace for kafka apiVersion: v1 kind: Namespace metadata: name: "kafka" labels: name: "kafka" k apply -f kafka-ns.yml Now let's create the ZooKeeper container inside the kafka namespace apiVersion: v1 kind: Service metadata: labels: app: zookeeper-service name: zookeeper-service namespace: kafka spec: type: NodePort ports: - name: zookeeper-port port: 2181 nodePort: 30181 targetPort: 2181 selector: app: zookeeper --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: zookeeper name: zookeeper namespace: kafka spec: replicas: 1 selector: matchLabels: app: zookeeper template: metadata: labels: app: zookeeper spec: containers: - image: wurstmeister/zookeeper imagePullPolicy: IfNotPresent name: zookeeper ports: - containerPort: 2181 image1 - kube-kafka1 From th...

Kafdrop install and Monitor

Image
There are many monitoring trools available for Kafka brokers. Ive collectiect Various monitoring options: Factor House Kpow Datadog Logit.io Kafka Lag Exporter Confluent CMAK (Cluster Manager for Apache Kafka) Kafdrop Offset Explorer  Let's explore the kafdrop monitoring Prerequisites: To run the Kafdrop monitoring tool Ensure Java installed by checking java -version If you don't find java on your Ubuntu run the following : sudo apt update sudo apt install openjdk-21-jdk -y for other Linux distributions you need to use right package manger to install JDK. Download Kafdrop jar file from github : sudo mkdir kafka-monitor cd kafka-monitor curl -L -o kafdrop.jar https://github.com/obsidiandynamics/kafdrop/releases/download/4.1.0/kafdrop-4.1.0.jar The curl command ensures that Kafdrop may have any release version but the jar file renamed as `kafdrop.jar`. Now all set to go and run the Kafdrop jar file with the --kafka.brokerConnect option where you can give sing...

Kafka installation on Ubuntu

Image
Kafka message broker is developed by Linkedin. To support their social media platform across the world. Message systems are defined as two Queues, Topics. If a messge send from a producer and received by single consumer then the communication will be point-to-point this is will be allowed in Queues. If Producer produce the message and there coudl be multiple consumers then it is One-to-many or pubf-sub of Publisher/Subscriber model it is implemented by Topic. Kafka supports both message models. Initial Setup for Kafka Kafka is build on scale and it runs on Java run time. So prerequisite to run Kafka we need Java as prerequisite. Optional other tools to help for troubleshoot and identify Kafka ports in use with 'netstat' command, topic content to view 'jq' and to have tree view 'tree' need to installed. apt update apt install -y net-tools jq tree On Ubuntu run the following commands to install compatible Java, here I'm using OpenJDK 21 version apt ...