Nchekwa igwe ojii Riak. Nkebi 1: Ịtọlite ​​​​Riak KV

Riak CS (Nchekwa igwe ojii) - ngwanrọ dị mfe iji hazie nchekwa ihe, na-agba n'elu Riak KV. Riak (KV) bụ nchekwa data uru igodo NoSQL ekesara. Emebere Riak CS iji nye mfe, nnweta, nkesa nchekwa igwe ojii nke ọnụ ọgụgụ ọ bụla, enwere ike iji ya wuo ụlọ ọrụ igwe ojii - ma ọha na nke nzuzo - ma ọ bụ dị ka nchekwa akụrụngwa maka ngwa na ọrụ buru ibu. Riak CS API dakọtara na Amazon S3 ma na-akwado ikike ịnata akụkọ gbasara ọnọdụ dị iche iche.

Nchekwa igwe ojii Riak. Nkebi 1: Ịtọlite ​​​​Riak KV
Edemede a bụ ntụgharị n'efu nke akwụkwọ ntuziaka gọọmentị maka ụdị sistemụ Riak CS 2.1.1

Na sistemụ nchekwa Riak CS, akụkụ atọ na-arụkọ ọrụ ọnụ, nke pụtara na a ga-ahazi akụrụngwa nke ọ bụla ka ọ rụọ ọrụ na akụkụ ndị ọzọ:

  • Riak (KV) - usoro nchekwa data na-arụ ọrụ dị ka usoro njedebe.
  • Riak CS - Igwe nchekwa igwe ojii dị n'elu Riak nke na-enye nchekwa na ike API, na-echekwa faịlụ na metadata na Riak, wee kesaa ha ka ndị ọrụ kwụsị.
  • Stanchion - Na-achịkwa ajụjụ metụtara ụlọ ọrụ pụrụ iche dị ka bọket na ndị ọrụ na ihe atụ Riak. Dịka ọmụmaatụ, ịmepụta ndị ọrụ, ịmepụta ma ọ bụ ihichapụ bọket.

Na mgbakwunye, ị nwekwara ike hazie onye ahịa S3 maka iji ya na sistemụ Riak CS ziga ozi.

Ị ga-eme atụmatụ ịnwe otu ọnụ Riak maka ọnụ Riak CS ọ bụla na sistemụ gị. Enwere ike iji igwe anụ ahụ dị iche iche na-agba Riak na Riak CS, mana n'ọtụtụ ọnọdụ ọ ka mma iji otu Riak node na otu Riak CS node n'otu igwe anụ ahụ. Na-eche na otu igwe anụ ahụ nwere ike zuru oke iji gboo mkpa nke ma Riak na Riak CS nodes, ị ga-ahụkwa arụmọrụ ka mma n'ihi mbelata nkwụsị netwọkụ.

Ọ bụrụ na sistemụ gị nwere ọtụtụ ọnụ ọnụ, nhazi bụ isi maka ịtọlite ​​nkwukọrịta n'etiti akụrụngwa. Ntọala ndị ọzọ, dị ka ebe a ga-echekwa faịlụ ndekọ, nwere ụkpụrụ ndabara ma ọ dị mkpa ka ọ gbanwee ma ọ bụrụ na ịchọrọ iji ụkpụrụ na-abụghị ọkọlọtọ.

Ịtọlite ​​​​usoro components. Ịtọlite ​​​​Riak KV maka CS

Ebe Riak CS bụ ngwa wuru n'elu Riak, ọ dị ezigbo mkpa ịṅa ntị na nhazi Riak gị mgbe ị na-agba Riak CS. Akwụkwọ a bụ ma ntuziaka nhazi Riak yana akwụkwọ ntụaka na-akọwa oke nhazi dị mkpa.

Tupu ịtọlite, hụ na etinyere Riak KV na Riak CS n'ọnụ ọnụ ọ bụla na ụyọkọ gị. N'aka nke ọzọ, Stanchion kwesịrị ka etinye ya n'otu ọnụ ọnụ na ụyọkọ dum.

Nchekwa igwe ojii Riak. Nkebi 1: Ịtọlite ​​​​Riak KV

Ndabere maka Riak CS

