Riak Wolkberging. Deel 1. Opstel van die Riak KV

Riak CS (Wolkberging) – maklik-om-te gebruik sagteware vir die organisering van voorwerpberging, loop bo-op Riak KV. Riak (KV) is 'n verspreide NoSQL sleutel-waarde databasis. Riak CS is ontwerp om eenvoud, beskikbaarheid, verspreiding van wolkberging van enige skaal te verskaf, en kan gebruik word om wolkargitekture te bou - beide publiek en privaat - of as infrastruktuurberging vir hoogs gelaaide toepassings en dienste. Riak CS API is versoenbaar met Amazon S3 en ondersteun die vermoë om verslae oor verskeie situasies te ontvang.

Riak Wolkberging. Deel 1. Opstel van die Riak KV
Hierdie artikel is 'n gratis vertaling van die amptelike handleiding vir die Riak CS-stelsel weergawe 2.1.1

In die Riak CS-bergingstelsel werk drie komponente in samewerking met mekaar, wat beteken dat elke komponent gekonfigureer moet word om met die ander komponente te werk:

  • Riak (KV) – 'n databasisstelsel wat as 'n eindstelsel optree.
  • Riak CS - 'n Wolkberginglaag bo-op Riak wat berging- en API-vermoëns bied, lêers en metadata in Riak stoor en dit dan aan eindgebruikers versprei.
  • Stanchion - Bestuur navrae wat wêreldwyd unieke entiteite soos emmers en gebruikers in die Riak-instansie betrek. Byvoorbeeld, om gebruikers te skep, emmers te skep of uit te vee.

Daarbenewens kan jy ook die S3-kliënt opstel vir gebruik in boodskappe met die Riak CS-stelsel.

Jy moet beplan om een ​​Riak-nodus vir elke Riak CS-nodus op jou stelsel te hê. Riak en Riak CS nodusse kan op verskillende fisiese masjiene uitgevoer word, maar in die meeste gevalle is dit verkieslik om een ​​Riak node en een Riak CS node op dieselfde fisiese masjien te laat loop. Gestel een fisiese masjien het genoeg krag om aan die behoeftes van beide Riak en Riak CS nodusse te voldoen, sal jy oor die algemeen beter werkverrigting sien as gevolg van verminderde netwerkvertraging.

As jou stelsel uit verskeie nodusse bestaan, gaan konfigurasie hoofsaaklik oor die opstel van kommunikasie tussen komponente. Ander instellings, soos waar die loglêers gestoor sal word, het verstekwaardes en hoef slegs verander te word as jy nie-standaardwaardes wil gebruik.

Stel stelselkomponente op. Die opstel van Riak KV vir CS

Aangesien Riak CS 'n toepassing is wat bo-op Riak gebou is, is dit baie belangrik om aandag te gee aan jou Riak-konfigurasie wanneer jy Riak CS bestuur. Hierdie dokument is beide 'n Riak-konfigurasiegids en 'n verwysingsdokument wat belangrike konfigurasieparameters beskryf.

Voor opstelling, maak seker dat Riak KV en Riak CS op elke nodus in jou groep geïnstalleer is. Stanchion, aan die ander kant, moet slegs op een nodus in die hele groep geïnstalleer word.

Riak Wolkberging. Deel 1. Opstel van die Riak KV

Backends vir Riak CS

Die verstek backend wat deur Riak gebruik word, is Bitcask, maar die Riak CS-pakket bevat 'n spesiale backend wat gebruik moet word deur die Riak-kluster wat deel is van die Riak CS-stelsel. Die gewone weergawe het die standaard Multi backend wat saam met Riak kom.

Dieselfde Riak-emmers wat binne Riak CS gebruik word, gebruik sekondêre indekse, wat nou 'n LevelDB-agtergrond vereis. Ander dele van die Riak CS-stelsel kan baat vind by die gebruik van die Bticask-agtergrond. Die gebruik van 'n voorbeeld Multi backend is ingesluit in Riak CS om voordeel te trek uit beide hierdie backends om die beste kombinasie van werkverrigting en funksionaliteit te bereik. Die volgende afdeling beskryf hoe om Riak behoorlik op te stel om hierdie Multi-backend te gebruik.

Agterkant is wat Riak sal gebruik om data te stoor. Riak KV het verskeie backends in sy arsenaal: Bitcask, LevelDB, Memory en Multi.

