ElasticSearch Unassigned shards hatası ve çözümü

ElasticSearch Unassigned shards hatası ve çözümü

Eğer benim gibi single node cluster kullanıyor iseniz aşağıdaki komutu ssh tan basarak replica sayısını tekrar set edip bahsi geçen hatayı giderebilirsiniz. Tabi ElasticSearch portunuz farklı ise komutta değiştiriniz. Ya da replica sayınızı örneğin 5 ten 4  indirdiyseniz number of replicas bölümünden sisteminize uygun olacak şekilde değiştiriniz.

curl -XPUT ‘localhost:9200/_settings’ -d ‘
{
“index” : {
“number_of_replicas” : 0
}
}’

Ayhan ARDA

Ubuntu 14.04 üzerine Hadoop 2.6.0 Kurulumu

Bu yazımızda tek bir node üzerine Hadoop kurulumu yapacağız.

Gereksinimler;

1 – Oracle Java 8 Kuralım.

ayhanarda@ubuntu:~$ sudo apt-get install software-properties-common
ayhanarda@ubuntu:~$ sudo add-apt-repository ppa:webupd8team/java
ayhanarda@ubuntu:~$ sudo apt-get update
ayhanarda@ubuntu:~$ sudo apt-get install oracle-java8-installer

Apache Hadoop bir java framework ü , dolayısı ile çalışabilmesi için java kurulu bir sunucu olmalı. Yukarıdaki işlem java yı /usr/lib/jvm/java-8-oracle path ine kuracaktır. Kurulumu test etmek için aşağıdaki komutu girebilirsiniz.

ayhanarda@ubuntu:~$ java -version

2 – HDFS ve MapReduce Erişimi İçin Bir Grup ve Kullanıcı Oluşturalım.

ayhanarda@ubuntu:~$ sudo addgroup hadoop
ayhanarda@ubuntu:~$ sudo adduser --ingroup hadoop hduser

3 – SSH Kuralım ve Konfigüre Edelim.

Hadoop diğer düğümlere ulaşmak ve yönetmek için ssh kullanacak.

ayhanarda@ubuntu:~$ sudo apt-get install openssh-server
ayhanarda@ubuntu:~$ /etc/init.d/ssh start
#Öncelikle hduser ile login olalim.
ayhanarda@ubuntu:~$ sudo su hduser
 
#Key olusturuyoruz , key adi soracak , bos geçebilirsiniz.
hduser@ubuntu:~$ ssh-keygen -t rsa -P ""
 
#Key i authorized_keys dosyamiza yaziyoruz.
hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Key i test etmek için ssh localhost yazabilirsiniz , şifre sormuyor ise tamam demektir.

4 – IPV6 yı kapatalım.

Hadoop henüz ipv6 ile çalışmamakta dolayısı ile kapatmamız gerekiyor. Bu işlem için /etc/sysctl.conf dosyamızı açalım ve dosyanın sonuna aşağıdakileri ekleyip kaydedelim , sonrasında reboot gerekmekte.

hduser@ubuntu:~$ sudo nano /etc/sysctl.conf
# disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Kurulum;

1 – Apache Hadoop indirelim.

#hadoop kuracağımız dizinin üstüne gidelim.
ayhanarda@ubuntu:~$ cd /usr/local
 
#hadoop u indirelim.
ayhanarda@ubuntu:/usr/local$ sudo wget https://www.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz
 
#hadoop u açalım.
ayhanarda@ubuntu:/usr/local$ sudo tar -xzvf hadoop-2.6.0.tar.gz
 
#hadoop u taşıyalım.
ayhanarda@ubuntu:/usr/local$ sudo mv hadoop-2.6.0 /usr/local/hadoop
 
#hadoop klasörü sahiplik ayarlarını yapalım.
ayhanarda@ubuntu:/usr/local$ sudo chown hduser:hadoop -R /usr/local/hadoop
 
#Namenode ve Datanode için hadoop temp dizini açalım.
ayhanarda@ubuntu:/usr/local$ sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode
ayhanarda@ubuntu:/usr/local$ sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode
 
#Hadoop temp dizininin sahiplik ayarlarını yapalım.
ayhanarda@ubuntu:/usr/local$ sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/

2 – Hadoop Konfigürasyon Dosyalarını Güncelleyelim.

#Kullanıcı profilini güncellemek için aşağıdaki dosyayı açalım. 
hduser@ubuntu:~$ sudo nano $HOME/.bashrc
 
#Aşağıdakileri .bashrc dosyasının en altına yazıp kaydedelim. (Burada Java_Home ve Hadoop_Home pathlerinizi kontrol etmenizi öneririm)
# -- HADOOP-bigdatatr.com-- #
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
# -- HADOOP-bigdatatr.com-- #

hadoop-env.sh Dosyası İçin;

export JAVA_HOME= ile başlayan satırı aşağıdaki şekilde düzenleyin.
export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Core-site.xml Dosyası İçin;

#Dosyada göreceğiniz <configuration> tagları arasına aşağıdakilerini girin.
 
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>

hdfs-site.xml Dosyası İçin;

#Dosyada göreceğiniz <configuration> tagları arasına aşağıdakilerini girin.
 
<property>
      <name>dfs.replication</name>
      <value>1</value>
 </property>
 <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>
 </property>
 <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/usr/local/hadoop_tmp/hdfs/datanode</value>
 </property>

yarn-site.xml Dosyası İçin;

#Dosyada göreceğiniz <configuration> tagları arasına aşağıdakilerini girin.
 
<property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
</property>
<property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

mapred-site.xml Dosyası İçin;

Bu dosyanın adı default olarak mapred-site.xml.template olarak gelir , bunu mapred-site.xml olarak değiştirmeliyiz.

hduser@ubuntu:~$ cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

Şimdi editleyebiliriz.

#Dosyada göreceğiniz <configuration> tagları arasına aşağıdakilerini girin.
 
<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>

3 – NameNode u Formatlayalım.

#hadoop dizinine gidelim.
hduser@ubuntu:~$ cd /usr/local/hadoop
 
#hadoop u formatlayalım
hduser@ubuntu:/usr/local/hadoop$ bin/hdfs namenode -format

3 – Hadoop Daemonlarını Başlatalım.

#sbin dizinine gidelim.
hduser@ubuntu:~$ cd /usr/local/hadoop/sbin
 
#hdfs i başlatalım.
hduser@ubuntu:/usr/local/hadoop$ ./start-dfs.sh
 
#MapReduce i başlatalım.
hduser@ubuntu:/usr/local/hadoop$ ./start-yarn.sh

4 – Hadoop Daemonlarını Test Edelim.

hduser@ubuntu:/usr/local/hadoop/sbin$ jps
2082 ResourceManager
1941 SecondaryNameNode
2184 NodeManager
1785 DataNode
2475 Jps
1661 NameNode

Şimdi Resource Manager ve NameNode a Browserdan erişebilirsiniz.

ResourceManager için- Http://localhost:8088 ya da http://ipadresi:8088

ResourceManager

Name Node için- Http://localhost:50070 ya da http://ipadresi:50070

NameNode

Gelecek makalede görüşmek üzere..

Ayhan ARDA

Tavsiye;

Hadoop in Practice

Hadoop The Definite Guide