1. 程式人生 > >從阿里到網易雲centOS7.2伺服器遷移服務和各項資料(zookeeper部分)

從阿里到網易雲centOS7.2伺服器遷移服務和各項資料(zookeeper部分)

 前兩篇的博文已經完成了阿里伺服器的服務重啟,現在開始要把服務轉移到網易雲伺服器中。

1.網易的伺服器相比阿里的有些區別,要連線網易的伺服器需要經過一臺中轉的伺服器。

這時候連線伺服器稍微有些麻煩,需要一個隧道和代理。具體內容可以看下面的連結:

2.然後把第三方軟體安裝配置完成

包括:mysql,mongodb,kafka,redis,zookeeper,neo4j,java環境

先裝java環境 (centOS7.2  |  rpm方式   |   jdk-8u121-linux-x64)

首先解壓安裝

rpm -ivh jdk-8u121-linux-x64.rpm

解壓完成的jdk,會放在/usr/java/jdk1.8.0_121下面

什麼,vim都沒有?裝一下

yum -y install vim*

接著是配置環境變數

vim /etc/profile.d/java.sh
#java環境配置
JAVA_HOME=/usr/java/jdk1.8.0_121
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH

然後讓source變數生效

source /etc/profile

之後,在終端使用echo命令檢查環境變數設定情況