Boonop gebruik die bergingberekeningstelsel Riak MapReduse om lêers in emmers saam te voeg. Dit beteken dat jy alle Riak-nodusse moet vertel waar om te soek vir voorbereide Riak CS-lêers voordat jy die berging bereken.

Verskeie ander parameters moet verander word om die Riak-nodus as deel van die Riak CS-stelsel op te stel, soos die IP-adres en IP-adres en poort vir boodskappe deur Protokolbuffers. Ander instellings kan verander word indien nodig. Die volgende afdelings beskryf hoe om 'n Riak-nodus op te stel om as deel van die Riak CS-stelsel te werk.

Die opstel van Riak backend

Eerstens word die riak.conf of advanced.config/app.config konfigurasielêers geredigeer. Hierdie lêers kan in /etc/riak- of /opt/riak/etc-gidse geleë wees. By verstek gebruik Riak die Bitcask-agtergrond. Die eerste ding wat ons moet doen is om die konfigurasielêer te verander deur die volgende reël te verwyder:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

GEAVANCEERD.CONFIG

{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}

Vervolgens moet ons die behoefte aan RiakCS-modules vir Riak demonstreer en Riak opdrag gee om die gekonfigureerde backend te gebruik wat Riak CS verskaf. Ons moet die advanced.config- of app.config-lêer hiervoor gebruik en die volgende opsies byvoeg:

GEAVANCEERD.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

APP.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

Dit is baie belangrik om daarop te let dat baie van hierdie waardes sal afhang van gidsvariasies spesifiek vir jou bedryfstelsel, so volg die instruksies dienooreenkomstig. Byvoorbeeld, die add_paths-opsie aanvaar dat Riak CS in /usr/lib/riak-cs geïnstalleer is, terwyl die data_root-opsies aanvaar dat Riak in /var/lib geïnstalleer is. (Let wel: In my geval was dit add_paths - /usr/lib64/riak-cs/).

Hierdie konfigurasie veronderstel dat Riak CS op dieselfde masjien as Riak geïnstalleer is. Indien nie, moet die pakket na 'n aparte gasheer gekopieer word.

Opstel van broer-skepping

Nou moet ons die allow_mult parameter op waar stel. Ons kan 'n reël in die riak.conf-konfigurasielêer byvoeg, of 'n riak_core-afdeling in advanced.config of app.config.

RIAK.CONF

buckets.default.allow_mult = true

GEAVANCEERD.CONFIG

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

APP.CONFIG

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

Dit sal Riak toelaat om broers en susters te skep wat nodig is vir Riak CS om te funksioneer. As jy aan Riak CS koppel deur die kliëntbiblioteek te gebruik, moenie bekommerd wees nie: jy hoef nie konflikte op te los nie, aangesien alle Riak CS-bedrywighede streng konsekwent is soos gedefinieer.

Broer en suster is 'n manier om veelvuldige voorwerpe in een sleutel te stoor sodat die voorwerp verskillende waardes op verskillende nodusse het.

Let wel: allow_mult
Enige Riak-nodus wat ook Riak CS ondersteun, sal te alle tye allow_mult op waar gestel hê. Riak CS sal die bekendstelling terugstel as die waarde vals is.

Stel die gasheernaam en IP-adres in

Elke Riak-nodus het 'n naam, wat in die nodenaam-opsie in riak.conf gespesifiseer kan word. As jy die app.config-konfigurasielêer gebruik, moet jy 'n lêer genaamd vm.args in dieselfde gids as app.config skep en die gasheernaam spesifiseer deur die -name vlag te gebruik. Ons beveel aan om nodusname in die @-formaat te spesifiseer. En as jy dus drie nodusse op een gasheer 100.0.0.1 het, kan jy hulle bel [e-pos beskerm], [e-pos beskerm]En [e-pos beskerm] of jy kan meer spesifieke name gee, soos [e-pos beskerm], [e-pos beskerm] en so aan. Die voorbeeld hieronder toon die verandering van die gasheernaam na [e-pos beskerm], wat op localhost sal loop.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

U moet alle nodusse benoem voordat u dit begin en by die groep aansluit.

Opstel toets

Noudat al die nodige nodusinstellings voltooi is, kan ons probeer om Riak te begin:

SHELL

 riak start 

Let wel Die antwoord in my geval:

Riak Wolkberging. Deel 1. Opstel van die Riak KV

Hier moet jy 'n bietjie wag. Dan kan jy begin om die lopende nodus te toets.

SHELL

 riak ping