Ihe ndabere ndabere nke Riak na-eji bụ Bitcask, mana ngwugwu Riak CS gụnyere azụ azụ pụrụ iche nke ụyọkọ Riak nke bụ akụkụ nke usoro Riak CS ga-eji. Ụdị oge niile nwere ọkọlọtọ Multi backend nke na-abịa na Riak.

Otu bọket Riak ndị a na-eji n'ime Riak CS na-eji ndeksi nke abụọ, nke chọrọ ugbu a azụ azụ LevelDB. Akụkụ ndị ọzọ nke sistemụ Riak CS nwere ike irite uru site na iji Bticask backend. A na-etinye ihe nlele Multi backend na Riak CS iji nweta uru nke abụọ a azụ azụ iji nweta nchikota kacha mma nke arụmọrụ na ọrụ. Akụkụ na-esote na-akọwa otu esi ahazi Riak nke ọma iji jiri Multi-backend a.

Azụ azụ bụ ihe Riak ga-eji chekwaa data. Riak KV nwere ọtụtụ azụ azụ na ngwa agha ya: Bitcask, LevelDB, Ebe nchekwa na Multi.

Na mgbakwunye, usoro ngụkọ nchekwa na-eji Riak MapReduse chịkọta faịlụ n'ime bọket. Nke a pụtara na ị ga-agwarịrị ọnụ Riak niile ebe ị ga-achọ faịlụ Riak CS akwadoro tupu ịgbakọ nchekwa.

A ghaghị ịgbanwe ọtụtụ akụkụ ndị ọzọ iji hazie ọnụ ụzọ Riak dị ka akụkụ nke sistemụ Riak CS, dị ka adreesị IP na adreesị IP na ọdụ ụgbọ mmiri maka izi ozi site na Protocol Buffers. Enwere ike ịgbanwe ntọala ndị ọzọ ma ọ dị mkpa. Akụkụ ndị a na-akọwa otu esi ahazi oghere Riak ka ọ rụọ ọrụ dịka akụkụ nke sistemụ Riak CS.

Ịtọlite ​​​​azụ azụ Riak

Nke mbụ, a na-edezi faịlụ nhazi riak.conf ma ọ bụ Advanced.config/app.config. Faịlụ ndị a nwere ike ịdị na /etc/riak ma ọ bụ /opt/riak/etc directories. Site na ndabara, Riak na-eji azụ azụ Bitcask. Ihe mbụ anyị kwesịrị ime bụ ịgbanwe faịlụ nhazi site na iwepu ahịrị ndị a:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

AGAgoro. 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},
]}

Ọzọ, anyị kwesịrị igosipụta mkpa RiakCS modul maka Riak wee kụziere Riak ka ọ jiri azụ azụ ahazi na-enye Riak CS. Anyị kwesịrị iji Advanced.config ma ọ bụ app.config faịlụ maka nke a ma tinye nhọrọ ndị a:

AGAgoro. 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
]}

Ọ dị ezigbo mkpa iburu n'uche na ọtụtụ n'ime ụkpụrụ ndị a ga-adabere n'ụdị ndekọ aha kpọmkwem maka sistemụ arụmọrụ gị, yabụ soro ntuziaka ahụ. Dịka ọmụmaatụ, nhọrọ add_paths na-eche na etinyere Riak CS na /usr/lib/riak-cs, ebe nhọrọ data_root na-eche na etinyere Riak na /var/lib. (Rịba ama: N'ọnọdụ m ọ bụ add_paths - /usr/lib64/riak-cs/).

Nhazi a na-eche na etinyere Riak CS n'otu igwe dị ka Riak. Ọ bụrụ na ọ bụghị, mgbe ahụ, ekwesịrị ka e depụtaghachi ngwugwu ahụ na onye ọbịa dị iche.

Ịtọlite ​​okike nwanne

Ugbu a, anyị kwesịrị ịtọ paramita allow_mult ka ọ bụrụ eziokwu. Anyị nwere ike tinye ahịrị na faịlụ nhazi riak.conf, ma ọ bụ ngalaba riak_core na Advanced.config ma ọ bụ app.config.

RIAK.CONF

buckets.default.allow_mult = true

AGAgoro. 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
]}

