1. 程式人生 > >Cassandra經常被問到的問題(一)

Cassandra經常被問到的問題(一)

1、為什麼不可以設定listen_address為0.0.0.0(意思是監聽所有地址)?

Cassandra是一個基於gossip協議的分散式系統,監聽地址是用來告訴其它節點來訪問的,告訴別的節點說“連線我任何地址都可以”,是一個糟糕的想法,如果叢集中不同的節點使用了不同方式的地址,悲劇的事情就要發生了。

如果你不想為你叢集中的每個節點單獨配置ip(非常可以理解),你可以不配,空著它,Cassandra將會使用InetAddress.getLocalHost()來選擇地址,然後只要你或者你的運維團隊保證這個是正確的(/etc/hosts/,dns 等等要配置對)。

一個例外是JMX,他預設監聽的地址是0.0.0.0(這個是java的bug 6425769)

請看CASSANDRA-256 和 CASSANDRA-43獲取這方面更多的細節。

2、cassandra用了哪些埠?

預設Cassandra使用7000作為叢集通訊埠(如果開啟了SSL就是7001埠)。9042埠用於native協議的客戶端連線。7199埠用於JMX,9160埠用於廢棄的Thrift介面。內部節點通訊以及native協議的埠在cassandra配置檔案裡可以配置。JMX埠可以在cassandra-env.sh配置(通過JVM的引數)。所有埠都是TCP的。

3、當往叢集中增加新節點的時候,對於存在的資料發生了什麼?

當一個新節點加入到叢集,它將會自動連線叢集中的其它節點,並且去複製正確的資料到本地,同樣的增加、替換、移動、刪除節點都是這樣的。

4、我刪除了資料,但是磁碟使用率沒有變化,這是為什麼?

寫入到cassandra裡的資料會被持久化到SSTable檔案裡,SSTable檔案是不可改變的,也就是說當你執行刪除的時候,資料不會從檔案中被去除掉的。相反,一個標記(也叫tombstone)會被寫入用於標記對應記錄的新狀態。不用擔心,當資料和tombstone發生第一次compaction的時候,資料會被刪除掉,相應的磁碟空間也被回收,你可以瞭解關於Compaction的更多細節。

5、為什麼用nodetool ring只能看到一條記錄? 即便所有節點輸出的日誌裡可以看出,他們都發現彼此加入到了這個ring。

這個發生於你的所有節點都配了通用的token,不要這麼做。

這經常發生於哪些使用VM部署cassandra的使用者,(特別是使用Debian package,它會在安裝完自動啟動cassandra,所以會生成token並儲存它。),安裝好後就把VM整個克隆出另外的節點。

增很容易修復,只要把資料目錄以及commitlog目錄刪除,然後保證每個節點是隨機生成的token,再啟動就可以了。

6、我可以修改一個正在執行中的叢集中的keyspace的副本因子嗎?

可以,但是修改後需要執行repair或者cleanup來改變已存資料的副本個數。

首先使用cqlsh修改目標keyspace的副本因子。
如果你是減少副本因子,你可以執行nodetool cleanup去刪除多餘的副本資料,對每個節點都要執行。

如果你是增加副本因子,你需要執行nodetool repair來保證資料的副本個數滿足當前的配置。 Repair只要對每個副本集執行一次即可。這是個敏感的操作,這會影響叢集的效能。強烈建議執行rolling repair,因為試圖一次修復整個叢集的話,那可能是個坑。

7 可以使用cassandra儲存大的二進位制欄位嗎?

Cassandra並沒有對儲存大檔案或者二進位制,以及這樣一個二進位制資料被經常讀,也就是整個傳送到客戶端的情況進行優化。因為儲存小的二進位制資料(小於1MB)應該不是問題。但是還是建議把大的二進位制資料分隔成小塊。

需要特別注意的是,任何大於16MB的值,將被Cassandra拒絕掉,這是由max_mutation_size_in_kb配置項決定的(這個配置項預設是commitlog_segment_size_in_mb的一半,commitlog_segment_size_in_mb預設是32M)。

