WRITING ISO FILE TO USB DRIVE ON Mac/LINUX

Standard

Hi all,

I need to write iso file to usb for OS installation. I just wanted to list what I need to do for a next time. So I prepared this tutorialish text

First let’s install pv to keep track of progress.

brew install pv (in Mac)
apt-get install pv (in Linux)

For writing iso to USB drive. You can use following command:
sudo dd if=~/ISO_PATH_SHOULD_BE_HERE | pv | sudo dd of="/dev/diskNumber" bs=1m

In mac you can get this error: “Resource busy”
diskutil unmountDisk /dev/diskNumber
Then you can say run previous command again.

Hint: you can use command to figure out your diskNumber.
diskutil list

LATE UPDATE: For macs dd takes so much time. please try to use rdisk2s1 rather than disk2s1
For more information please have a look : http://superuser.com/questions/631592/mac-osx-why-is-dev-rdisk-20-times-faster-than-dev-disk

GATHERING HADOOP METRICS TO GANGLIA

Standard

These days I was working with Ganglia. In UCD Lab, We have 10 slave + 1 master Hadoop Cluster. We need to monitor our cluster during Hadoop jobs. For this problem we used ganglia which is fancy monitoring tool. According to Ganglia People: “Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids.” Also It provides Web UI so we can check our cluster status. It’s bit oldy but still is goldy. But it still receives updates.

I was looking for way to connect my hadoop cluster to ganglia. Fortunately, Hadoop community provide solution connecting Hadoop to ganglia.

Let’s configure…

For Master:

Change directory to Hadoop/etc/hadoop/

Edit hadoop-metrics2.properties(PS: period defines the number of seconds between each update cycle.)

namenode.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
namenode.sink.ganglia.period=10
namenode.sink.ganglia.servers=PUT_HERE_GMETAD_IP:8649

resourcemanager.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
resourcemanager.sink.ganglia.period=10
resourcemanager.sink.ganglia.servers=PUT_HERE_GMETAD_IP:8649

For each slave:

Change directory to Hadoop/etc/hadoop/

Edit hadoop-metrics2.properties

datanode.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
datanode.sink.ganglia.period=10
datanode.sink.ganglia.servers=PUT_HERE_GMETAD_IP:8649

nodemanager.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
nodemanager.sink.ganglia.period=10
nodemanager.sink.ganglia.servers=PUT_HERE_GMETAD_IP:8649

After editing, now restart Hadoop Cluster:

mr-jobhistory-deamon.sh stop historyserver
stop-yarn.sh
stop-dfs.sh

mr-jobhistory-deamon.sh start historyserver
start-yarn.sh
start-dfs.sh

Now restart gmetad

/etc/init.d/gmetad restart

As a last, restart each ganglia-monitor:

service ganglia-monitor restart

Perfect now you can monitor your cluster from heartbeat to jvm status.

ganglia-heartbeat

HADOOP KURULUMU

Standard

Dökümantasyon da yardımı geçen Hasan Akgün teşekkür’ü bir borç bilirim 😉

HADOOP ÖNCESİ PRE-REQUIREMENTS KURULUMLARI

İlk olarak java jre ve jdk yüklenir. Bunun için:

sudo apt-get install openjdk-7-jre

sudo apt-get install openjdk-7jdk

kurulur. Sonra

java -version
-> denilerek java nın kurulduğu check edilir.

Şimdi hadoop için user açmalıyız.

sudo addgroup hadoop
-> hadoop grubu oluşturuk.

sudo adduser –ingroup hadoop hduser
-> hduser kullanıcı oluşturduk bu kullanıcı hadoop grubuna dahil.

Şimdi SSH configure etmemiz gerekiyor.

Hadoop node ları yönetmek için ssh kullanır.Bunun için ssh yüklememiz lazım:

sudo apt-get install ssh

sudo apt-get install rsync

Şimdi ssh için anahtar çifti yaratacağız.

user@ubuntu:~$ su – hduser

hduser@ubuntu:~$ ssh-keygen -t rsa -P “”

Generating public/private rsa key pair.

Enter file in which to save the key (/home/hduser/.ssh/id_rsa):

Created directory ‘/home/hduser/.ssh’.

Your identification has been saved in /home/hduser/.ssh/id_rsa.

Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.

The key fingerprint is:

9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hduser@ubuntu

