最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【Zookeeper】基于3臺(tái)linux虛擬機(jī)搭建zookeeper集群

2023-06-27 09:30 作者:懶時(shí)小窩  | 我要投稿

環(huán)境和版本說明

環(huán)境說明:

  • 操作系統(tǒng):Win11 2023 22H2

  • CPU:13代 i6

  • 內(nèi)存:64G

  • 虛擬機(jī):VM Tool 17

  • CenterOs版本:7.9

  • 鏡像:CentOS-7-x86_64-Minimal-2009_2.iso

  • Zookeeper 版本:3.5.10

1. 進(jìn)入官方下載CenterOs 7.9

官網(wǎng)地址:https://www.centos.org/download/

這里還是建議有條件的用用魔法啥的。

根據(jù)個(gè)人環(huán)境選擇 x86_64。

image.png
image.png

個(gè)人比較推薦 163 和 阿里云的鏡像:

http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/

http://mirrors.163.com/centos/7.9.2009/isos/x86_64/

點(diǎn)擊之后耐心等待下載即可。

2. 安裝 Vmware 17

嗯哼,個(gè)人用的是綠化版,怕作者網(wǎng)站被爆這里就不提供鏈接和操作說明了。

3. 在Vmware 17上安裝CenterOs 7.9

個(gè)人建議安裝好一臺(tái)之后,利用拷貝虛擬機(jī)的方式復(fù)制三份系統(tǒng),并且在文件管理中用目錄區(qū)分,方便換電腦或者遷移的時(shí)候可以快速恢復(fù)使用。

比如下面?zhèn)€人的簡單劃分方式。

image.png

新建虛擬機(jī)

image.png
image.png

這里個(gè)人選擇“稍后安裝操作系統(tǒng)”,也可以直接架在程序光盤映象文件。

image.png
image.png
image.png

個(gè)人筆記本電腦配置尚可,這里給了雙核。

image.png

內(nèi)存分配個(gè)1G即可,也可以酌情按需增加。

image.png

這里選擇NAT,如果不嫌IP變化麻煩,可以是用“橋接網(wǎng)絡(luò)”。

image.png
image.png

后面一直下一步即可,直到出現(xiàn)下面的畫面。磁盤大小可以按照需要進(jìn)行分配。

image.png

按照完全自定義的方式安裝,此時(shí)需要自己手動(dòng)指定一下操作系統(tǒng)的鏡像文件位置:

image.png

安裝CenterOs 7.9

啟動(dòng)虛擬機(jī),看到如下界面之后選擇第一個(gè)。

image.png

耐心等待安裝程序引導(dǎo)。選擇語言,這里建議選擇英文,順帶鍛煉下英文水平:

image.png

進(jìn)入下一步之后,通常需要確認(rèn)一下操作系統(tǒng)安裝到哪一塊磁盤上面。

image.png

不熟悉Linux的分區(qū)設(shè)置直接使用官方默認(rèn)的配置即可(如果要手動(dòng)設(shè)置分區(qū)可以選擇下面的“I will configure partitioning”)。

image.png

接著手動(dòng)設(shè)置一下網(wǎng)卡,這里記得開啟一下開關(guān),否則安裝之后無法自動(dòng)聯(lián)網(wǎng)(需要手動(dòng)調(diào)整一下網(wǎng)卡開關(guān))。

CenterOs 系統(tǒng)一般都是用于服務(wù)器使用,大多數(shù)情況下都是靜態(tài)IP,所以默認(rèn)是不開啟網(wǎng)卡的。

image.png
image.png

由于是最小化安裝,自己可以干的事情有限,這里我們直接下一步即可。

之后是設(shè)置root密碼和構(gòu)建自定義用戶,如果用戶密碼強(qiáng)度過低點(diǎn)擊“Done”可能會(huì)沒有任何反應(yīng),但是可以通過兩次點(diǎn)擊“Done”給強(qiáng)制通過。

這里放一下個(gè)人的操作root密碼是經(jīng)典的root。

