Кассандра не выбирает initial_token

Я следую официальной документации по процедуре восстановления снимка. в новый кластер. Согласно этому,

4. Clear the system table data from each new node:
$ sudo rm -rf /var/lib/cassandra/data/system/*
This allows the new nodes to use the initial tokens defined in the cassandra.yaml when they restart.

5. Start each node using the specified list of token ranges in new cluster's cassandra.yaml:
initial_token: -9211270970129494930, -9138351317258731895, -8980763462514965928, ...

Я точно следую этим 2 шагам. На самом деле это подтверждается журналами отладки cassandra.

INFO  [main] 2017-11-16 09:36:59,353 Config.java:456 - Node configuration:[allocate_tokens_for_keyspace=null; authenticator=AllowAllAuthenticator; authorizer=AllowAllAuthorizer; auto_bootstrap=true; auto_snapshot=true; batch_size_fail_threshold_in_kb=50; batch_size_warn_threshold_in_kb=5; batchlog_replay_throttle_in_kb=1024; broadcast_address=null; broadcast_rpc_address=null; buffer_pool_use_heap_if_exhausted=true; cas_contention_timeout_in_ms=1000; client_encryption_options=<REDACTED>; cluster_name=cassandra-staging-restored; column_index_cache_size_in_kb=2; column_index_size_in_kb=64; commit_failure_policy=stop; commitlog_compression=null; commitlog_directory=/mnt/cassandra/data/commitlog; commitlog_max_compression_buffers_in_pool=3; commitlog_periodic_queue_size=-1; commitlog_segment_size_in_mb=32; commitlog_sync=periodic; commitlog_sync_batch_window_in_ms=null; commitlog_sync_period_in_ms=10000; commitlog_total_space_in_mb=null; compaction_large_partition_warning_threshold_mb=100; compaction_throughput_mb_per_sec=16; concurrent_compactors=null; concurrent_counter_writes=32; concurrent_materialized_view_writes=32; concurrent_reads=32; concurrent_replicates=null; concurrent_writes=32; counter_cache_keys_to_save=2147483647; counter_cache_save_period=7200; counter_cache_size_in_mb=null; counter_write_request_timeout_in_ms=5000; credentials_cache_max_entries=1000; credentials_update_interval_in_ms=-1; credentials_validity_in_ms=2000; cross_node_timeout=false; data_file_directories=[Ljava.lang.String;@43301423; disk_access_mode=auto; disk_failure_policy=stop; disk_optimization_estimate_percentile=0.95; disk_optimization_page_cross_chance=0.1; disk_optimization_strategy=ssd; dynamic_snitch=true; dynamic_snitch_badness_threshold=0.1; dynamic_snitch_reset_interval_in_ms=600000; dynamic_snitch_update_interval_in_ms=100; enable_scripted_user_defined_functions=false; enable_user_defined_functions=false; enable_user_defined_functions_threads=true; encryption_options=null; endpoint_snitch=SimpleSnitch; file_cache_size_in_mb=null; gc_warn_threshold_in_ms=1000; hinted_handoff_disabled_datacenters=[]; hinted_handoff_enabled=true; hinted_handoff_throttle_in_kb=1024; hints_compression=null; hints_directory=/mnt/cassandra/data/hints; hints_flush_period_in_ms=10000; incremental_backups=true; index_interval=null; index_summary_capacity_in_mb=null; index_summary_resize_interval_in_minutes=60; initial_token=-9095105683159122588, -9064001015036599926, -9013000709875877114, -8829167773634478741, -8730304531409075421, -8615439886540673174, -8270623326447012978, -8176731878564157082, -8106822260307184341, -8089230042068892584, -8048906315856045311, -8028060929375944874, -7997403222481000091, -7980484429523277359, -7974470050771642191, -7851931228156318619, -7803664353182134419, -7788144370469500201, -7757626955856652301, -7712114049802319218, -7567720775920874700, -7551341429242695915, -7541865877881094180, -7514992388769119302, -7453108576041420033, -7431137934229111567, -7385697214426296194, -7326461701752475949, -7229952075030336177, -7218589485893294366, -7135605539700697459, -7062493953257887070, -6920687217081027707, -6916831669158286277, -6834053763268440089, -6822142837027528938, -6803094670398379101, -6602427539566207665, -6568182869870496307, -6511459920765505444, -6475249533685490199, -6428402884562770941, -6404676233544011759, -6360685224996369272, -6247121131610539884, -6246197555819424550, -6237368585021940017, -6153182247036415095, -6111450384148334970, -6042018771685803203, -5944793473876873149, -5863379160236916223, -5856475313797546183, -5832717016324856051, -5638468189438508210, -5539167370710819367, -5485280601523987503, -5474309089162218374, -5319174053461867928, -5300518577149097037, -5245536441075283612, -5112569688111722752, -4898240302203107111, -4881568115746221858, -4824104622873342498, -4701179017811291386, -4429755340063878775, -4413214557193145518, -4345418978114596882, -4079966796765885842, -4061762443047240866, -4030858175577795653, -4021547736638981847, -3836302740108504981, -3751768720526789019, -3743461742087956083, -3608810097734181459, -3607048178493709454, -3581158125752648978, -3562376827907111596, -3534668228830524620, -3431416556842048483, -3393885233868129949, -3339504094398301776, -3339170395338364082, -3307612236986384680, -3265920212434927166, -3204785075022793989, -3140386460827349755, -3099066887010465462, -3080689217189133335, -3007133744629835172, -2959846903344801620, -2888247723844507160, -2797992536166356195, -2712194459828626645, -2684177990525837322, -2658075701966969657, -2561917844478305786, -2492629295365129028, -2487719825222497546, -2399789247381255821, -2241309724624423586, -2108173119695457257, -2052360610564904726, -1939271054812802955, -1917043893384955146, -1808888302673267763, -1646863387940805021, -1634994825307804368, -1609712683106528653, -1300771381145801651, -1278385576576119381, -1274643898977022746, -950901630804463153, -940580146197028656, -731515730336327054, -642040964228514704, -608433393788453231, -478573951386945456, -436153095069462168, -416275106775833677, -378149959056786595, -346798880456427869, -305717523770204725, -284546652114461767, -166337978258482678, -101574744252082785, -30754271282451326, -6946162971722353, -4662052994008400, 68233019263256270, 126207333796953658, 132958619259436796, 166586855936325288, 180257471364193954, 222412061324634542, 299152219068289859, 307967555141655158, 499885456475913627, 510710569344453193, 512082871639239079, 551467999030970818, 560270740776978967, 563581994761305584, 687058605177782549, 793693682518320692, 917345500055208403, 935027642243141249, 1167582121991529631, 1177005535757550036, 1226282557885818866, 1279109759358271230, 1376609314865350358, 1388467321396881673, 1422156903349974253, 1475548349950097082, 1586261249441981681, 1594387271495404471, 1637548112971596569, 1759270488237130010, 1936016394983722984, 1991608383818464987, 2208451829114082571, 2242674193749084268, 2461080713362404466, 2539772799528407861, 2559844306686112571, 2620884963938532750, 2631650124112820870, 2664129588892760377, 2704157604972767845, 2736768902813611411, 2843328646543212128, 2856803091245137446, 2872960500638572538, 3138686478845054074, 3162031242206258542, 3185538412991024850, 3256233823832431553, 3284337403758100585, 3382411519818362465, 3490207566034869602, 3594317170903296648, 3669639735626576929, 3787200951518921417, 3805575545151951881, 3930156481299524524, 4109302677069830167, 4162318623147816383, 4174122441845031013, 4184778082562775012, 4333398546246868435, 4429402131470597299, 4454026097116561450, 4505802367873280245, 4538296977730990054, 4556607070107659214, 4570854427961759192, 4623296353148907992, 4679204413345951708, 4835621991534530902, 4873358208143831472, 4877348486234759943, 4909265243325179596, 4916889701925751547, 5050438954348872869, 5095687454372630280, 5225622553567840544, 5362122150810830638, 5453189930700137106, 5607985707233264385, 5627412929991624017, 5715642638971959215, 5792552742790972143, 5958282382337339668, 5966221173142140715, 6034708041737829912, 6035042265093059146, 6044918925766439026, 6117274929043661295, 6287231019632644302, 6317296677286381680, 6347246668613761526, 6386913449650684351, 6484548945192165912, 6809960070854586220, 7007749647532345769, 7064744556786092960, 7188015426890314535, 7381000932719845319, 7587261946507044657, 7642859702759477380, 7880162680349272441, 7908612477022491169, 7933323898613557131, 7937658449054724067, 7970141900392419694, 7979202070554210097, 7990763252197782986, 7995201022333707512, 7995792407943250493, 8140167553977835725, 8207869160118839667, 8384513993725731980, 8425627379584317458, 8450167920418959385, 8558753444678316624, 8635896206896058589, 8655999832148389735, 8749247593003798317, 8793336959659815954, 8811175299936105223, 8960172117500802825, 9082531635065196023, 9119004294127950942; inter_dc_stream_throughput_outbound_megabits_per_sec=200; inter_dc_tcp_nodelay=false; internode_authenticator=null; internode_compression=dc; internode_recv_buff_size_in_bytes=null; internode_send_buff_size_in_bytes=null; key_cache_keys_to_save=2147483647; key_cache_save_period=14400; key_cache_size_in_mb=null; listen_address=10.120.8.116; listen_interface=null; listen_interface_prefer_ipv6=false; listen_on_broadcast_address=false; max_hint_window_in_ms=10800000; max_hints_delivery_threads=2; max_hints_file_size_in_mb=128; max_mutation_size_in_kb=null; max_streaming_retries=3; max_value_size_in_mb=256; memtable_allocation_type=heap_buffers; memtable_cleanup_threshold=null; memtable_flush_writers=1; memtable_heap_space_in_mb=null; memtable_offheap_space_in_mb=null; native_transport_max_concurrent_connections=-1; native_transport_max_concurrent_connections_per_ip=-1; native_transport_max_frame_size_in_mb=256; native_transport_max_threads=128; native_transport_port=9042; native_transport_port_ssl=null; num_tokens=256; otc_coalescing_strategy=TIMEHORIZON; otc_coalescing_window_us=200; partitioner=org.apache.cassandra.dht.Murmur3Partitioner; permissions_cache_max_entries=1000; permissions_update_interval_in_ms=-1; permissions_validity_in_ms=2000; phi_convict_threshold=8.0; prepared_statements_cache_size_mb=null; range_request_timeout_in_ms=10000; read_request_timeout_in_ms=5000; request_scheduler=org.apache.cassandra.scheduler.NoScheduler; request_scheduler_id=null; request_scheduler_options=null; request_timeout_in_ms=10000; role_manager=CassandraRoleManager; roles_cache_max_entries=1000; roles_update_interval_in_ms=-1; roles_validity_in_ms=2000; row_cache_class_name=org.apache.cassandra.cache.OHCProvider; row_cache_keys_to_save=2147483647; row_cache_save_period=0; row_cache_size_in_mb=0; rpc_address=10.120.8.116; rpc_interface=null; rpc_interface_prefer_ipv6=false; rpc_keepalive=true; rpc_listen_backlog=50; rpc_max_threads=2147483647; rpc_min_threads=16; rpc_port=9160; rpc_recv_buff_size_in_bytes=null; rpc_send_buff_size_in_bytes=null; rpc_server_type=sync; saved_caches_directory=/mnt/cassandra/data/saved_caches; seed_provider=org.apache.cassandra.locator.SimpleSeedProvider{seeds=10.120.8.233,10.120.8.213,10.120.8.116,10.120.8.29,10.120.8.251}; server_encryption_options=<REDACTED>; snapshot_before_compaction=false; ssl_storage_port=7001; sstable_preemptive_open_interval_in_mb=50; start_native_transport=true; start_rpc=false; storage_port=7000; stream_throughput_outbound_megabits_per_sec=200; streaming_socket_timeout_in_ms=86400000; thrift_framed_transport_size_in_mb=15; thrift_max_message_length_in_mb=16; thrift_prepared_statements_cache_size_mb=null; tombstone_failure_threshold=100000; tombstone_warn_threshold=1000; tracetype_query_ttl=86400; tracetype_repair_ttl=604800; transparent_data_encryption_options=org.apache.cassandra.config.TransparentDataEncryptionOptions@2f112965; trickle_fsync=false; trickle_fsync_interval_in_kb=10240; truncate_request_timeout_in_ms=60000; unlogged_batch_across_partitions_warn_threshold=10; user_defined_function_fail_timeout=1500; user_defined_function_warn_timeout=500; user_function_timeout_policy=die; windows_timer_interval=1; write_request_timeout_in_ms=2000

Но initial_tokens — это те, которые были автоматически сгенерированы cassandra при первом запуске.

INFO  [main] 2017-11-16 05:52:57,322 StorageService.java:1030 - Generated random tokens. tokens are [-1389648523687197109, -732698274772120137, -6376639320886405616, -873424736264959023, 8595953819512872578, 6773654626092013980, 9148695480551165081, 8209470968081970646, 9110581623169741801, 8012929209487966833, 7452692620314248468, 3103266257146948503, 5679525578987403003, -4522063905876778141, -6135750996189542432, 415784996037656153, 4396058137183394429, 692447961111726586, -6531662267543500154, 245834976461441926, -3064167806548065705, 8943572903844965496, -8638802229987964486, -8160083686661602566, -3050334815467563212, -8542758292854754936, 5709282354905481607, 88986928287276648, 1373249395890303055, -1686001724516419324, -396828971815045007, -8794909476111352967, -222280635739262458, -5414806845469275848, -2054698046151951295, -3554921400589962677, -7505704101012649583, 4179877325296378655, 7507175622338132461, -3496771293631065989, -3269044636044041612, -2009963074060585591, -2105986620005447634, 5330076034215385934, -4344640060181026104, 617483922231457714, 6465679396586550255, 5268797296416377890, 8377470147983205477, -8297832552754006887, -74853680046366003, -2872441811245832825, -2916068111566416056, 8408680662553618809, -2520357715711164569, -1560036757814314210, -5257702498481345613, -1017232662177787435, -4767292845107768798, -907567868062273876, 8870536721819084448, -6581232938993081706, 3822595822833559746, -7289338527755522826, -7639859898047414864, -4037700692557190365, 5049983552065810879, -5561302251870351386, 4621684495888003169, -3131443300514015633, -1160430662405286954, -8097490517397089231, -7348298090590090758, 5509208719656812112, -6481250052576231824, -5996741154396422167, -8294729397011283217, 2995257461252438837, -4352117679133792335, 1233012258201042528, 9035122281098363653, 6405344801897697404, 8708109275467472592, 8539949944069553390, 213833451306356755, -4166035949030694285, -8970221914082044097, 4606844533012524108, 947526220642208048, -2801978367402508153, -4532865176940942027, -1594392693891556555, -5806887334100689059, -2394088246665207424, 4234652354740925563, -8076001124699026366, 8744811137913444802, 62796481248292599, 6455733404981444252, -126533974378819127, 5843584371728823073, 5445168425290460940, 6707320880322895668, 4573751191752231090, -2127663589976413582, 1954401089317717447, -5300938135871221896, 5093721835155884661, -2524179837794403109, -6385219008186858160, 7325353601705788106, -840570978863751222, 5759885770816159939, 9072054183035599574, -8308763822241266759, -2586762965601191160, -432658258571974620, 3019044186650827069, 5726665958978111481, 6052672856134820217, 7838411235214044945, 2112902061202895279, 6260813920434498398, -8658490402119023263, 2928460241999085176, -8088631625855485121, -3893350039068301015, -1883547399497783790, -4931508961242998715, 1962026677878034467, -3536945581565756993, -3980665635466622441, 1616177331508810053, 4312023170834343978, 2878951844701050184, 7237763498599271588, -4143611656813097424, -3034833307460628079, -8631680602869413810, -5149492198682224552, -2010682875598030955, 2599132540851755500, -2955657629453800874, 7849160639412118736, 4066126615292533141, 8785492290797937036, -2425804637592817359, -81469586499474786, -8457085973377633413, 7938935767281129568, 5555025259044091280, -928104310141668027, 7576407531657016973, 1924068444759082739, -714923442136005577, -7424796994965823987, -8286550103460241539, 3795917762129273051, -8178762033443435991, 199935774895264752, 7223315731747941169, 2131952788031994270, -5924194093356500134, 8312801612720650647, -3455990260940501757, -6752550707935826850, -6601973406625917854, 1003897288641305994, -2311356538255289914, 6198153789687000292, 4371280172613277105, -3103750689457909819, -4749463815536259135, -371035516354562506, -3121297865532053724, 8982910635457246180, -1228260466727841004, -8870629066952254909, -526008540797435088, -5031238755845142021, -8363050244592607033, 1050601700640744024, -9104611786673170314, -4479945644147199241, -6823419782998328301, -6797181997798727850, 5481659148496729987, -8215699248520360452, -517420190806294229, 3787637764983639252, 2805777124248862676, 847375026463710908, -752806257333244860, -5802733257867073965, -6973496662755627239, 3473454836096478605, 5913384000201698403, -5389236760772073822, -8414280654740947122, 3781334199812295253, 7106186427969879811, -5793392653945612514, 4025496630557953873, 2029509328065975744, 7572757562784032698, -2409285778846785268, 8978472449360675819, 1502576153090782858, -524754924171314294, -5430506207796491830, -3681655679894962053, 5884494403462724943, 7057525460429085795, 6045128197566372326, 3068439635150742873, 5459483613324200529, -1099342907611602685, -8333623299114170297, 5575333565033227947, -8354986150955517165, 8957282480649403114, -4820459891421864876, 6809654053429862128, 4545870922630195580, 7197311542935486176, -2224608079234315120, -2141755264538606024, 2567830060494624486, -6270558622819592064, -4631885184728004763, 5954771488972332706, 7426073577700947604, 9036595665094295454, -549019315323478217, -7605262589627026961, 7538503311332390280, 5243496430380841675, -5125800136257737648, -189067622801948902, 6609318324048658940, -6407003720857192075, 6821243825376985989, -8663409582093444260, -8403726365964456251, -6966940567562465809, 2209597621040018613, -785009207590992232, 7148233497746128406, 8290593398169627427, -1934557347998048138, -1747811994016572301, -5360972975488153447, -4344532326911873111, -2181569417592666651, -5367930324551905863, -7161819751367151648]

Что мне не хватает? Разве недостаточно указать initial_token и перезапустить кассандру?

Я не могу избежать случайной генерации initial_token cassandra, потому что cassandra автоматически запускается после установки, то есть даже до того, как я смогу отредактировать cassandra.yaml для спецификации initial_token.

Я использую кассандру 3.7.

Я использую тот же шаг для получения исходного токена с исходного узла, а затем для проверки на целевом узле.

$ nodetool ring | grep ip_address_of_node | awk '{print $NF ","}' | xargs

Изменить: добавление дополнительных сведений о расследовании...

Я очищаю данные системной таблицы с узла и перезапускаю cassandra. Но cassandra по-прежнему выбирает автоматически сгенерированные токены, а не те initial_tokens, которые указаны в cassandra.yml. Это явно нарушает шаг 4 процедуры, упомянутой в официальной документации.

Поэтому я могу перефразировать свой вопрос следующим образом: системные таблицы удалены. Это не выбор из cassandra.yml. Тогда откуда cassandra берет intial_tokens после перезапуска?


person Manojkumar Khotele    schedule 16.11.2017    source источник


Ответы (2)


Я добился того, чего хотел, т.е. заставил Cassandra выбирать исходные токены, предоставленные мной.

Я убедился, что cassandra.yaml содержит желаемое значение «initial_tokens», упомянутое с самого начала. Таким образом, Cassandra не генерирует токены автоматически, а просто выбирает предоставленные initial_tokens при первом запуске.

person Manojkumar Khotele    schedule 23.11.2017
comment
Это все еще не говорит, что не так с официальной документацией. - person Manojkumar Khotele; 23.11.2017

Initial_token следует устанавливать только в том случае, если vnodes не используются. Это также должен быть только один токен. При использовании vnodes токены будут автоматически распределяться при начальной загрузке узла, и этот параметр будет игнорироваться.

person Simon Fontana Oscarsson    schedule 16.11.2017
comment
Мой исходный кластер не является кластером с узлами с одним токеном. Исходные и целевые узлы num_tokens: 256. Разве я не использую vnodes? - person Manojkumar Khotele; 16.11.2017
comment
num_tokens: определяет количество токенов, случайно назначенных этому узлу в кольце при использовании виртуальных узлов (vnodes). Так что да, вы используете vnodes. docs.datastax.com/en/cassandra/2.1/ Кассандра/конфигурация/ - person Simon Fontana Oscarsson; 16.11.2017
comment
Пример, приведенный в официальной документации, использует несколько токенов, установленных в качестве значения для initial_token. Так что я вполне уверен, что initial_token можно установить при использовании vnodes; по крайней мере в кассандре 3.0. - person Manojkumar Khotele; 17.11.2017
comment
Извините, я был неправ. Я просто посмотрел на код и проверил его сам. Для меня это работает, чтобы установить initial_token и num_tokens вместе. Вот где у вас что-то пойдет не так: if (initialTokens.size() ‹ 1). По какой-то причине опция initial_token не работает для вас, что очень странно, поскольку она выводится в журнале конфигурации узла. - person Simon Fontana Oscarsson; 17.11.2017
comment
На самом деле я только что заметил, что ваши записи в журнале для конфигурации узла и сгенерированные токены очень разные. Между ними более 3 часов, поэтому они не могут быть одним и тем же стартапом. Последним из них является конфигурация узла. Вы уверены, что токены неверны? - person Simon Fontana Oscarsson; 17.11.2017
comment
Это правильно. Я снова и снова пытался перезапустить Кассандру. Каждый раз, когда я получал один и тот же журнал. Это, один из тех журналов, как раз через 3 часа. - person Manojkumar Khotele; 18.11.2017