noqqe


blog | sammelsurium | projects | about

Hadoop Cheatsheet

2014-03-19 @ Hadoop, Software

HDFS Benutzung

Files anzeigen

hadoop fs -ls /

File hochladen

hadoop fs -copyFromLocal <local_FS_filename> <target_on_HDFS>
hadoop fs -put local.txt hdfs://nn.example.com/user/hadoop/hadoopfile

File löschen

hadoop fs -rm <target_on_HDFS>

File verschieben

hadoop fs -mv <source_on_HDFS> <target_on_HDFS>

Berechtigungen aendern

hadoop fs -chmod 777 <target_on_HDFS>

Tail auf ein File im HDFS

hadoop fs -tail <target_on_HDFS>

Replication Factor eines Files ändern

hadoop fs -setrep 2 <target_on_HDFS>

Einen Ordner erstellen

hadoop fs -mkdir <target_on_HDFS>

Größe eines Ordners anschaeun

hadoop fs -du <target_on_HDFS>

Administratives

Übersicht

hdfs dfsadmin -report | head -11

Alle decommissioned in progress

hdfs dfsadmin -report | grep -B 3 progr | grep -E '(^Name|progr)'

alle fertig decommissioned

hdfs dfsadmin -report | grep -B 3 -i decommissioned | grep -E '(^Name|progr)'

Hadoop FSCK ausführen

hadoop fsck / | grep -v '^\.'

Namenode initalisieren

hdfs namenode -format

Zookeeper Initalisieren

hdfs zkfc -ZKformat

Standbyhost initalisieren

hdfs namenode -bootstrapStandby

Datanode reformat

/etc/init.d/hadoop-hdfs-datanode stop ;  for x in /mnt{1..4}/dfs ; do rm -rf $x ; mkdir $x ; chown hdfs:hadoop $x ; done ; /etc/init.d/hadoop-hdfs-datanode start

Stop all Datanodes

for x in $hosts ; do ssh $x "sudo /etc/init.d/hadoop-hdfs-datanode stop" ; done

Get current master

hdfs haadmin -getServiceState nn1
> active

hdfs haadmin -getServiceState nn2
> standby

Architektur

  • Namenode + Namenode mit Zookeeper und Journal Server ist sowas wie das DRBD mit MySQL Setup. Kein Secondary aber dafür einen Standby Namenode. Die initalisierung des Secondary erfolgt über den Journal server nach dem der primary initalisiert worden ist.

  • Standalone ist halt einfach ein einzelner Namdenode

  • Primary Namenode + Secondary. Secondary ist der wohl irreführendeste begriff überhaupt er wird für allerhand meta daten information missbrauchtn. Wenn der Primary down ist, hilft auch der Secondary nichts.

Namenode Reformat

n1: /etc/init.d/hadoop-hdfs-namenode stop
n2: /etc/init.d/hadoop-hdfs-namenode stop
j1: /etc/init.d/hadoop-hdfs-journalnode stop
n1: rm -rf /mnt1/dfs/ /mnt/dfs/ ; mkdir /mnt1/dfs/ /mnt/dfs/ ; chown hdfs /mnt1/dfs/ /mnt/dfs/
j1: rm -rf /mnt/dfs/journal/
j1: /etc/init.d/hadoop-hdfs-journalnode start
n1: hdfs namenode -format
n1: rsync /mnt/ und /mnt1/ to n2
n1: /etc/init.d/hadoop-hdfs-namenode start
n2: /etc/init.d/hadoop-hdfs-namenode start

Overview Script

#!/bin/bash
echo "##### REPORT"
hdfs dfsadmin -report | head -11
echo
echo "##### REPORT Decommisioning in Progress"
hdfs dfsadmin -report | grep -B 3 progr | grep -E '(^Name|progr)'
echo
echo "##### REPORT Decommisioned"
hdfs dfsadmin -report | grep -B 3 -i decommissioned | grep -E '(^Name|progr)'
echo
echo "##### REPORT fsck / "
hadoop fsck / | grep -v '^\.'

List all jobs in queue

as a superuser in hadoop (hdfs)

$ mapred job -list
2 jobs currently running
JobId   State   StartTime       UserName        Priority        SchedulingInfo
job_201403191443_0007   1       1395240869633   ubuntu  NORMAL  NA
job_201403191443_0010   1       1395241066090   ubuntu  NORMAL  NA