İkinci satır boş şifreli RSA anahtar çifti yaratıyor. Şimdi bu anahtar çifti için ssh erişimini onaylayalım.

hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Son olarak ssh test edelim.

hduser@ubuntu:~$ ssh localhost

The authenticity of host ‘localhost (::1)’ can’t be established.

RSA key fingerprint is d7:87:25:47:ae:02:00:eb:1d:75:4f:bb:44:f9:36:26.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘localhost’ (RSA) to the list of known hosts.

Linux ubuntu 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

HADOOP KURULUMU

hduser ile giriş yapılarak aşağıdaki adımlar izlenir.Aşağıdaki linkten hadoop setup dosyaları indirilir.



2.7.2 versiyonunun binary kodunu indiriyoruz. Çıkan linkten dosyalar indirilir.

URL : http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz


Aşağıdaki komut ile kopyalama yapılır.

sudo mv /home/hduser/Downloads/hadoop-2.7.2.tar.gz /usr/local/


cd /usr/local
-> diyerek local e gidilir.Sonra indirdiğimiz tar.gz yi çıkarmak için

sudo tar xzf hadoop-2.7.2.tar.gz
-> sudo yaptığınız userın admin olmasına dikkat edin hduser admin değil !

mv hadoop-2.7.2 hadoop
-> diyerek dosya adını hadoop yapıyoruz.

Dosyayı çıkardıktan sonra yetkisini değiştirmek için

chown hduser:hadoop /hadoop –R
->yaparak özyinelemeli olarak yetkilendirme işlemini yapabiliriz


Hadoop’un çalışması için doğru java pathini görmesi gerekmektedir. Bu yüzden aşağıdaki yolda bulunan hadoop-env.sh jobının içinde JAVA_HOME değerinin güncellemeliyiz.

cd /usr/local/hadoop/etc/hadoop
-> yaparak hadoop folderına gidiyoruz.Sonra hadoop-env.sh modifiye etmek için

nano /hadoop-env.sh
->yapılır.


export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

NOT: Siz burada kendi java home folder path ini yazmanız gerekiyor.

Hadoop şu ana kadar izlediğimiz adımlar Hadoopun çalışmasına yetecektir. Fakat daha etkin kullanım için aşağıdaki konfigürasyon ayarlarınında yapılması gerekmektedir.

Aşağıdaki komutlar ile hadoop.tmp.dir parametresinin ihtiyaç duyduğu dosya create edilir ve yetkilendirilir.

$ sudo mkdir -p /app/hadoop/tmp

$ sudo chown hduser:hadoop /app/hadoop/tmp

$ sudo chmod 750 /app/hadoop/tmp

  • core-site.xml üzerindeki düzenlemeler;

core-site.xml dosyası /usr/local/hadoop/etc/hadoop yolunda bulunmaktadır. Dosyayı editleyerek aşağıdaki scripti iki <configurations> arasına yazıyoruz.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property><name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The uri’s scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri’s authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>


  • mapred-site.xml üzerindeki düzenlemeler;

    mapred-site.xml dosyası /usr/local/hadoop/etc/hadoop yolunda bulunmaktadır. Dosyayı editleyerek aşağıdaki scripti iki <configurations> arasına yazıyoruz.

<property>

<name>mapred.job.tracker</name>

<value>localhost:54311</value>

<description>The host and port that the MapReduce job tracker runs

at. If “local”, then jobs are run in-process as a single map

and reduce task.

</description>

</property>


  • conf/hdfs-site.xml üzerindeki düzenlemeler;

    mapred-site.xml dosyası /usr/local/hadoop/etc/hadoop yolunda bulunmaktadır. Dosyayı editleyerek aşağıdaki scripti iki <configurations> arasına yazıyoruz.

<property>

<name>dfs.replication</name>

<value>1</value>

<description>Default block replication.

The actual number of replications can be specified when the file is created.

The default is used if replication is not specified in create time.

</description>

</property>


Son olarak .bashrc modifiye edelim…Bunun için home folderdaki(/home/kullanıcıAdınız) .bashrc dosyasına aşağıdaki satırları ekleyin.(sizin kurulum yaptığınız java pathi olması lazım…)

export HADOOP_HOME=/usr/local/hadoop

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

 

Herşey tamamsa hadoop başlatabiliriz bunun için

