Apache Cassandra 2.0 Przewodnik instalacji i kon guracji w ... inf89719/cassandra/deployment......

download Apache Cassandra 2.0 Przewodnik instalacji i kon guracji w ... inf89719/cassandra/deployment... Apache

of 21

  • date post

    26-Sep-2020
  • Category

    Documents

  • view

    1
  • download

    0

Embed Size (px)

Transcript of Apache Cassandra 2.0 Przewodnik instalacji i kon guracji w ... inf89719/cassandra/deployment......

  • Apache Cassandra 2.0

    Przewodnik instalacji i kon�guracji w systemie Debian

    Wheezy

    Jan Baranowski, Michaª Kaik

    Politechnika Pozna«ska

    18 czerwca 2014

    1 Wst¦p

    Niniejszy dokument ma za zadanie przedstawi¢ proces instalacji i kon�guracji serwera baz danych NoSQL Apache Cassandra w ±rodowisku rozproszonym. Na potrzeby demonstracji zakªada si¦ »e ±rodowisko to b¦dzie skªada¢ si¦ z kilku w¦zªów poª¡czonych sieci¡ lokaln¡.

    Apache Cassandra jest serwerem baz danych NoSQL, pocz¡tkowo rozwijanym przez Facebooka na potrzeby umo»liwienia efektywnego wyszukiwania wiadomo±ci w skrzynce odbiorczej. Obecnie (od marca 2009 roku) Cassandra jest rozwijana przez Apache Foundation (jako jeden z projektów top-level) i stanowi podstaw¦ dla zestawu narz¦dzi DataStax.

    Cassandra powstaªa jako narz¦dzie maj¡ce w zaªo»eniu cechowa¢ si¦:

    • wysok¡ dost¦pno±ci¡ (Cassandra jest okre±lana jako zawsze zapisywalna baza danych)

    • niskim opó¹nieniem wykonywanych operacji (ang. latency)

    • odporno±ci¡ na awarie (mo»liwo±ci¡ replikacji danych, brakiem komponentów, których awaria mo»e zdestabilizowa¢ system (ang. single points of failure))

    • mo»liwo±ci¡ regulacji kompromisu pomi¦dzy szybko±ci¡ dziaªania a odporno±ci¡ na awarie i spójno±ci¡ replik

    • relatywnie prostym modelem danych

    Zarówno opisanie kolumnowego modelu danych wykorzystywanego w Cassandrze, jak i mecha- nizmów, dzi¦ki którym speªnia ona zaªo»enia projektowe nie jest celem tego dokumentu. Autorzy mog¡ jedynie poda¢ propozycje publikacji, które opisuj¡ wspomniane zagadnienia. Zarówno dla modelu danych, jak i budowy wewn¦trznej Cassandry b¦dzie to przede wszystkim dokumentacja udost¦pniana przez �rm¦ DataStax [4]. Kolumnowy model danych, przedstawiony z perspektywy osób pracuj¡cych z bazami relacyjnymi zostaª doskonale (cho¢ mo»e zbyt obszernie) opisany w Cas- sandra � The De�nitive Guide [3]. Z kolei architektura Cassandry w du»ym skrócie (cho¢ zapewne w sposób wystarczaj¡cy by sªu»y¢ jako wst¦p do tego dokumentu) zostaªa przedstawiona w prezen- tacji [2].

    Procedur¦ przygotowania klastra przedstawiono na przykªadzie systemu operacyjnego Debian GNU/Linux 6, poniewa» uchodzi on za jedno z lepszych rozwi¡za« dla serwerów.

    1

  • 2 Wybór dystrybucji

    Na samym pocz¡tku nowi u»ytkownicy Cassandry staj¡ przed wyborem dystrybucji tego opro- gramowania. Mo»liwo±ci s¡ dwie: instalacja standardowej wersji dostarczonej przez Apache Founda- tion oraz instalacja platformy DataStax � zestawu narz¦dzi obudowuj¡cych Cassandr¦ i dostarcza- j¡cych m.in. funkcje pozwalaj¡ce na uproszczenie zarz¡dzania klastrem, wizualne monitorowanie, analiz¦ obci¡»e« w¦zªów, itp. (por. rysunek 1).

    Rysunek 1: architektura DataStax w odniesieniu do Cassandry, ¹ródªo: [15]

    Wybór jest wa»ny o tyle, »e pomimo wspólnego fundamentu, jakim jest Cassandra, procesy instalacji obu dystrybucji nie maj¡ ze sob¡ nic wspólnego, tj. (wedªug wiedzy autorów) nie da si¦ doinstalowa¢ do dystrybucji Apache platformy DataStax.

    W tym miejscu nale»y wspomnie¢ o twórcach platformy � �rmie o zaskakuj¡cej nazwie Da- taStax, zajmuj¡cej si¦ dostosowaniem Cassandry do potrzeb przedsi¦biorstw poprzez m.in. rozwój i testowanie bazy danych, dostarczanie narz¦dzi uªatwiaj¡cych administracj¦ systemem, organizacj¦ szkole«, certy�kacj¦ personelu technicznego, itd. Bodaj najbardziej znacz¡cym wkªadem DataStax w rozwój projektu jest opracowanie szeregu driverów/konektorów dla ró»nych j¦zyków programo- wania, dzi¦ki którym programi±ci mog¡ korzysta¢ z Cassandry w sposób analogiczny do rozwi¡za« relacyjnych (np. tak jak w przypadkuMySQL Connectors, por. [11]) i rozbudowa dokumentacji tech- nicznej platformy, wª¡czaj¡c w to dokumentacj¦ plików kon�guracyjnych, architektury Cassandry i j¦zyka CQL (odpowiednika SQL dla kolumnowych baz danych).

    Na potrzeby niniejszego dokumentu zaªo»ono, »e wªa±ciwym wyborem b¦dzie dystrybucja Apa- che Cassandra, ze wzgl¦du na to, »e dokument ma peªni¢ rol¦ wprowadzenia do technologii, nie za± pozwala¢ na bªyskawiczne wdro»enie systemu (ang. rapid deployment). Poza tym, przewodniki instalacji i kon�guracji DataStaxa dost¦pne s¡ np. na stronie [12].

    3 Instalacja

    Cassandra zostanie zainstalowana przy u»yciu narz¦dzia APT z repozytorium Apache Software Foundation. Wymagane b¦dzie dodanie odpowiedniego repozytorium do listy ¹ródeª APTa. Dodat- kowo ze wzgl¦du na to, »e Cassandra napisana jest w Javie, pokazany zostanie proces instalacji Oracle JRE w systemie Debian (ta maszyna wirtualna jest zalecana przez twórców Cassandry).

    3.1 Wybór maszyny wirtualnej Java

    Apache Software Foundation dostarcza pakiety zawieraj¡ce Cassandr¦ w formacie *.deb, a tak»e repozytorium dla APTa. Jedn¡ z zale»no±ci pakietu cassandra jest pakiet openjdk-7-jre. Jest to w pewnym sensie sprzeczne z zaleceniami twórców bazy danych, poniewa» ci rekomenduj¡ maszyn¦ wirtualn¡ Oracle jako ±rodowisko uruchomieniowe (nawet w testowanej wersji bazy 2.0 odpowiedni

    2

  • komunikat wy±wietlany jest w logu). Nie zmienia to faktu, »e testy (funkcjonalne, lecz nie wydaj- no±ciowe) przeprowadzone na potrzeby tego artykuªu udowodniªy, »e Cassandra dziaªa bez zarzutu tak»e w ±rodowisku OpenJDK.

    Nale»y zatem wybra¢ pomi¦dzy stosowaniem si¦ do zalece« a prostot¡ instalacji.

    3.2 Instalacja i kon�guracja Oracje Java

    Pakiet z OpenJDK jest instalowany jako pakiet zale»ny podczas instalacji Cassandry. Je»eli jednak administrator zdecyduje si¦ u»y¢Oracle JVM, poni»ej przedstawiona jest skrótowa procedura instalacji tego oprogramowania w systemie Debian. Stanowi ona kompilacj¦ najprostszych rozwi¡za« i tym ró»ni si¦ od wi¦kszo±ci przewodników dost¦pnych w internecie, »e poza konsol¡ systemu nie wymaga »adnych dodatkowych narz¦dzi (np. mechanizmu transferu plików z maszyny-terminala do maszyny-serwera).

    Pierwszym krokiem jest pobranie pakietu oprogramowania (JRE, nie JDK) ze strony Oracle. Standardowo by pobra¢ plik nale»y zaakceptowa¢ umow¦ licencyjn¡, jednak przy odpowiedniej kon�guracji mo»liwe jest omini¦cie tego kroku [9]:

    Listing 1: pobieranie Oracle JRE

    $ wget --no-cookies \

    > --no-check-certificate \

    > --header "Cookie: oraclelicense=accept-securebackup-cookie" \

    > "http://download.oracle.com/otn-pub/java/jdk/7u60-b19/jre-7u60-linux-i586.tar.gz" \

    > -O /tmp/jre-7u60-linux-i586.tar.gz

    Popularnym sposobem instalacji pobranego oprogramowania jest wypakowanie archiwum (za- zwyczaj do katalogu /opt) i r¦czna kon�guracja ±cie»ki systemowej (por. [9]). Debian dostarcza jednak narz¦dzie pozwalaj¡ce przekonwertowa¢ archiwum do pakietu DEB [10].

    Nale»y je zainstalowa¢, a potem u»y¢:

    Listing 2: budowa pakietu DEB z Oracle JRE

    $ apt-get install java-package

    $ fakeroot make-jpkg /tmp/jre-7u60-linux-i586.tar.gz

    Powstaªy w ten sposób pakiet DEB nale»y zainstalowa¢. Po instalacji nale»y ustawi¢ Oracle JVM jako domy±ln¡ maszyn¦ wirtualn¡ w systemie.

    Listing 3: instalacja i kon�guracja Oracle JRE

    $ dpkg -i /tmp/oracle-j2re1.7_1.7.0+update60_i386.deb

    $ update-alternatives --config java

    There are 2 choices for the alternative java (providing /usr/bin/java).

    Selection Path Priority Status

    ------------------------------------------------------------

    0 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 auto mode

    * 1 /usr/lib/jvm/j2re1.7-oracle/bin/java 316 manual mode

    2 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 manual mode

    Press enter to keep the current choice[*], or type selection number:

    $ java -version

    java version "1.7.0_60"

    Java(TM) SE Runtime Environment (build 1.7.0_60-b19)

    Java HotSpot(TM) Client VM (build 24.60-b09, mixed mode)

    3

  • Wedªug wiedzy autorów Cassandra nie wymaga ustawiania zmiennej JAVA_HOME dla »adnego z u»ytkowników (ani roota, ani u»ytkownika cassandra, wªa±ciciela demona). Je»eli jednak zajdzie taka potrzeba, zainstalowane maszyny wirtualne mo»na znale¹¢ w katalogu /usr/lib/jvm.

    Listing 4: ustawianie JAVA_HOME

    $ echo "export JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/" >> /home//.bashrc

    3.3 Kon�guracja repozytorium

    By móc zainstalowa¢ Cassandr¦, nale»y doda¢ odpowiednie repozytorium Apache Software Fo- undation do ¹ródeª programu APT. Zgodnie z konwencj¡ ka»da wi¦ksza wersja Cassandry znajduje si¦ w osobnym repozytorium. Na potrzeby tego dokumentu w systemie testowym zostanie zainsta- lowana Cassandra 2.0.8.

    Do pliku /etc/apt/sources.list nale»y dopisa¢:

    Listing 5: nowe ¹ródªa pakietów dla APTa

    deb http://www.apache.org/dist/cassandra/debian 20x main

    deb-src http://www.apache.org/dist/cassandra/debian 20x main

    Próba pobrania spisu zawarto±ci repozytorium zako«czy si¦ niepowodzeniem, poniewa» APT nie zna kluczy publicznych dla repozytorium Apache Software Foundation. Te nale»y doda¢ w na- st¦puj¡cy sposób:

    Listing 6: pobieranie kluczy publicznych repozytorium ASF

    $ gpg --keyserver pgp.mit.edu --recv-keys F758CE318D77295D

    $ gpg --export --armor F758CE318D77295D | sudo apt-key add -

    $ gpg --keyserver pgp.mit.edu --recv-keys 2B5C1B00

    $ gpg --export --armor 2B5C1B00 | sudo apt-key add -

    Po zako«czeniu wszystkich operacji nale»y pobra¢ spis zawarto±ci repozytori