As die reaksie pong is, dan hardloop Riak; as die reaksie is Node wat nie op pings reageer nie, dan het iets verkeerd geloop.

Let wel Die antwoord in my geval:

Riak Wolkberging. Deel 1. Opstel van die Riak KV

As die nodus nie reg begin het nie, kyk na die erlang.log.1 log in die /log gids van die node as die probleem geïdentifiseer kan word. Een van die mees algemene foute is invalid_storage_backend. Wat aandui dat die pad na die Riak CS-biblioteek in advanced.config of in app.config verkeerd is (of Riak CS is nie op die bediener geïnstalleer nie). Ten spyte van hierdie fout, maak seker dat jy nie van riak_cs_kv_multi_backend na riak_kv_multi_backend verander het nie.

Konfigureer Riak om protokolbuffers te gebruik

Die Riak-protokolbufferinstellings is geleë in riak.conf of in die riak_api-afdeling in die advanced.config- of app.config-lêers, wat in die /etc/riak/-gids geleë is. By verstek het die gasheer 'n IP-adres van 127.0.0.1 en poort 8087. Jy sal dit moet verander as jy van plan is om Riak en Riak CS in 'n nie-plaaslike omgewing te laat loop. Vervang 127.0.0.1 met die Riak-gasheer-IP-adres en poort 8087 met 'n geskikte een.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

GEVORDERDE.CONF

{riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

APP.CONFIG

riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

Let wel:Die waarde van die listener.protobuf.internal parameter in die riak.conf (of die waarde van die pb parameter in advanced.conf/app.config) lêer moet ooreenstem met die waardes vir riak_host in Riak CS riak-cs.config en Stanchion stanchion.conf (of riak_host onderskeidelik in gevorderde .config/app.config) lêers.

'n Nota oor die poortnommer
'n Ander poortnommer mag dalk vereis word as die poort bots met poorte wat deur 'n ander toepassing gebruik word of as jy 'n lasbalanseerder of instaanbediener gebruik.

Dit word ook aanbeveel dat gebruikers verseker dat die Riak protobuf.backlog-grootte (of in advanced.config/app.config-lêers is dit pb_backlog) gelyk is aan of groter is as die pool.request.size wat vir Riak CS in riak-cs gespesifiseer is. config (of request_pool_size in advanced.config/ app.conf-lêers).

As die waarde van pool.request.size in Riak CS verander is, dan moet die waarde van protobuf.backlog ook in Riak opgedateer word.

Ander Riak instellings

Die riak.conf- en advanced.config-lêers sluit ander instellings in wat die skep van loglêers konfigureer en waar dit gestoor word. Hierdie instellings het verstekwaardes en behoort in die meeste gevalle te werk. Vir meer inligting, beveel ons aan om ons dokumentasie oor konfigurasielêers te lees.

Stel 'n IP-adres vir Riak op

Wanneer jy 'n IP-adres vir Riak opstel, moet jy seker wees dat die Riak-nodusse 'n unieke IP-adres het, of jy nou met net een nodus werk of meer nodusse by die stelsel voeg. Die Riak IP-adres is vervat in riak.conf of - as jy die app.config-lêer gebruik - in die vm.args-konfigurasielêer, wat daar in die /etc/riak-gids geleë is (of /opt/riak/etc/) op ander bedryfstelsels).

Aanvanklik wys die lyn wat die Riak IP-adres bevat na die plaaslike gasheer op hierdie plek:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Vervang 127.0.0.1 met jou voorkeur IP-adres of gasheernaam van die Riak-nodus.

Werkverrigting en bandwydte-instellings

Om prestasieredes, beveel ons sterk aan om waardes by te voeg tot die Riak-konfigurasielêers riak.conf of vm.args, geleë in die /etc/riak/ of /opt/riak/etc gids.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536

Deaktiveer JavaScript MapReduce

Dit word aanbeveel om nie verouderde JavaScript MapReduce met enige weergawe van Riak CS te gebruik nie. Om prestasieredes moet jy die virtuele masjien wat JavaScript MapReduce-bewerkings uitvoer deaktiveer deur in die riak.conf-konfigurasielêer, of in die riak_kv-afdeling van advanced.conf of app.config in te stel:

RIAK.CONF

 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 

GEAVANCEERD.CONFIG

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

APP.CONFIG

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

Vervolgens moet ons die oorblywende komponente van die Riak CS-stelsel konfigureer.

Oorspronklike handleiding.

Bron: will.com

Voeg 'n opmerking