另外新建一個(gè)偽root用戶,用于自己登陸操作(不建議養(yǎng)成root登陸的習(xí)慣)。

如果想要自定用戶具備sudo權(quán)限,需要勾選“Make this user administrator”。

設(shè)置之后點(diǎn)擊右下角即可。耐心等待片刻。

重啟,CenterOs7安裝完成。

安裝虛擬機(jī)之后的操作

具體參考這篇文章:[【Linux】拿到一臺(tái)虛擬機(jī)Linux該干什么?]

偽 root 測試

如果是具備sudo權(quán)限的普通用戶,通常能流暢執(zhí)行下面的指令。

sudo?yum?install?-y?vim

4. 設(shè)置靜態(tài)IP

設(shè)置靜態(tài)IP之前這里先介紹一下個(gè)人網(wǎng)絡(luò)情況。

菜單->編輯->虛擬網(wǎng)絡(luò)編輯器,記錄并修改IP網(wǎng)段和網(wǎng)關(guān)地址,或者直接用默認(rèn)生成的配置:

網(wǎng)關(guān)IP如下,這里需要記憶一下這個(gè)IP,等下會(huì)使用上:

這里的IP為:192.168.154.2。

設(shè)置虛擬機(jī)IP和網(wǎng)關(guān)

根據(jù)前面的截圖,這里總結(jié)下個(gè)人的配置。

子網(wǎng)IP:

192.168.154.0

子網(wǎng)掩碼:

255.255.255.0

網(wǎng)關(guān) IP:

192.168.154.2

修改虛擬機(jī)網(wǎng)卡配置

  • 打開虛擬機(jī)

  • 在終端打開網(wǎng)卡配置文件并修改,非管理員需要加sudo。

  • vi /etc/sysconfig/network-scripts/ifcfg-ens33,將BOOTPROTO字段修改為static,如果ONBOOT字段為no,則將其修改為yes(開機(jī)自啟)。

  • 添加具體的IP地址如 192.168.154.128、子網(wǎng)掩碼、網(wǎng)關(guān)、以及常用的DNS。其中IP網(wǎng)段,子網(wǎng)掩碼,網(wǎng)關(guān)為上一步中提到的IP。

大部分情況下默認(rèn)給的網(wǎng)卡都是 ens33。

vi?/etc/sysconfig/network-scripts/ifcfg-ens33

首先把 BOOTPROTO 的值進(jìn)行修改。

BOOTPROTO=static

在網(wǎng)卡配置中進(jìn)行修改。

IPADDR=192.168.154.128
ETMASK=255.255.255.0
GATEWAY=192.168.154.2
DNS1=8.8.8.8
DNS2=114.114.114.114

設(shè)置完成之后重啟。

systemctl?restart?network

最后使用命令ip addr檢查。

個(gè)人配置

最后個(gè)人三臺(tái)機(jī)器的配置如下:

第一臺(tái)機(jī)器7911

BOOTPROTO=static

IPADDR=192.168.154.128
ETMASK=255.255.255.0
GATEWAY=192.168.154.2
DNS1=8.8.8.8
DNS2=114.114.114.114

第二臺(tái)機(jī)器7912

BOOTPROTO=static

IPADDR=192.168.154.131
ETMASK=255.255.255.0
GATEWAY=192.168.154.2
DNS1=8.8.8.8
DNS2=114.114.114.114

第三臺(tái)機(jī)器7913

BOOTPROTO=static

IPADDR=192.168.154.130
ETMASK=255.255.255.0
GATEWAY=192.168.154.2
DNS1=8.8.8.8
DNS2=114.114.114.114

5. 檢查NetManager的狀態(tài)

systemctl?status?NetworkManager.service

結(jié)果:

[xander@localhost?~]$?systemctl?status?NetworkManager.service

●?NetworkManager.service?-?Network?Manager
???Loaded:?loaded?(/usr/lib/systemd/system/NetworkManager.service;?enabled;?vendor?preset:?enabled)
???Active:?active?(running)?since?Sun?2023-06-18?22:18:57?EDT;?2?days?ago
?????Docs:?man:NetworkManager(8)
?Main?PID:?686?(NetworkManager)
???CGroup:?/system.slice/NetworkManager.service
???????????└─686?/usr/sbin/NetworkManager?--no-daemon