/usr/local/hadoop/sbin/start-all.sh
-> ile hadoop start edilir.


Hadoop start edildikten sonra

jps

komutu ile aşağıdaki hadoop dosyalarının çalışırlığını kontrol etmeliyiz.

LINUXTA NTFS HDD ‘NİN PERMISSION LARINI DEĞİŞTİRMEK

Standard

Eğer bağladığınız harddiskin UUID( Universally unique identifier) sini bilmiyorsanız. blkid komutu ile öğrenin

UUID : 2834F00B293CF442 şöyle bişey olmalı…

Sonra sıra fstab dosyasını editlemekte bunun için aşağıdaki komutla dosyayı nano editörü ile açın.

sudo nano /etc/fstab

Sonra alttaki UUID kendi harddiskinizin UUID sine göre değiştirerek aşağıdaki satırı açtığınız dosyanın sonuna ekleyin…

UUID=12102C02102CEB83 /media/Store ntfs-3g auto,users,permissions 0 0

Sonra ctrl + x kombinasyonuyla çıkın size kaydetmek isteyip istemediğiniz sorucak Y diyerek kaydedin…

Eğer bağlamak istediğiniz yer( /media/Store ) olduğunu varsayarak bu dosyayı oluşturmadıysanıza oluşturun. Oluşturmak için sudo mkdir /media/Store kullanabilirsiniz.

Son olarak tekrar mount(harddiskinizi sisteme bağlamak için) aşağıdaki komutu kullanın.

sudo mount /media/Store

sonunda artık istediğiniz permission(izni) ayarlayabilirsiniz.

şeklindeki gibi:

chmod 755 -R /media/Store

yada

chown raspi -R /media/Store

Son olarak harddisk sisteminizden çıktığında veya bilgisayarı yeniden başlattığınız tekrar mount etmek için aşağıdaki komutu kullanabilirsiniz…

sudo mount /media/Store

Elementary OS Özelleştirilmesi ve Problemleri

Standard

Bu post altında elementary os de yaptığım değişiklikleri not etmek istedim.

  1. Windows butonlarını sol da olmasın(mac tarzı oluyor bu hali hazırda) sağ da olması için;Öncelikle
    sudo apt-get install dconf-tools

    yazarak dconf u yükleyelim sonra dconf üzerinde sırayla

    org > pantheon > desktop > gala > appearance gelelim

    burada

    button-layout :maximize,close

    yapalım. Bu şekilde windows butonları sağ tarafa geçicek. Burada isteğe bağlı olarak yerleri değiştirilebilir önemli olan : (iki nokta) ayıracı temsil ediyor sağ yazdıklarımız formun sağına soluna yazdıklarımız solunda belirlecektir.

    minimize,maximize,close gibi opsiyonlarımızda mevcut.

  2. ) Sistemin font tipini değiştirmek.
    sudo apt-get install gnome-tweak-tool

diyoruz. Sonra terminal üzerinden gnome-tweak-tool diyerek programı çalıştırabiliriz. Burada font altındaki değişiklikleri yaparak sistem font ları özelleştirebiliriz.

 

Elementary os de karşılaştığım problemler ve çözüm yolları

1.) Application menusü açılmıyordu bunun için

terminali açıp

pkill slingshot

yazıyoruz. Artık çalışacaktır manuel restart ediyoruz gibi düşünebiliriz burayı.

Linuxta OpenVPN kullanarak Anonim Surf

Standard

Öncelikle openvpn ‘i client olan(server’a bağlanıcak olan) makinemize kuralım.

sudo apt-get install openvpn

Y diyip kurduktan sonra

client.ovpn dosyası gerekmekte kısaca bu dosya bağlanacağımız serverın openvpn ayarlarını içeren bir config dosyası. Onu indirmek için https://IPAdresi şeklindeki sunucumuzdan( sunucuda openvpn-as yüklü olduğunu varsayıyorum) indirebiliriz.

clientovpn1

 

sonra linux terminal ekranına geçmeliyiz. Başlattan terminal yazıp çalıştırdıktan sonra karşımıza terminal ekranı gelmeli. Sonra client.ovpn olduğu dosyayı bulmalıyız. Dipnot : kolayca bulmak için find /home -name client.ovpn çalıştırın size yerini söylecektir. çıktımız dosyaninyeri/client.ovpn olacaktır. dosyanınyeri ni bir yere(/home/kullaniciadi/Downloads/ gibi bişey) yazalım.  cd dosyanınyeri yapalım sonra ls -l komutu ile client.ovpn  dosyanın içinde olduğu görmeliyiz.

