husonet | Tarih: 15.05.2019
Hadoop HDFS komutları ve kullanımı
Hadoop HDFS sistemindeki komutların nasıl kullanıldığını örnekleyerek inceleyelim.
Uzun zamandır Big Data 'Büyük Veri' konusu değinmek istediğim konulardan biriydi. Big Data kısmını biliyorsunuz ki 5V olarak tanımlanıyor.
5V
- Volume -> Verinin Hacmi
- Velocity -> Verinin Hızı
- Variety -> Verinin Çeşitliği
- Verification -> Doğrulama
- Value -> Veriye Değer Katma
Bu konumuz verinin Volume kısmıyla alakalıdır. Şimdi Hadoop ortamında HDFS komutlarını nasıl kullanıyoruz örneklemeye başlayalım.
mkdir
Sistem üzerinde klasör oluşturur. Klasör önünde slash kullanımı önemlidir, klasörün yolunu belirlememizde bize yardımcı olur.
hdfs dfs -mkdir /directoryName
ls
Hadoop sistemi üzerinde klasör ve dosyaları listeler.
hdfs dfs -ls /
hdfs dfs -ls /directoryName
Örnek çıktı
hdfs dfs -ls /
Found 7 items
drwxrwxrwx - hdfs supergroup 0 2017-10-23 09:15 /benchmarks
drwxr-xr-x - hbase supergroup 0 2019-05-14 14:51 /hbase
drwxr-xr-x - cloudera supergroup 0 2019-05-13 06:43 /pythontr
drwxr-xr-x - solr solr 0 2017-10-23 09:18 /solr
drwxrwxrwt - hdfs supergroup 0 2019-05-13 04:22 /tmp
drwxr-xr-x - hdfs supergroup 0 2017-10-23 09:17 /user
drwxr-xr-x - hdfs supergroup 0 2017-10-23 09:17 /var
copyFromLocal
Local makinanız üzerinden hdfs ortamına dosya kopyalamanıza yarar.
hdfs dfs -copyFromLocal /source/sourcefile /target/
Örnek Kullanım
hdfs dfs -copyFromLocal /home/cloudera/Downloads/ziyaretciler.csv /pythontr/
Kontrol edelim.
hdfs dfs -ls /pythontr
Found 1 items
-rw-r--r-- 1 cloudera supergroup 186366657 2019-05-14 15:42 /pythontr/ziyaretciler.csv
Dosyamızın hdfs ortamında yer aldığını görüyoruz.
cat
Hdfs sistemindeki dosyanın içeriğini gösterir.
hdfs dfs -cat /directoryName/fileName
Örnek Kullanım
hdfs dfs -cat /pythontr/ziyaretciler.csv
260455,https,www.pythontr.com/makale/python-nedir-235,213.74.XX.XXX,/makale/python-nedir-235,2018-10-29 18:43:27,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
260456,http,direct,66.249.XX.XXX,/,2018-10-29 18:43:32,Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon
260457,https,www.pythontr.com/makale/sorun-bildirdiginden-windows-bu-aygiti-durdur-563,95.70.XX.XXX,/makale/sorun-bildirdiginden-windows-bu-aygiti-durdur-563,2018-10-29 18:44:28,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
260458,https,www.pythontr.com/makale/linux-zaman-dilimi-degistirme-335,212.175.XX.XXX,/makale/linux-zaman-dilimi-degistirme-335,2018-10-29 18:44:41,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
count
Belirtilen yol üzerindeki dosya ve dizin sayısını verir.
hdfs dfs -count /
hdfs dfs -count /directoryName
cp
Hdfs sistemindeki dosyaların sistem içindeki diğer klasörlere kopyalanmasını sağlar.
hdfs dfs -cp /source/fileName /target/
Örnek Kullanım
hdfs dfs -cp /pythontr/ziyaretciler.csv /user/
mv
Hdfs sistemindeki klasörlerin veya dosyarların taşınmasını sağlar.
hdfs dfs -mv /source /target
Örnek Kullanım
hdfs dfs -mv /pythontr /user
rm
Hdfs sistemindeki bir dosyanın silinmesini sağlar.
hdfs dfs -rm /directoryName/fileName
rmdir
Hdfs sistemindeki bir klasörün silinmesini sağlar. Klasör boş değilse silme işlemini başarısız kılar.
hdfs dfs -rmdir /directoryName
chmod
Hdfs sistemindeki dosya ve klasörlerin okuma, yazma ve çalıştırma izinlerini yönetmemizi sağlar.
hdfs dfs -chmod +x /directoryName # + ise izin verilir.
hdfs dfs -chmod -x /directoryName/fileName # - ise izin geri alınır.
setrep
Hdfs sistemindeki dosyaların kaç replication üzerinde kopya oluşturacağını belirleyebiliriz. Biz single olarak çalıştığımız için siz bu komutu kullanmış olsanız bile tek replication olacaktır.
hdfs dfs -setrep 3 -R /directroyName/fileName
Çalışma ortamını sanal bir sunucu 'VirtualBox' kurarak rahatlıkla oluşturabilirsiniz. Cloudera'yı sizin için tavsiye edebilirim. https://www.cloudera.com/downloads/quickstart_vms/5-13.html
Evet eksik kalan komutlarımız olabilir yorumlarda paylaşabilirsiniz. Sonraki yazımda görüşmek üzere.