6. 檢查NetManager管理的網(wǎng)絡(luò)接口

nmcli?dev?status

運(yùn)行結(jié)果如下:

[xander@localhost?~]$?nmcli?dev?status

DEVICE??TYPE??????STATE??????CONNECTION?
ens33???ethernet??connected??ens33??????
lo??????loopback??unmanaged??--??

7. 檢查NetManager管理的網(wǎng)絡(luò)連接

nmcli?connection?show
[xander@localhost?~]$?nmcli?connection?show
NAME???UUID??????????????????????????????????TYPE??????DEVICE?
ens33??b749bcf8-eeeb-446f-bb42-30a333da7328??ethernet??ens33

8. 設(shè)置dns

nmcli?con?mod?ens33?ipv4.dns?"114.114.114.114?8.8.8.8"

9. 讓dns配置生效

nmcli?con?up?ens33
[root@localhost?xander]#?nmcli?con?up?ens33

Connection?successfully?activated?(D-Bus?active?path:?/org/freedesktop/NetworkManager/ActiveConnection/4)

10. 配置host

查看主機(jī)名稱

查看主機(jī)名的命令如下:

hostname

hosts 文件的格式如下:

[root@localhost?xander]#?vi?/etc/hosts

127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4
::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6
1IP地址? 主機(jī)名/域名? 主機(jī)名別名

第一部份:網(wǎng)絡(luò) IP 地址

第二部份:主機(jī)名或域名

第三部份:主機(jī)名別名

根據(jù)自己的需要修改host即可。

默認(rèn)情況如下:

[root@localhost?xander]#?hostname
localhost.localdomain

為了方便三臺(tái)虛擬機(jī)快速進(jìn)行通信,這里用同一份主機(jī)解析配置。

192.168.154.128?zknode1
192.168.154.131?zknode2
192.168.154.130?zknode3

配置完成之后,建議在三臺(tái)主機(jī)上都嘗試一下能否正常ping通過:

PING?zknode1?(192.168.154.128)?56(84)?bytes?of?data.
64?bytes?from?zknode1?(192.168.154.128):?icmp_seq=1?ttl=64?time=0.009?ms
64?bytes?from?zknode1?(192.168.154.128):?icmp_seq=2?ttl=64?time=0.048?ms
^C
---?zknode1?ping?statistics?---
2?packets?transmitted,?2?received,?0%?packet?loss,?time?1001ms
rtt?min/avg/max/mdev?=?0.009/0.028/0.048/0.020?ms
[root@localhost?conf]#?ping?zknode2
PING?zknode2?(192.168.154.131)?56(84)?bytes?of?data.
64?bytes?from?zknode2?(192.168.154.131):?icmp_seq=1?ttl=64?time=0.968?ms
64?bytes?from?zknode2?(192.168.154.131):?icmp_seq=2?ttl=64?time=0.250?ms
^C
---?zknode2?ping?statistics?---
2?packets?transmitted,?2?received,?0%?packet?loss,?time?1001ms
rtt?min/avg/max/mdev?=?0.250/0.609/0.968/0.359?ms

[root@localhost?conf]#?ping?zknode3
ping:?zknode3:?Name?or?service?not?known
#?這里發(fā)現(xiàn)敲錯(cuò)了又回去改了一遍

[root@localhost?conf]#?ping?zknode3
PING?zknode3?(192.168.154.130)?56(84)?bytes?of?data.
64?bytes?from?zknode3?(192.168.154.130):?icmp_seq=1?ttl=64?time=1.67?ms
64?bytes?from?zknode3?(192.168.154.130):?icmp_seq=2?ttl=64?time=0.185?ms
^C
---?zknode3?ping?statistics?---

11. 關(guān)閉防火墻

systemctl?disable?firewalld

12. 配置 yum