8、Nodetool連線遠端伺服器的時候,提示“Connection refused to host: 127.0.1.1” ,這是為什麼?

nodetool依賴JMX,JMX依賴RMI。RMI在兩端通訊的時候會根據需要建立自己的listenners和connectors。通常,這些都是底層透明的,但是不正確的hostname解析,無論是在連線方還是被連線方,都會導致錯亂和這樣的拒絕異常。

如果你在使用DNS。確保兩端機器的/etc/hosts檔案是正確的。如果還是失敗的,你可以嘗試通過jvm選項-Djava.rmi.server.hostname=指定你要連線的遠端機器名稱給JMX介面,配置項大體在cassandra-env.sh檔案的靠下的位置。


相關推薦

Cassandra經常到的問題

1、為什麼不可以設定listen_address為0.0.0.0(意思是監聽所有地址)? Cassandra是一個基於gossip協議的分散式系統,監聽地址是用來告訴其它節點來訪問的,告訴別的節點說“連線我任何地址都可以”,是一個糟糕的想法,如果叢集中不同的節點使用了

華為奇葩

spf img 及其 分享圖片 問題 idt 路由器 其他 訪問 5臺路由器,全都運行了OSPF,AR5通告環回口,在AR2、AR3、AR4運行MPLS LDP,那麽在每臺路由器上都有此路由信息。 如果AR1去訪問5.5.5.5的話,在MPLS域中,是否會攜帶標簽信息

JAVA面試700

原文地址 譯者:葉文海([email protected]) 1、Java環境中的位元組碼是什麼? 由Java 編譯器生成的一種程式碼。 由JVM生成的一種程式碼。 Java原始檔(Java Source File)的別名。 一種寫在類的例項方法中的程式碼。 答案:由Java 編

Asp.net中滿足條件的複選框自動選中

一、有這樣一種需求:給單個使用者分組,分兩步走 1)載入所有使用者組 2)當前使用者已在的分組的複選框被勾選上 二、下面先演示一下想要的效果: 1、給單個使用者分組,選擇使用者: 2、彈框 查詢所有分類列表;把已分組的複選框選中,效果圖如下:

get和post的區別--面試經常到!

修改 史記 限制 url地址 完整 返回 協議頭 作用 delet 了解歷史 get和post是HTTP與服務器交互的方式, 說到方式,其實總共有四種:put,delete,post,get。 他們的作用分別是對服務器資源的增,刪,改,查。 所以,get是獲取數據,po

面試時最經常到的問題Frenquently asked interview questions(II)

面試時最經常被問到的問題(Frenquently asked interview questions)之Analytical, puzzles, and brain-teasers篇 Analytical, puzzles, and brain-teasers Questio

底】夏俊:深入站點服務端技術——站點並發的問題

而是 思路 臨時 系統負載 表現 json article 不能 情況 摘要:本文來自擁有十年IT從業經驗、擅長站點架構設計、Web前端技術以及Java企業級開發的夏俊,此文也是《關於大型站點技術演進的思考》系列文章的最新出爐內容。首發於CSDN,各位技術人員不

運維工作中經常用到的一些知識總結

Linux Docker MFS在日常運維工作中,會有一些知識使用頻率較高,以下為個人在工作中常用的一些操作,沒有做詳細的分類,排版比較淩亂。有需要的同學們可以參考,希望能有所幫助。 1、查看當前系統所以變量 sysctl -a 2、修改Centos7 網卡為eth install centos 7 按 ta

JAVA面試常知識總結