Nke a ga-ekwe ka Riak mepụta ụmụnne ndị dị mkpa maka Riak CS ka ọ rụọ ọrụ. Ọ bụrụ na ijikọ na Riak CS site na iji ọba akwụkwọ ndị ahịa, echegbula: ị gaghị edozi esemokwu, ebe ọ bụ na ọrụ Riak CS niile na-agbanwe agbanwe dịka akọwara.

Nwanne bụ ụzọ iji chekwaa ọtụtụ ihe n'otu igodo ka ihe ahụ wee nwee ụkpụrụ dị iche iche na ọnụ ọnụ dị iche iche.

Mara: allow_mult
Ọnụ Riak ọ bụla nke na-akwado Riak CS ga-enwe allow_mult ka ọ bụrụ eziokwu mgbe niile. Riak CS ga-emegharị mmalite ahụ ma ọ bụrụ na uru ahụ bụ ụgha.

Ịtọlite ​​​​aha nnabata na adreesị IP

Ọnụ Riak ọ bụla nwere aha, nke enwere ike ịkọwa ya na riak.conf na nhọrọ nodename. Ọ bụrụ na ị na-eji faịlụ nhazi ngwa.config, ịkwesịrị ịmepụta faịlụ a na-akpọ vm.args n'otu akwụkwọ ndekọ aha dị ka app.config wee kọwaa aha nnabata site na iji ọkọlọtọ -name. Anyị na-akwado ịkọwapụta aha ọnụ n'ụdị @. Ya mere ọ bụrụ na ị nwere ọnụ atọ na-agba ọsọ na otu onye ọbịa 100.0.0.1, ị nwere ike ịkpọ ha [email protected], [email protected]na [email protected] ma ọ bụ ị nwere ike ịnye aha ndị ọzọ akọwapụtara, dịka [email protected], [email protected] were gabazie. Ihe atụ dị n'okpuru na-egosi ịgbanwe aha nnabata ka ọ bụrụ [email protected], nke ga-agba ọsọ na localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Ị ga-enwerịrị aha ọnụ ụzọ niile tupu ịmalite ha na ịbanye na ụyọkọ ahụ.

Nnwale nhazi

Ugbu a ka emechara ntọala ọnụ niile dị mkpa, anyị nwere ike ịgbalị ịmalite Riak:

SHELL

 riak start 

Rịba ama Azịza ya n'ọnọdụ m:

Nchekwa igwe ojii Riak. Nkebi 1: Ịtọlite ​​​​Riak KV

N'ebe a, ịkwesịrị ichere ntakịrị. Mgbe ahụ ị nwere ike ịmalite ịnwale ọnụ na-agba ọsọ.

SHELL

 riak ping

Ọ bụrụ na nzaghachi bụ pong, mgbe ahụ Riak na-agba ọsọ; ọ bụrụ na nzaghachi bụ Node anaghị aza pings, mgbe ahụ, ihe adịghị mma.

Rịba ama Azịza ya n'ọnọdụ m:

Nchekwa igwe ojii Riak. Nkebi 1: Ịtọlite ​​​​Riak KV

Ọ bụrụ na ọnụ ahụ amaliteghị nke ọma, lelee erlang.log.1 log na / log directory nke node ma ọ bụrụ na enwere ike ịchọpụta nsogbu ahụ. Otu n'ime njehie a na-ahụkarị bụ invalid_storage_backend. Nke na-egosi na ụzọ na-aga n'ọbá akwụkwọ Riak CS naAdvanced.config ma ọ bụ na app.config ezighi ezi (ma ọ bụ Riak CS adịghị etinye na ihe nkesa). N'agbanyeghị njehie a, gbaa mbọ hụ na igbanwebeghị site na riak_cs_kv_multi_backend ka ọ bụrụ riak_kv_multi_backend.

Na-ahazi Riak ka ọ jiri nchekwa protocol

Ntọala nchekwa nchekwa nke Riak dị na riak.conf ma ọ bụ na ngalaba riak_api na faịlụ Advanced.config ma ọ bụ ngwa.config, nke dị na /etc/riak/ directory. Site na ndabara, onye ọbịa ahụ nwere adreesị IP nke 127.0.0.1 na ọdụ ụgbọ mmiri 8087. Ị ga-achọ ịgbanwe ndị a ma ọ bụrụ na ị na-eme atụmatụ ịgba ọsọ Riak na Riak CS na mpaghara na-abụghị mpaghara. Dochie 127.0.0.1 na adreesị IP Riak host na ọdụ ụgbọ mmiri 8087 na nke dabara adaba.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