三臺(tái)機(jī)器執(zhí)行下面的命令即可。

yum?clean?all
yum?makecache
yum?install?-y?wget

13. 安裝 JDK 8

進(jìn)入官網(wǎng):Java Archive Downloads - Java SE 8 (oracle.com)

image.png

下載之后需要把文件傳輸?shù)絃inux服務(wù)器,傳輸之后在服務(wù)器執(zhí)行下面的指令:

[root@localhost?xander]#?ls
jdk1.8.0_202??jdk-8u202-linux-x64.tar.gz?

[root@localhost?xander]#?tar?-zxvf?jdk-8u202-linux-x64.tar.gz

解壓后把文件放到指定位置,個(gè)人放到了 /opt 的文件目錄下。

vim?/etc/bashrc

在這個(gè)文件的末尾添加下面的內(nèi)容:

#?Java_Home?改為自己對應(yīng)的目錄即可。
export?JAVA_HOME=/opt/jdk1.8.0_202
export?JRE_HOME=${JAVA_HOME}/jre?
export?CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib?
export?PATH=${JAVA_HOME}/bin:$PATH

修改之后source一下讓配置修改生效。

source?/etc/bashrc

接著運(yùn)行javac、java、java -version這些明命令即可。

[root@localhost?jdk1.8.0_202]#?java?-version
java?version?"1.8.0_202"
Java(TM)?SE?Runtime?Environment?(build?1.8.0_202-b08)
Java?HotSpot(TM)?64-Bit?Server?VM?(build?25.202-b08,?mixed?mode)

14. 安裝配置 Zookeeper

構(gòu)建相關(guān)存儲(chǔ)目錄

  1. 為了方便管理,首先需要構(gòu)建目錄存儲(chǔ)Zookeeper。

mkdir?-p?/opt/zookeeper/zk3.5.10
mkdir?-p?/opt/zookeeper/zk3.5.10/dataDir
mkdir?-p?/opt/zookeeper/zk3.5.10/dataLogDir

  1. 去官網(wǎng)下載Zookeeper,考慮到后續(xù)實(shí)戰(zhàn)使用Curator 4.3.0 版本,所以Zk這里選擇的版本為 zk3.5.10。

官網(wǎng)地址:Apache ZooKeeper

image.png
image.png

注意下載是帶bin的包,不帶Bin為源碼包。

image.png

下載安裝包之后,把 tar 包遷移到對應(yīng)的位置。

[root@localhost?xander]#?mv?apache-zookeeper-3.5.10-bin.tar.gz?/opt/zookeeper/zk3.5.10/

接著我們需要修改ZK的配置文件。

[root@localhost?conf]#?pwd
/opt/zookeeper/zk3.5.10/zk3510/conf

[root@localhost?conf]#?mv?zoo_sample.cfg?zoo.cfg

修改 zoo.cfg 配置,在末尾添加下面的內(nèi)容。

#######################cluster##########################
server.1=zknode1:2888:3888
server.2=zknode2:2888:3888
server.3=zknode3:2888:3888

image.png

這里補(bǔ)充解釋一下這個(gè)配置的含義。

server.1=zknode1:2888:3888

我們可以把他看作是四個(gè)部分:

  • server.1 的 1 含義:配置的myid,相當(dāng)于一個(gè)身份標(biāo)示。(意思就是說第一臺(tái)機(jī)器叫1號)。

  • zknode1 含義:主機(jī)地址,由于之前我們在hosts文件中做了配置,所以可以直接用自定義的“域名”替換。

  • 第一個(gè) 2888:Leader與Follower通信的端口號。

  • 第二個(gè) 3888:Leader服務(wù)器掛了,用于選舉的通信端口號。

然后我們修改數(shù)據(jù)文件目錄的存放位置,如果有必要可以添加添加dataLogDir存儲(chǔ)位置:

#?the?directory?where?the?snapshot?is?stored.
#?do?not?use?/tmp?for?storage,?/tmp?here?is?just?
#?example?sakes.
dataDir=/opt/zookeeper/zk3.5.10/dataDir
dataLogDir=/opt/zookeeper/zk3.5.10/dataLogDir