client.ovpn dosyasının orada olduğunu gördükten sonra

sudo openvpn client.ovpn 

kodunu çalıştıralım ve linux kullanıcımızın şifresini girelim.(root hakkı alıyoruz burada almazsak malesef vpn’e bağlanamıyoruz.)

Mon Mar 23 00:07:17 2015 /sbin/ip route add 95.85.5.59/32 via 192.168.1.1
Mon Mar 23 00:07:17 2015 /sbin/ip route add 0.0.0.0/1 via 172.27.232.1
Mon Mar 23 00:07:17 2015 /sbin/ip route add 128.0.0.0/1 via 172.27.232.1
Mon Mar 23 00:07:17 2015 Initialization Sequence Completed

VPN’e başarı ile bağlandığımızı Initialization Sequence Completed yazısından görebilmekteyiz. Yine bir ip kontrolünden(bağlandığımızı teyit etmek için) zarar gelmez. http://www.whatismyip.com/ ip inizi görüntüleyebilirsiniz. Başarıyla bağlandıysanız ip kısmından openvpn kurulu olduğu serverın ipsini görmelisiniz.

İyi akşamlar…

 

 

 

 

 

 

Linux SSH Keys Kurulumu

Standard

SSH(secure shell) güvenli shell oluşumu için kullanılan şifrelenmiş ağ protokolüdür. Normalde şifreler brute-force tekniği ile kırılmaktadır. SSH key(anahtarları) lerini sadece brute-force tekniği ile kırmak neredeyse imkansızdır.SSH anahtar olarak 2 uzun karekter çiftini üretir. Bunlardan biri public key diğeri ise private keydir. Public keyi serverımızda tutarız. Private keyi de server bağlanmak isteyen kullancılara dağıtırız. Sisteme giriş yapmaya çalışırken bu iki şifre(serverdaki public key ile elimizde olan private key) eşleşirse şifre sormadan sisteme login oluruz. İstersek aynı zamanda paralo kullanarak veya şi  fre ile giriş yapmayı kaldırarak(bu durumda sadece ssh kullanarak girmek zorunda kalacağız.) sistemi daha güvenli hale getirebiliriz.

Ssh key üretmek için linux terminalinde aşağıdaki kodu çalıştıralım:

ssh-keygen -t rsa

Kodu çalıştırınca key i kaydetmek için dosya isteyecek enter’a basın bir.

Enter file in which to save the key (/home/user/.ssh/id_rsa):

Eğer ayrıca passphrase(şifre) kullanmak isterseniz.:

Enter passphrase (empty for no passphrase):

Kısmına yazın. Ben kullanmak istemediğim için tekrar enter’a basıp geçiyorum.

Oluşturduğunuz şifre .ssh/id_rsa kısmında görebilirsiniz. İki tür şifre olduğunu söylemiştim biri public diğeri ise private burada yapmamız gereken public server da tutmak diğerini de kendi bilgisayarımıza almak.

Public key server’a kopyalamak için aşağıdaki kodu kullanın(user kısmını ve ip kısmını kendinize göre değiştirmeyi unutmayın):

ssh-copy-id user@123.45.56.78

ssh

yes diyip devam edelim.

ssh2

Şimdi şifremizi girelim. Eklendiğini aşağıdaki gibi görebiliriz.

ssh3

Private key imizi görüntülemek içinse .ssh dizine cd kodu ile girelim

cd .ssh

cat ‘i kullanarak Private keyimizi görüntüleyebiliriz.

cat id_rsa

SSH key kullanarak login olmayı(hem windows sistemlerde hem de linux sistemlerde) bir sonraki yazım da detaylandıracağım. Görüşmek üzere …

Linux Server’a OpenVPN kurulumu

Standard

Vpn Nedir ?

VPN: Virtual Private Networkün kısaltmasıdır. VPN sayesinde ağlara uzaktan erişim sağlanır. VPN bir ağ uzantısı olduğundan fiziksel olarak bağlıymış gibi gözükürüz. Mesala herhangi bir siteye girmek istediğimizde VPN istemcisi TCP/IP üzerinden bağlantı kurmak istediği VPN aracılığıyla internete çıkar. Bu da bize temel olarak daha güvenli ve gizli internet hizmeti almamıza yardımcı olur.