try catch finally 的詳細用法: 1 public static int testBasic(){ 2 int i = 1; 3 try{ 4 i++; 5 System.out.printl

數論整理//能一些數整除 //

1.能被一些數整除  (1)能被2整除的數,個位上的數都能被2整除 (2*)能被4整除的數,個位和十位所組成的兩位數能被4整除 (3*)能被8整除的數,百位、十位和個位所組成的三位數能被8整除(4)能被5整除的數,末尾是0或5 (5*)能被25整除的數,十位和個位所組成的兩位數能被25

intellij idea 的比較基礎經常用到的配置

最近剛從eclipse轉IEDA,好多功能配置都熟悉,這裡是我記錄慢慢上手過程中遇到的配置問題,不定時更新,希望能幫到那些剛接觸IEDA的朋友。由於是中途突然想記錄一下,所以對這些配置並沒有很好的排序歸類,順序比較混亂,各位朋友能用到什麼看什麼吧.......完全是個人主觀的配置排序。 我用

1.問題:在oracle中,連續十次嘗試登陸不成功,那麼此賬戶將會鎖定lock。當使用鎖定的賬戶登入時,系統會報錯:ORA-28000: the account is locked。

解決思路: 以管理員的身份登入,即以sys或者system登入資料庫; 使用命令解鎖使用者:alter user 這裡是使用者名稱 account unlock; 重置密碼:alter user 這裡是使用者名稱 identified by 這裡是重置的密碼; 重新登入即可。

Android Studio 題記

1,Error Loading Project: Cannot load module walk 解決:close project , import project 2,unregistered vcs root detected the directory  解決:ad

xss-javascript攻擊系列--

終於可以擠個空檔,寫寫這些日子的慘痛經歷。 某天產品A突然喊到,admin賬號被盜了,導致金錢丟失了。瞬間頭皮發麻,完蛋了。 趕緊排查可能出現漏洞的地方,在資料庫中找到了攻擊資料如下: [p][img srC=\"/project//emotion/images/t

微服務理論系列:服務發現四四答

        在開始之前,我們先來回顧下業內對於微服務架構的定義。簡單來說,微服務就是用一組小服務的方式來構建一個應用,服務獨立執行在不同的程序中,服務之間通過輕量的通訊機制(如 RESTful 介面)來互動,並且服務可以通過自動化部署方式獨立部署。  

深度學習——Intel caffe支配的恐懼

一、Intel caffe在Ubuntu上的安裝配置 1. 安裝配置MKL-DNN 我用的是CPU版本的caffe,安裝配置MKL-DNN可以提高caffe訓練的速度。英特爾MKL-DNN專為在英特爾架構上加快深度學習框架的速度而設計,包含高度向量化和執

CNN相關要點介紹——卷積核操作、feature map的含義以及資料是如何輸入到神經網路中

一、卷積核的定義     下圖顯示了CNN中最重要的部分,這部分稱之為卷積核(kernel)或過濾器(filter)或核心(kernel)。因為TensorFlow官方文件中將這個結構稱之為過濾器(filter),故在本文中將統稱這個結構為過濾器。如下圖1所示,

工作中經常遇到的坑以及解決的辦法,歡迎光臨!

相信大家在敲程式碼的過程中,會遇到無數的坑,不要悲傷,不要氣餒。俗話說,坑就是經驗。嗯,沒錯,俗話是我說的。閒言少敘,本文為長篇小說,致我們程式碼中的坑,以及一些常用的小方法,會逐步寫下,歡迎您的到來

【前端詞典】繼承 - 面試官的你都會嗎?

寫在前言前面的話 雖說標題是繼承,但繼承這塊的涉及的知識點不僅僅只是繼承,所以這塊我會分成兩個部分來講: 第一部分主講原型以及原型鏈 第二部分主講繼承的幾種方式 分兩節講有以下兩個原因: 需要了解繼承必須對原型和原型鏈有深刻的瞭解,分開講好消化 最近孩子快出生,需要更多的時間翻

Java——如果我面試別人,可能會用的問題如果面試,可能的問題

我就面試過很少過的幾次,但是這些是一些總結,別人面試我的,還有和麵試官司的聊天中總結出來的內容。不全,但是足夠找一份很不錯的工作了。 java方面問題: 1. HashMap和ArrayList實現