image.png

配置之后我們啟動(dòng)測試一下:

[root@localhost?bin]#?./zkServer.sh?start
ZooKeeper?JMX?enabled?by?default
Using?config:?/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Starting?zookeeper?...?FAILED?TO?START

啟動(dòng)失敗不要慌,先觀察一下狀態(tài):

[root@localhost?bin]#?./zkServer.sh?status
ZooKeeper?JMX?enabled?by?default
Using?config:?/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Client?port?found:?2181.?Client?address:?localhost.?Client?SSL:?false.
Error?contacting?service.?It?is?probably?not?running.

接著根據(jù)日志排查原因:

[root@localhost?bin]#?cat?../logs/zookeeper-xander-server-localhost.localdomain.out?
2023-06-21?03:15:34,530?[myid:]?-?INFO??[main:QuorumPeerConfig@154]?-?Reading?configuration?from:?/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
2023-06-21?03:15:34,535?[myid:]?-?INFO??[main:QuorumPeerConfig@414]?-?clientPortAddress?is?0.0.0.0:2181
2023-06-21?03:15:34,535?[myid:]?-?INFO??[main:QuorumPeerConfig@418]?-?secureClientPort?is?not?set
2023-06-21?03:15:34,538?[myid:]?-?ERROR?[main:QuorumPeerMain@90]?-?Invalid?config,?exiting?abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException:?Address?unresolved:?zknode1:3888?
?at?org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.<init>(QuorumPeer.java:264)
?at?org.apache.zookeeper.server.quorum.flexible.QuorumMaj.<init>(QuorumMaj.java:89)
?at?org.apache.zookeeper.server.quorum.QuorumPeerConfig.createQuorumVerifier(QuorumPeerConfig.java:625)
?at?org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseDynamicConfig(QuorumPeerConfig.java:658)
?at?org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:631)
?at?org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:449)
?at?org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:171)
?at?org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:114)
?at?org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:83)

這樣的報(bào)錯(cuò)是zoo.cfg上的配置可能存在空格等內(nèi)容,ZK對于配置的校驗(yàn)非常嚴(yán)格,有時(shí)候拷貝配置會(huì)多拷貝空格的情況,為了快速查找空格等情況,我們通過顯示隱藏字符的方式排查。

在vim打開文件之后,使用冒號進(jìn)入到命令模式,然后敲入下面的內(nèi)容:

:set?list

image.png

我們把zoo.cfg的多余空格刪除之后,重新嘗試啟動(dòng)發(fā)現(xiàn)還是報(bào)錯(cuò)。

Caused?by:?java.lang.IllegalArgumentException:?myid?file?is?missing

myid 配置

上面的報(bào)錯(cuò)意味著我們需要在 dataDir 中構(gòu)建對應(yīng)的 myid 以及對應(yīng)的id文件。

echo?"1"?>?/opt/zookeeper/zk3.5.10/dataDir/myid

為什么要弄個(gè)這樣奇怪的文件,只能說照做就行了,這個(gè)配置是讓ZK知道當(dāng)前所處的集群使用哪一份配置。此外需要注意切換到其他的服務(wù)器需要修改這個(gè)echo "1"的值。

也可以直接修改 myid 中的標(biāo)識(shí)

比如個(gè)人的 xxxx.131 是第二臺(tái)機(jī)器,這里的命令就需要用:

echo?"2"?>?/opt/zookeeper/zk3.5.10/dataDir/myid

個(gè)人的xxxx.130是第三臺(tái)機(jī)器,命令如下:

echo?"3"?>?/opt/zookeeper/zk3.5.10/dataDir/myid

吐槽一下這個(gè)設(shè)計(jì)不是很好理解

通過上面的處理之后我們再次嘗試啟動(dòng)。

[root@localhost?bin]#?./zkServer.sh?start
ZooKeeper?JMX?enabled?by?default
Using?config:?/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Starting?zookeeper?...?STARTED