Vpn için bir çok çözüm alabileceğiniz gibi en mantıklısı aylık 5 dolar gibi bir rakama kendi serverınızı barındırıp, onun içine OpenVPN kurup. OpenVPN üzerinden internete çıkmaktır. OpenVPN açık kaynak kodlu olup 2 kullanıcıyı kadar ücretsizdir. Sonraki kullanıcılar için ücret istemektedir. Kullanıcı paketlerini 10 lu kullancılar şeklinde satıp yıllık kullanıcı başına 9,60 dolar gibi bir rakam istemektedir. 3-5 yıl almak istereniz size az da olsa %20 ye kadar da indirim yapmaktadır. Fakat dediğim gibi en az 10 kullanıcı almalısınız tabi bu kafadan yıllık 90 dolar gibi bir rakam eder. Bu yazı ev kullanıcıların için yazılmış olup OpenVPN den dediğim gibi ücretsiz olarak faydalanabiliriz. Ama dediğim gibi aylık 10 dolar gibi rakamdan internettimizin özgürlüğü, internetteki gizliliğimiz ve güvenliğimiz bundan çok daha değerlidir.

Sadece 7 adımda OpenVPN Ubuntu işletim sistemi kullanan Sunucu’ ya nasıl yüklenir ?

Linux sunucusunuzun olduğunu düşünerek bu yazıyı yazıyorum. Yoksa digitalocean’dan aylık 5 dolar gibi rakama 512 ram, 1 çekirdekli,20 gb ssd ve 1 terabyte kotalı bir sunucu alabilirsiniz. Öğrenciler ise github student pack üzerinden 100 dolar hediye çekiyesi alıp üye olabilirler. Başka bir yazımda detaylandıracağım. Student Pack’i…

1. Birazcık iş yapalım bu kadar konuşma yeter diyerek başlıyoruz. Öncelikle ‘ root ‘ haklarıyla login oluyoruz serverımza bunun için su komutuyla admin yetkilerini alıyoruz.

2. Sonrasında sunucumuzun kaç bit olduğunu öğrenmek için

uname –a
kodunu çalıştırıyoruz.

2

Dönüşten sunucumuz 64 bit mi yoksa 32 bit mi olduğunu görebiliriz. Benim sunucum 64 bit bu durumda 64 bit için olanı indiriyoruz:

    sudo wget http://swupdate.openvpn.org/as/openvpn-as-2.0.7-Ubuntu12.amd_64.deb

Eğer 32 bit ise

sudo wget http://swupdate.openvpn.org/as/openvpn-as-2.0.7-Ubuntu12.i386.deb

3. İndirdiğimiz dosyayı(debian paketini) çıkartmak(extract) ve yüklemek için dpkg kullanacağız. Kodumuz aşağıdaki gibi olucak:

dpkg -i openvpn-as-2.0.7-Ubuntu12.amd_64.deb

Eğer 32 bit indirdiysenize lütfen yukarıdaki kodu Ubuntu12 den sonrasını .i386.deb olarak değişitirin.

4. Yukarıdaki kodu çalıştırdıysanız yüklemeyi tamamladık. Şimdi yapmamız gereken OpenVPN’in varsıyalan olarak gelen openvpn kullanıcı adını oluşturmalıyız. Bunun için aşağıdaki kodu çalıştırarak istediğiniz şifreyi oluşturacağımız openvpn kullancısının şifresi olarak belirleyiniz.

sudo passwd openvpn

5. Herşey süper şu an çalışan bir vpn server ımız var. Şimdi yapmamız gereken ifconfig ile server(sunucu)ımızın ip sini öğrenmek. Bunun için

ifconfig

yazdıktan sonra eth0 kısmına bakmalıyız. Onun altında inet addr kısmında ip mizi görebiliriz.

5

Yukarıdaki olayın kısayolu ise

/sbin/ifconfig eth0 | grep ‘inet addr:’ | cut -d: -f2 | awk ‘{ print $1}’

52

İp imizi de bir yere not alalım

Şimdi bağlanmak istediğimiz makine(client olan)

windows ise şu linkten : windows client için openvpn

linuxsa şu linkten devam edebiliriz: linux client için openvpn