AGBARA.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
]}

Cheta na:Uru nke onye na-ege ntị.protobuf.internal parameter na riak.conf (ma ọ bụ uru nke pb paramita naAdvanced.conf/app.config) faịlụ ga-adabarịrị ụkpụrụ maka riak_host na Riak CS riak-cs.config na Stanchion stanchion.conf (ma ọ bụ riak_host n'otu n'otu na faịlụ .config/app.config) dị elu.

Ihe ndetu banyere nọmba ọdụ ụgbọ mmiri
Enwere ike ịchọ nọmba ọdụ ụgbọ mmiri dị iche ma ọ bụrụ na ọdụ ụgbọ mmiri ahụ na-emegide ọdụ ụgbọ mmiri nke ngwa ọzọ na-eji ma ọ bụ ọ bụrụ na ị na-eji ihe nkwụnye ibu ma ọ bụ ihe nkesa proxy.

A na-atụ aro ka ndị ọrụ hụ na nha Riak protobuf.backlog (ma ọ bụ na Advanced.config/app.config faịlụ nke a bụ pb_backlog) hà nhata ma ọ bụ karịa pool.request.size kpọmkwem maka Riak CS na riak-cs. config (ma ọ bụ request_pool_size na Advanced.config/app.conf faịlụ).

Ọ bụrụ na agbanweela uru nke pool.request.size na Riak CS, mgbe ahụ uru nke protobuf.backlog ga-emelitekwa na Riak.

Ntọala Riak ndị ọzọ

Faịlụ riak.conf na Advanced.config gụnyere ntọala ndị ọzọ na-ahazi imepụta faịlụ ndekọ yana ebe echekwara ha. Ntọala ndị a nwere ụkpụrụ ndabara na kwesịrị ịrụ ọrụ n'ọtụtụ ọnọdụ. Maka ozi ndị ọzọ, anyị na-akwado ịgụ akwụkwọ anyị gbasara faịlụ nhazi.

Ịtọlite ​​​​adreesị IP maka Riak

Mgbe ị na-edozi adreesị IP maka Riak, ị ghaghị ijide n'aka na ọnụ ọgụgụ Riak nwere adreesị IP pụrụ iche, ma ị na-eji naanị otu ọnụ na-arụ ọrụ ma ọ bụ na-agbakwunye ọnụ na usoro ahụ. Adreesị IP Riak dị na riak.conf ma ọ bụ - ọ bụrụ na ị na-eji faịlụ app.config - na faịlụ nhazi vm.args, nke dị n'ebe ahụ na /etc/riak directory (ma ọ bụ /opt/riak/etc/) na sistemụ arụmọrụ ndị ọzọ).

Na mbụ, ahịrị nwere adreesị IP Riak na-atụ aka na localhost na ebe a:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Dochie 127.0.0.1 na adreesị IP masịrị gị ma ọ bụ aha nnabata nke ọnụ Riak.

Ntọala arụmọrụ yana bandwit

Maka ebumnuche arụmọrụ, anyị na-akwado ike ịgbakwunye ụkpụrụ na faịlụ nhazi Riak riak.conf ma ọ bụ vm.args, nke dị na /etc/riak/ ma ọ bụ /opt/riak/etc directory.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Ịgbanyụọ mapụ Javascript

A na-atụ aro ka ị ghara iji Javascript MapReduce nwere ike iji ụdị Riak CS ọ bụla. Maka ebumnuche arụmọrụ, ịkwesịrị gbanyụọ igwe mebere nke na-arụ JavaScript MapReduce arụmọrụ site na ịtọ na faịlụ nhazi riak.conf, ma ọ bụ na ngalaba riak_kv nkeAdvanced.conf ma ọ bụ app.config:

RIAK.CONF

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

AGAgoro. 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
]}

Ọzọ, anyị kwesịrị ịhazi ihe ndị fọdụrụ na sistemụ Riak CS.

Akwụkwọ ntuziaka izizi.

isi: www.habr.com

Tinye a comment