[[email protected] ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_121
[[email protected] ~]# echo $CLASSPATH
.:/usr/java/jdk1.8.0_121/lib:/usr/java/jdk1.8.0_121/jre/lib
[[email protected] ~]# echo $PATH
/usr/java/jdk1.8.0_121/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_121/bin:/usr/java/jdk1.8.0_121/jre/bin:/usr/java/jdk1.8.0_121/bin:/usr/java/jdk1.8.0_121/jre/bin

最後檢查JDK是否安裝成功

[[email protected] ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

然後裝zookeeper總共有兩臺

解壓+改名(因為本就是root使用者下,所以不用加sudo)

tar -zxvf zookeeper-3.4.9.tar.gz -C /home/
mv /home/zookeeper-3.4.9 /home/zookeeper

配置zoo.cfg

[[email protected] zookeeper]# cd conf

[[email protected] conf]# cp zoo_sample.cfg zoo.cfg

[[email protected] conf]# vim zoo.cfg

先把dataDir=/tmp/zookeeper註釋,然後將下面四行程式碼新增到檔案末尾

dataDir=/home/data/zookeeper

server.1=192.168.16.86:2888:3888

server.2=192.168.16.84:2888:3888

儲存,然後建立目錄/home/data/zookeeper/data

建立myid檔案

[[email protected] conf]# cd /home/data/zookeeper/data

[[email protected] data]# touch myid

[[email protected] data]# echo "1">>myid

拷貝zookeeper
拷貝zookeeper到另外一臺機器

[[email protected] data]# scp -r /usr/local/zookeeper [email protected]:/usr/local/

中間會要求輸入密碼,分別輸入你另外兩臺機器的密碼就行了

修改myid檔案

192.168.1.92的myid內容改為2

[[email protected] zookeeper]# cd /usr/local/zookeeper/data

[[email protected] data]# echo "2">myid

開啟zookeeper埠

這裡要說一下,centOS7.2新開的伺服器,防火牆是鎖定的,所以要先解鎖防火牆,再啟動。

[[email protected] data]# systemctl unmask firewalld
Removed symlink /etc/systemd/system/firewalld.service.

然後再開啟防火牆,並檢查其狀態

[[email protected] data]# systemctl start firewalld
[[email protected] data]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-10-13 14:26:10 CST; 21s ago
     Docs: man:firewalld(1)
 Main PID: 12304 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─12304 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Oct 13 14:26:10 digdate-serv2.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 13 14:26:10 digdate-serv2.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Oct 13 14:26:10 digdate-serv2.localdomain firewalld[12304]: WARNING: ICMP type 'beyond-scope' is not supported by the ...pv6.
Oct 13 14:26:10 digdate-serv2.localdomain firewalld[12304]: WARNING: beyond-scope: INVALID_ICMPTYPE: No supported ICMP...ime.
Oct 13 14:26:10 digdate-serv2.localdomain firewalld[12304]: WARNING: ICMP type 'failed-policy' is not supported by the...pv6.
Oct 13 14:26:10 digdate-serv2.localdomain firewalld[12304]: WARNING: failed-policy: INVALID_ICMPTYPE: No supported ICM...ime.
Oct 13 14:26:10 digdate-serv2.localdomain firewalld[12304]: WARNING: ICMP type 'reject-route' is not supported by the ...pv6.
Oct 13 14:26:10 digdate-serv2.localdomain firewalld[12304]: WARNING: reject-route: INVALID_ICMPTYPE: No supported ICMP...ime.
Hint: Some lines were ellipsized, use -l to show in full.

否則會報錯:Failed to start firewalld.service: Unit is masked.

開啟2888、3888、2181埠

[[email protected] data]# firewall-cmd --zone=public --add-port=2888/tcp --permanent

[[email protected] data]# firewall-cmd --zone=public --add-port=3888/tcp --permanent

[[email protected] data]# firewall-cmd --zone=public --add-port=2181/tcp --permanent

重啟防火牆

[[email protected] data]# firewall-cmd --reload

啟動zookeeper

1、啟動(每臺機器都要啟動)

[[email protected] bin]# /home/zookeeper/bin/zkServer.sh start

如果輸出以下內容,表示啟動成功

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED 

2、  檢視狀態

[[email protected] data]# /usr/local/zookeeper/bin/zkServer.sh status

192.168.16.84

ZooKeeper JMX enabled by default
Using config: /home/zookeeper/bin/../conf/zoo.cfg
Mode: leader

192.168.16.86

ZooKeeper JMX enabled by default
Using config: /home/zookeeper/bin/../conf/zoo.cfg
Mode: follower

由此我們看出192.168.16.84這臺機器被自動選舉為leader了

這裡存在一個不穩定性,因為zookeeper最少需要三臺伺服器才能保證,一旦某一臺掛掉了,服務依然能夠正常執行,我這裡佈置的只有兩臺,所以一旦任意一臺掛掉,整個zookeeper就都掛掉了。

客戶端連線

[[email protected] ~]# /home/zookeeper/bin/zkCli.sh -timeout 5000 -server 192.168.16.86:2181

timeout:超過時間,單位毫秒

r:只讀模式,當結點換掉的時候,還可以提供讀服務

最終如下圖,表示連線成功:

Connecting to 192.168.16.86:2181
2018-10-13 15:33:58,933 [myid:] - INFO  [main:[email protected]] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2018-10-13 15:33:58,937 [myid:] - INFO  [main:[email protected]] - Client environment:host.name=digdate-serv2.localdomain
2018-10-13 15:33:58,937 [myid:] - INFO  [main:[email protected]] - Client environment:java.version=1.8.0_121
2018-10-13 15:33:58,939 [myid:] - INFO  [main:[email protected]] - Client environment:java.vendor=Oracle Corporation
2018-10-13 15:33:58,939 [myid:] - INFO  [main:[email protected]] - Client environment:java.home=/usr/java/jdk1.8.0_121/jre
2018-10-13 15:33:58,939 [myid:] - INFO  [main:[email protected]] - Client environment:java.class.path=/home/zookeeper/bin/../build/classes:/home/zookeeper/bin/../build/lib/*.jar:/home/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/home/zookeeper/bin/../lib/log4j-1.2.16.jar:/home/zookeeper/bin/../lib/jline-0.9.94.jar:/home/zookeeper/bin/../zookeeper-3.4.9.jar:/home/zookeeper/bin/../src/java/lib/*.jar:/home/zookeeper/bin/../conf:.:/usr/java/jdk1.8.0_121/lib:/usr/java/jdk1.8.0_121/jre/lib
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:java.io.tmpdir=/tmp
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:java.compiler=<NA>
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:os.name=Linux
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:os.arch=amd64
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:os.version=3.10.0-693.el7.x86_64
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:user.name=root
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:user.home=/root
2018-10-13 15:33:58,940 [myid:] - INFO  [main:[email protected]] - Client environment:user.dir=/root
2018-10-13 15:33:58,942 [myid:] - INFO  [main:[email protected]] - Initiating client connection, connectString=192.168.16.86 sessionTimeout=30000 [email protected]
Welcome to ZooKeeper!
2018-10-13 15:33:58,965 [myid:] - INFO  [main-SendThread(192.168.16.86:2181):[email protected]] - Opening socket connection to server 192.168.16.86/192.168.16.86:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-10-13 15:33:59,036 [myid:] - INFO  [main-SendThread(192.168.16.86:2181):[email protected]] - Socket connection established to 192.168.16.86/192.168.16.86:2181, initiating session
[zk: 192.168.16.86(CONNECTING) 0] 2018-10-13 15:33:59,094 [myid:] - INFO  [main-SendThread(192.168.16.86:2181):[email protected]] - Session establishment complete on server 192.168.16.86/192.168.16.86:2181, sessionid = 0x1666c504f390000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

h:幫助列表

h
ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port

顯示能夠執行的命令

命令分類和資料庫相似,大概可以分為增刪改查四類

ZooKeeper資料結構:

大多數時候,我們隊ZooKeeper的操作都是在對節點進行增刪改查

常用命令:

查詢相關指令

ls path:列出path下的檔案

[zk: 127.0.0.1:2181(CONNECTED) 4] ls /
[zookeeper]

如上:列出根目錄節點下的所有檔案,目前就只有一個系統自帶的zookeeper節點

stat path:檢視節點狀態

[zk: 127.0.0.1:2181(CONNECTED) 6] stat /zookeeper
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
cZxid:建立節點時的事務id
pZxid:子節點列表最後一次被修改的事務id
cversion:節點版本號
dataCersion:資料版本號
aclVerson:acl許可權版本號

......

get path:獲取指定節點的內容

ls2 path:列出path節點的子節點及狀態資訊


建立指令

create [-s] [-e] path data acl

1 [zk: 127.0.0.1:2181(CONNECTED) 10] create /node_1 123
2 Created /node_1

如上:在根目錄建立了node_1節點,攜帶資料 123

使用 get /node_1 驗證是否新增節點及其資料成功

[zk: 127.0.0.1:2181(CONNECTED) 15] create -e /node_1/node_1_1 234
Created /node_1/node_1_1

建立了一個臨時節點(-e),並且攜帶資料234,使用stat命令檢視這個新建的臨時節點

[zk: 127.0.0.1:2181(CONNECTED) 16] stat /node_1/node_1_1
cZxid = 0x200000003
ctime = Sat Aug 27 15:27:30 CST 2016
mZxid = 0x200000003
mtime = Sat Aug 27 15:27:30 CST 2016
pZxid = 0x200000003
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x156cacb918b0000
dataLength = 3
numChildren = 0
ephemeralOwner值不再是0,表示這個臨時節點的版本號,如果是永久節點則其值為 0x0
1 [zk: 127.0.0.1:2181(CONNECTED) 1] create -s /node_1/node_1_1 234
2 Created /node_1/node_1_10000000001

通過使用-s引數,建立一個順序節點,我們雖然指定的節點名是node_1_1,但是實際上,名稱卻是 node_1_10000000001,如果我們重複執行:

[zk: 127.0.0.1:2181(CONNECTED) 2] create -s /node_1/node_1_1 234
Created /node_1/node_1_10000000002

效果如上

這個特性,我們可以利用一下,生成在分散式環境下的主鍵生成器。

-s 和 -e 可以同時使用

退出: quit

[zk: 127.0.0.1:2181(CONNECTED) 19] quit
Quitting...
2016-08-27 15:29:44,760 [myid:] - INFO  [main:[email protected]] - Session: 0x156cacb918b0000 closed
2016-08-27 15:29:44,763 [myid:] - INFO  [main-EventThread:[email protected]] - EventThread shut down for session: 0x156cacb918b0000

這個時候如果重新登入,執行 ls /node_1,發現其子節點是空的,建立的node_1_1子節點不見了,那是因為之前建立的時候就已經指定了,我們建立的是一個臨時節點。當客戶端會話結束後,臨時節點是會被刪除了。

修改相關指定:

set path data [version]

[zk: 127.0.0.1:2181(CONNECTED) 14] set /node_1 998
cZxid = 0x200000002
ctime = Sat Aug 27 15:24:39 CST 2016
mZxid = 0x20000000a
mtime = Sat Aug 27 15:38:40 CST 2016
pZxid = 0x200000008
cversion = 5
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 3

如果我們多次修改,會發現  dataVersion ,也就是資料版本,在不停得發生變化(自增)

如果我們在set的時候手動去指定了版本號,就必須和上一次查詢出來的結果一致,否則 就會報錯。

這個可以用於我們在修改節點資料的時候,保證我們修改前資料沒被別人修改過。因為如果別人修改過了,我們這次修改是不會成功的

刪除指令:

delete path [version]

刪除指定節點資料,其version引數的作用於set指定一致

delete /node_1/node_1_10000000001

整個節點全刪除

注意:delete只能刪除不包含子節點的節點,如果要刪除的節點包含子節點,使用rmr命令

rmr /node_1

相關推薦

阿里centOS7.2伺服器遷移服務各項資料zookeeper部分

 前兩篇的博文已經完成了阿里伺服器的服務重啟,現在開始要把服務轉移到網易雲伺服器中。 1.網易的伺服器相比阿里的有些區別,要連線網易的伺服器需要經過一臺中轉的伺服器。 這時候連線伺服器稍微有些麻煩,需要一個隧道和代理。具體內容可以看下面的連結: 2.然後把第三方

阿裏centos7.2 centos 超全lamp 環境搭建 各種拼接:)

vmw ati ipad 默認網關 html -i add-port grant light vmware 安裝 修改dns /etc/sysconfig/network-scripts 下面查找ifcfg-en33(可能會不同) 的文件,vi 編輯這個文件

音樂 2.5.1(196734) 精簡優化版

軟體庫歡迎您的光臨,本站免費收集網際網路精品實用綠色軟體,我們的宗旨:免費、實用、綠色、安全 ! 網易雲音樂(CloudMusic) 是一款專注於發現與分享的PC客戶端音樂產品,擁有龐大的音樂資源庫,囊括百萬首320Kbps高品質音樂,登入後你可以關注明星、DJ和好友,通過瀏覽他們的動態、收藏和

2018中國原生使用者大會:爆料完整微服務的研發過程

近日,由才雲科技、K8sMeetup 中國社群、Kubeflow 中國社群聯合主辦的 2018 中國雲原生使用者大會在杭州白馬湖建國飯店舉辦,來自各個行業領域的雲原生技術專家、雲原生技術落地企業代表、以及雲原生技術愛好者們齊聚一堂,為國內市場帶來了全球最新技術動態與趨勢分析,推進企業搭建雲原生框架構

InfoQ專訪陳諤:用微服務體系滿足企業數字化轉型需求

現在的公有云市場,國外有AWS,Google Cloud和微軟的Azure三足鼎立,國內則是阿里雲一家獨大,即便如此,在數字化浪潮下,雲端計算市場依然有很多玩家進場,各家競爭也相當激烈。在這樣的環境下,網易雲作為入場較晚的選手(2016年“網易雲”作為整體品牌正式推出),通過獨特的玩法在這場角逐中佔

案例:用vue開發音樂(已實現線上播放下載)

效果如圖: 完整程式碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content

課堂_C++程序設計入門(下)_第8單元:年年歲歲花相似– 運算符重載_第8單元 - 作業2:OJ編程 - 重載數組下標運算符

ref [] jna turn draw cred 超出範圍 input detail 第8單元 - 作業2:OJ編程 - 重載數組下標運算符 查看幫助 返回 溫馨提示: 1.本次作業屬於Online Judge題目,提交後由系統即時判分。 2.學生可以在

2次作業:音樂軟件簡單分析

部分 同時 存在 其他 arc family inux 在線搜索 www. 1介紹產品相關信息 (1)你選擇的產品是? 網易雲音樂 (2)為什麽選擇該產品作為分析? 網易雲音樂在我下載使用兩天之後便能夠讓我毅然決然地卸載掉了使用十多年的酷狗音樂 (3)該產品是怎麽誕生的(在

首席安全架構師談安全新形勢:DDOS兩三天,遊戲玩家數幾萬降到幾百

技術分享 DDOS攻擊 網絡安全 雲安全 安全是一個永恒的話題,在業務不斷雲化、攻擊越來越復雜的當下,互聯網安全呈現了出什麽樣的嚴峻形勢?對這些形勢,網易雲又是如何應對的?網易雲首席安全架構師沈明星4月13日,網易雲易盾&CNCERT閉門安全沙龍在杭州舉行,在沙龍上網易雲首席安全架構師

用flex進行音樂界面構建布局解析2

基礎知識 query 項目 了解 ado 輪播圖 wid 又是 外星人 前面我們通過《css布局簡史與決勝未來的第四代css布局技術》了解了css布局發展史和未來,下面,我們通過《使用flex進行網易雲音樂界面構建和布局解析》了解一下,如何在實際項目中使用flex進行布局,

音樂評論爬蟲2:歌曲的全部評論

ima cbc 原理分析 nbsp oss 處理 oop win 接下來 用過網易雲音樂聽歌的朋友都知道,網易雲音樂每首歌曲後面都有很多評論,熱門歌曲的評論更是接近百萬或者是超過百萬條.現在我就來分享一下如何爬取網易雲音樂歌曲的全部評論,由於網易雲音樂的評論都做了混淆加密處

qml之零開始編寫音樂目錄

預覽: 雙擊qml的model 實現音樂播放以及歌曲資訊,播放進度 一、設定上下文屬性,使c++類物件能夠被qml呼叫 Player mPlayer; engine.rootContext()->setContextProperty("Player",&mPlayer);

阿里 Centos7.2 搭建redis 叢集

一、環境 1.Centos7.2 三臺 2.Redis叢集要求至少要有三個節點,我這裡配置三臺,每臺一主一備。 3.埠號 6379-6384  需要在阿里雲 安全策略中開通埠,同時要開通16379-16384(叢集匯流排埠為redis客戶端連線的埠 + 10000) 二

自學自用 = 課堂細說Linux-入門到精通視頻教程

lin date upd kcon size route zip rep 系統 視頻地址 https://study.163.com/course/courseMain.htm?courseId=983014 介紹 本篇博客,旨在記錄視頻學習的要點,所以格式隨意,且沒有文字

ieaseMusic for Mac(第三方音樂播放器) v1.3.2中文版

ieasemusic mac版作為Mac平臺上的一款第三方的網易雲音樂客戶端,ieaseMusic繼承了網易雲音樂的所有功能,並且在播放介面和播放體驗上更加提升。按照ieaseMusic開發者的說法,ieaseMusic就是一款酷炫到不行的音樂播放器,非常漂亮,非常帥氣。 ieasemusic

入局到騰飛 信與線上教育的三年之約

2015年10月,網易雲信作為網易雲端計算服務的先鋒兵推出,開發者通過SDK和API即可獲得穩定可靠的即時通訊、音視訊通話、直播、點播等技術能力。 2018年10月,網易雲信迎來了三週年里程碑。三年裡,網易雲信依靠網易18年對即時通訊雲、音視訊雲服務研發經驗,以及專業運維服務

音樂中找出音樂外鏈製作背景音樂

從網易雲音樂中找出音樂外鏈 最近想把做的網頁放上點背景音樂,因為要放到github page上不想下載,一直想要找網上的連結,無意中Network找到了。ヾ(≧O≦)〃嗷~ 先上案例: 步驟

資料研發崗面經小結涉及阿里 音樂以及商湯科技

Mysql的索引型別及其實現原理;同時哪些儲存引擎支援B樹索引,哪些支援Hash索引;為什麼mysql索引要用B+樹而MongoDB用B樹? Mysql查詢如何優化;主鍵和唯一索引的區別;事務的隔離機制,mysql預設是哪一級; MyISAM和InnoDB儲存引擎的區別; Mysql查詢優化,慢查詢怎麼去定位

Android 仿音樂 + Java socket自建伺服器 過程&心得分享

介紹 大二下學期的時候做的一個專案,一個線上音樂播放器 UI素材和佈局都參考了網易雲音樂,客戶端使用的是Android編寫的,而伺服器方面則是自己使用Java Socket,並自定義伺服器與客戶端之間的通訊協議~(安全方面就比較殘念) 完成的功能也比較少~

阿里centos7.2安裝nginx

新增CentOS 7 Nginx yum資源庫 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cento