日志上看是啟動(dòng)成功了,我們看下日志打印情況。

image.png

其他機(jī)器同步

我們目前有三臺(tái)服務(wù)器,但是只啟動(dòng)了一臺(tái),根據(jù)集群規(guī)則,zookeeper集群還沒有達(dá)到半數(shù)服務(wù)器運(yùn)行,集群無法正常運(yùn)行

接下來就是一些重復(fù)性勞動(dòng),我們需要在其他幾臺(tái)機(jī)器執(zhí)行上面提到的配置JDK和ZK的配置操作。

這里個(gè)人用了比較笨的方法,那就是把相關(guān)JDK和ZK的目錄文件夾等全部拷貝到其他機(jī)器,這樣需要自己操作的配置項(xiàng)是最少的。

也可以去網(wǎng)上找些sync的腳本,在機(jī)器很多的時(shí)候很有必要,3臺(tái)的工作量還不是很大。

image.png

15. 觀察集群信息

7912(IP為131) 第二臺(tái)機(jī)器被選擇為 Leader。

image.png

7911(IP為128) 第一臺(tái)服務(wù)器變?yōu)?Follow。

image.png

剩下最后一臺(tái)當(dāng)然也是 Follow。

當(dāng)然我們也可以利用zkServer.sh status這樣的命令查看每個(gè)節(jié)點(diǎn)當(dāng)前運(yùn)行狀態(tài)。

[root@localhost?bin]#?./zkServer.sh?status
ZooKeeper?JMX?enabled?by?default
Using?config:?/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Client?port?found:?2181.?Client?address:?localhost.?Client?SSL:?false.
Mode:?follower

[root@zknode2?zk3510]#?./bin/zkServer.sh?status
ZooKeeper?JMX?enabled?by?default
Using?config:?/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Client?port?found:?2181.?Client?address:?localhost.?Client?SSL:?false.
Mode:?leader

如果出現(xiàn)上面的信息,說明你的集群已經(jīng)搭建成功了。

個(gè)人Zookeeper集群配置備份

本著最簡單原則,這里提供本文個(gè)人實(shí)驗(yàn)導(dǎo)出的Java和ZK配置文件夾。你只需要把兩個(gè)文件夾放到/opt就可以快速檢索本文的配置復(fù)制粘貼即可,唯一麻煩的地方可能是myid的配置需要自己修改。

鏈接:https://pan.baidu.com/s/1TevDoAPbP8zvQFxNVMNecQ?pwd=44ew 提取碼:44ew

寫在最后

這一套配置個(gè)人最后在另一臺(tái)電腦按照步驟操作之后集群很快搭建了。

問題匯總

解決啟動(dòng)zookeeper時(shí)Could not find or Load main class org.apache.zookeeper.server.quorum.QuorumPeerMain的報(bào)錯(cuò)

apache-zookeeper-3.6.1.tar.gz這個(gè)壓縮包,這個(gè)壓縮包都是zookeeper的源碼,并不是經(jīng)過編譯后的包,所以啟動(dòng)時(shí)肯定會(huì)失敗。解決辦法只需要使用Bin包重新處理即可。

推薦閱讀

zookeeper入門到精通03——zookeeper集群搭建-騰訊云開發(fā)者社區(qū)-騰訊云 (tencent.com)

oozoo

【Zookeeper】基于3臺(tái)linux虛擬機(jī)搭建zookeeper集群的評論 (共 條)

分享到微博請遵守國家法律
长海县| 乐都县| 平遥县| 满城县| 海安县| 武宁县| 合水县| 托里县| 甘德县| 三原县| 梁河县| 阳春市| 渝中区| 罗平县| 宣汉县| 资溪县| 曲靖市| 岳池县| 乐安县| 永济市| 丘北县| 桦南县| 山东| 敦煌市| 淮安市| 黄陵县| 镇巴县| 西林县| 沭阳县| 安徽省| 桐庐县| 高邮市| 永州市| 梅州市| 华池县| 勃利县| 庆城县| 乌兰浩特市| 巫溪县| 内丘县| 石棉县|