Proiektu batean OpenTSDB erabili behar degu. OVH-ren berrikuntza filialean, RunAbove-en, OpenTSDB PaaS (Platform as a Service) erabiltzeko aukera dago, baina, nahiz eta ondo funtzionatu, hainbat funtzionaltasun falta zaizkio eta oraindik beta fasean dago. OpenTSDB instalatu behar da beraz, eta horretarako lehenik HBase instalatu behar dugu. Baina HBase era dezentean erabiltzeko (HDFS erabiliz) Hadoop instalatu behar dugu lehenago!

Goazen ba HBase eta Hadoop, oraingoz, zerbitzari bakarrean sasi-banatuta (pseudo-distributed) instalatzera. Kluster bat prestatzeko lehen fasea da, hurrengoren batean ikusiko dugu nola guztiz banatu gure sistema.

Ubuntu zerbitzarian egin dut, baina ez duzue arazorik izango beste GNU/Linux banaketa batean instalatzeko.

Hadoop

1. /etc/hosts zuzendu

Ubuntu zerbitzarian ari bazara, seguraski /etc/hosts fitxategian zerbitzariaren hostnamea 127.0.1.1-ra helbideratua izango du eta localhost 127.0.0.1-era. Hori Hadoop-i ez zaio gustatzen eta zuzendu behar dugu.

sudo nano /etc/hosts

Aldatu 127.0.1.1 -> 127.0.0.1, Gorde, CTRL+ O (O letra larria, ez zero zenbakia), eta itxi,CTRL + X.

2. Java instalatu:

sudo apt-get install default-jdk

OpenJDK 7 instalatuko du.

3. SSH ziurtagiriak sortu eta prestatu

Hadoop-ek SSH erabiltzen du nodoetara konektatzeko. Guk oraingoz nodo bakarra izango dugu (localhost) baina hala eta guztiz ere SSH giltza sortu eta zerbitzarian giltza horren bidez sartzea konfiguratu behar dugu.

Pasahitzik gabeko giltza parea sortzeko exekutatu:

ssh-keygen -t rsa -P ''

Zein fitxategitan gordetzeko galdetzean ENTER sakatu, berezko lekuan gordetzeko (/home/erabiltzailea/ssh/). Eta zerbitzarian sartzea baimentzeko:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3. Hadoop deskargatu eta “instalatu”

Joan APACHE-ren ispiluen orrialdera eta lehen estekan klik egin, https://ftp.cixug.es/apache/ adibidez. Bertan hadoop karpeta bilatu eta klikatu. Ondoren common -> stable. Artxibo potoloena insteresatzen zaigu, -src. ez duena, kopiatu loturaren helbidea. Zerbitzarian wget erabiliko dugu deskargatzeko:

wget https://ftp.cixug.es/apache/hadoop/common/stable/hadoop-2.7.2.tar.gz

Fitxategia benetakoa dela ziurtatuko dugu sha512 hash-a erabilita. Deskargatu .mds bukatzen den fitxatgia:

wget https://ftp.cixug.es/apache/hadoop/common/stable/hadoop-2.7.2.tar.gz.mds

Exekutatu sha512sum agintea:

sha512sum hadoop-2.7.2.tar.gz

Deskargatu dugun Hadoop paketearen hash-a emango digu. Begiratu ea deskargatu dugun hash fitxategian dagoen:

cat hadoop-2.7.2.tar.gz.mds

hadoop-2.7.2.tar.gz: SHA512 = ondoren datorren balioa aurreko aginteak azaldu digunaren berbera dela ziurtatu (maiuskula/minuskulak igual dio).

Deskonprimatu Hadoop:

tar xfz hadoop-2.7.2.tar.gz

Eta /usr/local/hadoop-era mugituko dugu:

sudo mv hadoop-2.7.2 /usr/local/hadoop

4. Ingurune aldagaiak ezarri

.bashrc fitxategia editatuko dugu hainbat ingurune aldagai ezartzeko. Gure JAVA_HOME balioa jakiteko exekutatu:

update-alternatives --config java

Hau erantzungo du:

1
2
3
4
5
$ update-alternatives --config java

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

Nothing to configure.

JAVA_HOME balioa bertan azaltzen den helbidea izango da (/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java) /jre/bin/java kenduta, /usr/lib/jvm/java-7-openjdk-amd64 nire kasuan. Gorde balio hau, birritan erabiliko dugu eta.

Informazio hau dugularik editatu .bashrc:

nano ~/.bashrc

Eta azken lerroaren ostean gehitu ondorengo hauek (testua itsasteko CTRL + SHIFT + V):

1
2
3
4
5
6
7
8
9
10
11
12
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END

Gorde, CTRL+ O, eta itxi,CTRL + X. Gogoratu JAVA_HOME-en balioa lehenago lortu duguna dela, balioa desberdina baduzu, zure beharretara moldatu.

Ondorengo agintea exekutatu gehitu ditugun aldagai berriak kargatzeko:

source ~/.bashrc

