Skip to content

Instantly share code, notes, and snippets.

View prasanthj's full-sized avatar

Prasanth Jayachandran prasanthj

View GitHub Profile
@prasanthj
prasanthj / orc-commit.txt
Created July 20, 2017 08:15
Apache ORC PR merge steps
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://git-wip-us.apache.org/repos/asf/orc.git
@prasanthj
prasanthj / ats-extract-plan.py
Last active August 4, 2017 20:58 — forked from t3rmin4t0r/ats-extract-plan.py
ATS to Hive query plan extraction
import json
import os,sys
class ATSFile(object):
def __init__(self, name):
self.data = json.load(open(name))
self.name = name
def dump(self):
if "hive_query_id" in self.data:
info = self.data["hive_query_id"]["otherinfo"]
@prasanthj
prasanthj / lirc-pi3.txt
Last active February 19, 2025 18:32
Getting lirc to work with Raspberry Pi 3 (Raspbian Stretch)
Notes to make IR shield (made by LinkSprite) work in Raspberry Pi 3 (bought from Amazon [1]).
The vendor has some documentation [2] but that is not complete and sufficient for Raspbian Stretch.
Following are the changes that I made to make it work.
$ sudo apt-get update
$ sudo apt-get install lirc
# Add the following lines to /etc/modules file
lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17
@prasanthj
prasanthj / mvn-subminute-hive-build.txt
Last active October 16, 2017 23:44
Apache Hive sub-minute maven dev build
Build times for Apache Hive master on my Mac Book Pro
# No source code changes (first build not considered as mvn will download all dependencies and cache it locally)
# Base: Clean offline quite build
$ time mvn clean install -DskipTests -o -q
real 3m9.005s
user 7m14.864s
sys 0m40.295s
@prasanthj
prasanthj / java-async-profiler.txt
Created December 13, 2017 23:41
Java Async Profiler Usage
# Pre-req: gcc, gcc-c++, git (to clone), openjdk with debug symbols (centos: java-1.8.0-openjdk-debug.x86_64, ubuntu: openjdk-8-dbg)
# Git clone async-profiler https://github.com/jvm-profiling-tools/async-profiler
# Make sure JAVA_HOME is set and you are logged as same user running the java process
cd async-profiler
make all
# Also git clone FlameGraph in the same directory as you clone async-profiler
# sysctl changes
echo 1 > /proc/sys/kernel/perf_event_paranoid
echo 0 > /proc/sys/kernel/kptr_restrict
@prasanthj
prasanthj / ec2-nvme-count.txt
Created January 18, 2019 08:08
Mount NVMe SSDs in AWS EC2 instances
Mount Separately
----------------
# mount nvme SSDs to /dataN when available for specific instance types
# There are only 4 nvme slots in r5 instances. /dev/nvme0n1 is root EBS volume.
for i in $(seq 1 4); do
if [ -e "/dev/nvme${i}n1" ]
then
echo "Mounting /dev/nvme${i}n1 to /data${i}"
sudo mkfs.ext4 -E nodiscard /dev/nvme${i}n1
sudo mkdir -p /data${i}
@prasanthj
prasanthj / orc-file-dump-total-row-count.txt
Created February 21, 2019 03:06
Total row count from orc file dumps
hive --orcfiledump <orc-table-path> | grep "Rows:" | cut -f2 -d":" | awk '{s+=$1}END{print s}'
@prasanthj
prasanthj / s3-get-speed-private.sh
Last active March 1, 2019 17:17
S3 GET Speed Private Bucket
#!/bin/bash
set -e
: ${AWS_ACCESS_KEY_ID:?"AWS_ACCESS_KEY_ID should be set in script or exported"}
: ${AWS_SECRET_ACCESS_KEY:?"AWS_SECRET_ACCESS_KEY should be set in script or exported"}
if [[ $# -eq 0 ]] ; then
echo 'S3 object URL expected as argument. Usage: ./s3-get-speed-private.sh <s3-private-object-uri>'
exit 0
fi
@prasanthj
prasanthj / workload-management-examples.txt
Last active March 21, 2019 20:38
Hive Workload Management Examples For Tez Container Mode
SHOW RESOURCE PLANS;
CREATE RESOURCE PLAN llap;
CREATE RESOURCE PLAN global;
set mapred.min.split.size=10000000;
set mapred.max.split.size=10000000;
source /work/queries/tpcds/q55.sql;
ALTER RESOURCE PLAN llap ACTIVATE;
ALTER RESOURCE PLAN global DISABLE;
CREATE TRIGGER global.highly_parallel WHEN TOTAL_TASKS > 40 DO KILL;
apt-get update
apt-get install -y python curl vim
curl -O https://bootstrap.pypa.io/get-pip.py
export PATH=~/.local/bin:$PATH
python get-pip.py --user
pip install awscli --upgrade --user
mkdir -p ~/.aws
vim ~/.aws/config
[default]