5. Hadoop konfiguratu

Hadoop HDFS erabiltzeko konfiguratuko dugu bakarrik, OpenTSDB-ek ez ditu YARN eta MapReduce behar eta.

1. /usr/local/hadoop/etc/hadoop/hadoop-env.sh

/usr/local/hadoop/etc/hadoop/hadoop-env.sh fitxategian JAVA_HOME ezarri behar dugu:

nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh

export JAVA_HOME=... topatu eta leheno lortu dugun balioa ezarri, nire kasuan:

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

Gorde eta itxi.

2. /usr/local/hadoop/etc/hadoop/core-site.xml

HDFS non zerbitzatuko den ezarriko dugu:

nano /usr/local/hadoop/etc/hadoop/core-site.xml

Honela utziko dugu konfigurazioa:

1
2
3
4
5
6
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

3. /usr/local/hadoop/etc/hadoop/hdfs-site.xml

Nodo bakarrerako konfiguratuko dugu:

nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml

Honela:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/erabiltzailea/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/erabiltzailea/hadoop_store/hdfs/datanode</value>
</property>
</configuration>

dfs.namenode.name.dir eta dfs.datanode.data.dir bidez nodo/zerbitzari honetan datuak non gordeko diren adieraziko diogu Hadoop-i. Nik erabiltzailearen home-an sartu ditut, baina beste nonbaiten gorde ditzakezu. Idazteko baimena badu karpetak bere kabuz sortuko ditu.

Fitxategi sistema (HDFS) formateatuko dugu orain:

hdfs namenode -format

Dena ondo atera bada ez da errorerik azalduko konsolan. Errorerik baduzu ziurtatu /etc/hosts fitxategian helbideratzea ondo duzula edo/eta dfs.namenode.name.dir zein dfs.datanode.data.dir sortu/idatzi ditzakela Hadoop-ek.

6. Hadoop abiarazi

Exekutatu:

start-dfs.sh

localhost-en namenode eta datanode-a martxan jarriko ditu, baita secondarynamenode-a 0.0.0.0-n.

jps agintea exekutatu dezakezu martxan daudela ziurtatzeko, honelako zerbait azalduko dizu:

1
2
3
4
5
$ jps
6259 NameNode
6719 Jps
5807 SecondaryNameNode
5611 DataNode

Lixto ba, Hadoop eta HDFS martxan ditugu! Azken pausua HBase instalatu eta martxan jartzea da.

HBase

Hadoop deskargatzeko prozesu berbera egin behar dugu baina oraingoan hbase bilatuta. wget erabili deskargatzeko:

wget https://ftp.cixug.es/apache/hbase/stable/hbase-1.1.4-bin.tar.gz

Deskonprimatu:

tar xzf hbase-1.1.4-bin.tar.gz

Eta /usr/local-era mugitu:

sudo mv hbase-1.1.4 /usr/local/hbase

.bashrc fitxategiari lerro pare bat gehituko dizkiogu:

nano ~/.bashrc

Eta amaieran itsatsi ondorengoa:

1
2
3
4
#HBASE VARIABLES START
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
#HBASE VARIABLES END

Aldagaiak kargatu:

source ~/.bashrc

HBase konfiguratuko dugu orain. Editatu /usr/local/hbase/conf/hbase-site.xml fitxategia:

nano /usr/local/hbase/conf/hbase-site.xml

Honela utziko dugu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<configuration>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/erabiltzailea/zookeeper</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
</configuration>

hbase.zookeeper.property.dataDir-en ZooKeeper-ek datuak non gordeko dituen ezarriko diogu, jarri zure erabiltzailearen home-an edo nahi duzun beste lekuren batean. Idazteko baimena badu bere kabuz sortuko du.

hbase.rootdir-en HDFS martxan dugun helbidea da eta Hadoop konfiguratu dugunean 9000 portuan jarri dugu. HBase-ren dokumentazioan beste portu bat erabiltzen dute (8020) nahiz eta Hadoop-en gidan 9000 erabiltzen duten, pixkat liosoa da hasiberrientzat…

Martxan jartzeko:

start-hbase.sh

Eta martxan daoela ziurtatzeko exekutatu jps:

1
2
3
4
5
6
7
8
$ jps
7263 HRegionServer
7135 HMaster
6259 NameNode
5807 SecondaryNameNode
7074 HQuorumPeer
7400 Jps
5611 DataNode

Hadoop eta HBase martxan!

ADI!

Ez dugu inolako segurtasunik ezarri. Web nabigatzailearekin zerbitzariaren 50070 eta 16010 portuak (http://zure-ip:50070 eta http://zure-ip:16010) irekitzen badituzu Hadoop eta HBase-ren web interfazeak azalduko zaizkizu, inolako autentikaziorik gabe. Horregatik HBase eta Hadoop zerbitzuak sare pribatuan erabiltzea da gomendioetako bat.

Ez utzi zerbitzua hauek martxan eta Internet-era irekita!


Erreferentziak: