當前位置:首頁 » 存儲配置 » hbase存儲路徑

hbase存儲路徑

發布時間: 2024-08-03 15:19:06

1. HBase存儲架構

上圖是HBase的存儲架構圖。

由上圖可以知道,客戶端是通過Zookeeper找到HMaster,然後再與具體的Hregionserver進行溝通讀寫數據的。

具體到物理實現,細節包括以下這些:

首先要清楚HBase在hdfs中的存儲路徑,以及各個目錄的作用。在hbase-site.xml 文件中,配置項 <name> hbase.rootdir</name> 默認 「/hbase」,就是hbase在hdfs中的存儲根路徑。以下是hbase0.96版本的個路徑作用。1.0以後的版本請參考這里: https://blog.bcmeng.com/post/hbase-hdfs.html

1、 /hbase/.archive
HBase 在做 Split或者 compact 操作完成之後,會將 HFile 移到.archive 目錄中,然後將之前的 hfile 刪除掉,該目錄由 HMaster 上的一個定時任務定期去清理。

2、 /hbase/.corrupt
存儲HBase損壞的日誌文件,一般都是為空的。

3、 /hbase/.hbck
HBase 運維過程中偶爾會遇到元數據不一致的情況,這時候會用到提供的 hbck 工具去修復,修復過程中會使用該目錄作為臨時過度緩沖。

4、 /hbase/logs
HBase 是支持 WAL(Write Ahead Log) 的,HBase 會在第一次啟動之初會給每一台 RegionServer 在.log 下創建一個目錄,若客戶端如果開啟WAL 模式,會先將數據寫入一份到.log 下,當 RegionServer crash 或者目錄達到一定大小,會開啟 replay 模式,類似 Mysql 的 binlog。

5、 /hbase/oldlogs
當.logs 文件夾中的 HLog 沒用之後會 move 到.oldlogs 中,HMaster 會定期去清理。

6、 /hbase/.snapshot
hbase若開啟了 snapshot 功能之後,對某一個用戶表建立一個 snapshot 之後,snapshot 都存儲在該目錄下,如對表test 做了一個 名為sp_test 的snapshot,就會在/hbase/.snapshot/目錄下創建一個sp_test 文件夾,snapshot 之後的所有寫入都是記錄在這個 snapshot 之上。

7、 /hbase/.tmp
當對表做創建或者刪除操作的時候,會將表move 到該 tmp 目錄下,然後再去做處理操作。

8、 /hbase/hbase.id
它是一個文件,存儲集群唯一的 cluster id 號,是一個 uuid。

9、 /hbase/hbase.version
同樣也是一個文件,存儲集群的版本號,貌似是加密的,看不到,只能通過web-ui 才能正確顯示出來

10、 -ROOT-
該表是一張的HBase表,只是它存儲的是.META.表的信息。通過HFile文件的解析腳本 hbase org.apache.hadoop.hbase.io.hfile.HFile -e -p -f 可以查看其存儲的內容,如下所示:

以上可以看出,-ROOT-表記錄的.META.表的所在機器是dchbase2,與web界面看到的一致:

11、 .META.
通過以上表能找到.META.表的信息,該表也是一張hbase表,通過以上命令,解析其中一個region:

以上可以看出,adt_app_channel表的數據記錄在dchbase3這台reginserver上,也與界面一致,如果有多個region,則會在表名後面加上rowkey的范圍:

通過以上描述,只要找到-ROOT-表的信息,就能根據rowkey找到對應的數據,那-ROOT-在哪裡找呢?從本文一開始的圖中可以知道,就是在zookeeper中找的。進入zookeeper命令行界面:

可以看出-ROOT-表存儲在 dchbase3 機器中,對應界面如下:

以上就是HBase客戶端根據指定的rowkey從zookeeper開始找到對應的數據的過程。

那在Region下HBase是如何存儲數據的呢?

以下就具體操作一張表,查詢對應的HFile文件,看HBase的數據存儲過程。

在HBase創建一張表 test7,並插入一些數據,如下命令:

查看wal日誌,通過 hbase org.apache.hadoop.hbase.regionserver.wal.HLog --mp -p 命令可以解析HLog文件,內容如下:

查看HFile文件,內容如下:

由此可見,HFile文件就是存儲HBase的KV對,其中Key的各個欄位包含了的信息如下:

由於hbase把cf和column都存儲在HFile中,所以在設計的時候,這兩個欄位應該盡量短,以減少存儲空間。

但刪除一條記錄的時候,HBase會怎麼操作呢?執行以下命令:

刪除了rowkey為200的記錄,查看hdfs,原來的HFile並沒有改變,而是生成了一個新的HFile,內容如下:

所以在HBase中,刪除一條記錄並不是修改HFile裡面的內容,而是寫新的文件,待HBase做合並的時候,把這些文件合並成一個HFile,用時間比較新的文件覆蓋舊的文件。HBase這樣做的根本原因是,HDFS不支持修改文件。

2. hbase wal 是同步的嗎

hbase wal 是同步的。

HBase的數據文件都存儲在HDFS上,格式主要有兩種:HFile:HBase中KeyValue數據的存儲格式,HFile是Hadoop的二進虛扒制文件,實際上StoreFile就是對HFile做了輕量級的包裝,即StoreFile底層就是HFile。

其中數據文件枯晌位置可為本地文件目錄,也可以分布式文件系統hdfs的路徑。當其為前者時,直接指定即可,也可以加前綴file:///而當差敗昌其偉後者時,必須明確指明hdfs的路徑,例如hdfs://mymaster:9000/path。

訪問介面:

1. Native java API,最常規和高效的訪問方式,適合Hadoop MapRece Job並行批處理HBase表數據。

2. HBase Shell,HBase的命令行工具,最簡單的介面,適合HBase管理使用。

3. Thrift Gateway,利用Thrift序列化技術,支持C++,PHP,Python等多種語言,適合其他異構系統在線訪問HBase表數據。

4. REST Gateway,支持REST 風格的Http API訪問HBase, 解除了語言限制。

5. Pig,可以使用Pig Latin流式編程語言來操作HBase中的數據,和Hive類似,本質最終也是編譯成MapRece Job來處理HBase表數據,適合做數據統計。

3. 涓ゅ彴鏈嶅姟鍣ㄦ墜鍔ㄩ儴緗插ぇ鏁版嵁騫沖彴

涓ゅ彴鏈嶅姟鍣ㄦ墜鍔ㄩ儴緗插ぇ鏁版嵁騫沖彴

##### 鍒濆嬫湇鍔″櫒鏁伴噺

- 2鍙癱entos7

##### 寤鴻閰嶇疆

- 32G(RAM)

- 24cpu

- 10t(SATA)

### 1.鐜澧

- 緋葷粺centos7

- jdk錛1.8.0_171錛64浣嶏級

- zookeeper錛3.4.8

- spark-2.1.0-bin-hadoop2.6

- kafka_2.10-0.10.2.1

- hadoop-2.7.0

- hbase-1.2.6

- elasticsearch-6.3.0

### 2.緋葷粺鍑嗗

瀵瑰簲鐨勫畨瑁呭寘鏂囦歡錛

elasticsearch-6.3.0.tar.gz

hadoop-2.7.0.tar.gz

hbase-1.2.6-bin.tar.gz

jdk-8u171-linux-x64.tar.gz

kafka_2.10-0.10.2.1.tgz

mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar

spark2.1.0hadoop2.6.tgz.gz

zookeeper-3.4.8.tar.gz

涓銆 閰嶇疆濂絟osts

```

涓ゅ彴璁懼囩殑host

ip1 hello1

ip2 hello2

鍏抽棴闃茬伀澧

systemctl stop firewalld

systemctl disable firewalld

浜屻佹満鍣ㄤ箣闂村仛濂藉厤瀵

1. 鍦╤ello1鏈嶅姟鍣ㄤ腑錛宑d /root/

2. ssh-keygen -trsa  (鍏ㄩ儴鎸夊洖杞︼紝璧伴粯璁ら厤緗)

3. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4. chmod 600 ~/.ssh/authorized_keys

5. scp ~/.ssh/authorized_keys root@hello2:~/.ssh/

鍒版ゅ勬椂鍙浠ュ疄鐜癶ello1鏈哄櫒涓婇氳繃root璐︽埛鐧誨綍鍒癶ello2涓錛屼絾浠巋ello2涓鏃犳硶閫氳繃鍏嶅瘑鐮佺櫥褰曞埌hello1鏈嶅姟鍣ㄣ

6. 鍦╤ello2鏈嶅姟鍣ㄤ腑錛宑d /root/

7. ssh-keygen -trsa  (鍏ㄩ儴鎸夊洖杞︼紝璧伴粯璁ら厤緗)

8. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

9. scp ~/.ssh/authorized_keys root@hello1:~/.ssh/

鍒版ゅ勬椂鍙浠ュ疄鐜癶ello1鏈哄櫒涓巋ello2鏈哄櫒涔嬮棿鍏嶅瘑鐮佷簰閫

涓夈佸緩絝嬩竴涓鐢ㄦ埛鎿嶄綔elasticsearch鐢ㄦ埛錛屽悗鏈熸墍鏈夊畨瑁呰蔣浠舵斁鍦ㄨョ洰褰曚笅錛堝綋鍓嶄嬌鐢╮oot璐︽埛瀹夎咃級

1.娣誨姞鐢ㄦ埛錛

useradd -m -s /bin/bash es

2.涓鴻ョ敤鎴瘋劇疆瀵嗙爜錛

password es

鍥涖佸畨瑁匤DK

濡傛灉緋葷粺鑷甯openjdk錛屽厛灝嗗叾鍗歌澆鎺夛紒

1.鍒涘緩jdk瀹夎呰礬寰(hello1銆乭ello2閮芥墽琛)

鎵ц岋細 mkdir /usr/java

2.瑙e帇緙﹋dk鍒板畨瑁呯洰褰

鎵ц岋細 tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/

3.娣誨姞鐜澧冨彉閲

vi /etc/profile,娣誨姞浠ヤ笅璇鍙

export JAVA_HOME=/usr/java/jdk1.8.0_171

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

鎵ц岋細source /etc/profile

4.澶嶅埗瀹夎呭寘鍜屾暟鎹鐩褰曞埌hello2

scp  -r /usr/java/jdk1.8.0_171 hello2:/usr/java/

scp /etc/profile hello2:/etc/

鐧誨綍鍒癶ello2涓婏紝榪涘叆/home/es鐩褰

鎵ц岋細 source /etc/profile

5銆侀獙璇侊細

涓ゅ彴鏈嶅姟鍣ㄤ笂鍒嗗埆鎵ц岋細 java -version,鏌ョ湅杈撳嚭鐨勭増鏈鏄鍚︿笌瀹夎呯殑鐗堟湰涓鑷淬

浜斻佸畨瑁卪ysql

1.濡傛灉centos緋葷粺涓鑷甯mariadb錛屽厛鍗歌澆mariadb銆

2.瑙e帇mysql瀹夎呭寘紼嬪簭

鎵ц岋細tar -xvf  mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar

3.渚濇″畨瑁呴噷闈rpm鍖呯粍寤

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.23-1.el7.x86_64.rpm

4.鍚鍔∕ySQL

鎵ц岋細 systemctl start mysqld

5.鐧誨綍mysql鏈嶅姟鍣

榪欑嶆柟寮忓畨瑁呭ソ鍚庯紝浼氬啀my.cnf鏂囦歡涓鑷鍔ㄧ敓鎴愪竴涓瀵嗙爜錛

鎵ц岋細cat /var/log/mysqld.log | grep password錛 鍑虹幇濡備笅璁板綍錛

2017-09-15T01:58:11.863301Z 1 [Note] A temporary password is generated for root@localhost: m-NdrSG4ipuO

鍏朵腑鈥渕-NdrSG4ipuO鈥濅負mysql root璐︽埛鐨勫垵濮嬪瘑鐮併

鐧誨綍錛

鎵ц岋細 mysql -uroot -p

杈撳叆瀵嗙爜錛 m-NdrSG4ipuO錛屽嵆鍙榪涘叆mysql鏈嶅姟鍣ㄣ

鍚庣畫鍙鑷琛屼慨鏀箁oot瀵嗙爜錛屽壋寤烘柊璐︽埛絳夋搷浣溿

鍏銆佸畨瑁厇ookeeper

1.瑙e帇zookeeper瀹夎呭寘鍒版寚瀹氱洰褰曪紙/home/es錛

tar -zxvf zookeeper-3.4.8.tar.gz -C /home/es

2.鍒涘緩紼嬪簭杞榪炴帴

cd /home/es/

ln -s zookeeper-3.4.8 zookeeper

3.娣誨姞鎵ц岃礬寰勭幆澧

vi /etc/profile

娣誨姞

export ZOOKEEPER_HOME=/home/es/zookeeper

export PATH=$PATH:$ZOOKEEPER_HOME/bin

鎵ц

source /etc/profile

4.淇鏀歸厤緗鏂囦歡

cd /home/es/zookeeper

cp conf/zoo_sample.cfg conf/zoo.cfg

鍦/home/data涓嬪壋寤哄瑰簲鐨剒ookeeper鏁版嵁瀛樺偍鐩褰

mkdir /home/data/zookeeper

mkdir /home/data/zookeeper/data

mkdir /home/data/zookeeper/log

淇鏀歸厤緗鏂囦歡錛歝onf/zoo.cfg錛屾坊鍔犱互涓嬭鍙

dataDir=/home/data/zookeeper/data

dataLogDir=/home/data/zookeeper/log

server.1=hello1:2888:3888

server.2=hello2:2888:3888

5.鍒涘緩server琛ㄧず絎︽枃浠

touch /home/data/zookeeper/data/myid

echo echo 1>/home/data/zookeeper/data/myid

6.澶嶅埗瀹夎呭寘鍜屾暟鎹鐩褰曞埌hello2

scp -r /home/es/zookeeper-3.4.8 es@hello2:/home/es

scp -r /home/data/zookeeper es@hello2:/home/data

scp  /etc/profile es@hello2:/etc

鐧誨綍鍒癶ello2涓

cd /home/es

ln -s zookeeper-3.4.8 zookeeper

echo echo 2>/home/data/zookeeper/data/myid

鎵ц

source /etc/profile

7.涓ゅ彴鏈哄櫒涓婂垎鍒鎵ц

zkServer.sh start

8.楠岃瘉

jps | grep QuorumPeerMain,鏌ョ湅鏄鍚︽湁璇ヨ繘紼

zkServer.sh status,鏌ョ湅鏈嶅姟鐘舵

鍏銆佸畨瑁卥afka

1.瑙e帇kafka瀹夎呭寘鍒版寚瀹氱洰褰曪紙/home/es錛

tar -zxvf kafka_2.10-0.10.2.1.tgz -C /home/es

2.鍒涘緩紼嬪簭杞榪炴帴

cd /home/es/

ln -s kafka_2.10-0.10.2.1 kafka

3.淇鏀歸厤緗鏂囦歡

澶囦喚錛

cp config/server.properties config/server.properties.bak

鍒涘緩kafka鏃ュ織鐩褰曪細

mkdir /home/data/kafka

mkdir /home/data/kafka/kafka-logs

淇鏀:config/server.properties,鍏蜂綋瀵瑰簲瀛楁靛備笅錛

broker.id=0

delete.topic.enable=true

num.network.threads=10

num.io.threads=32

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/home/data/kafka/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=hello1:2181,hello2:2181

zookeeper.connection.timeout.ms=6000

6.澶嶅埗瀹夎呭寘鍜屾暟鎹鐩褰曞埌hello2

scp -r /home/es/kafka_2.10-0.10.2.1 es@hello2:/home/es

scp -r /home/data/kafka es@hello2:/home/data

淇鏀筯ello2涓鐨勯厤緗

鐧誨綍鍒癶ello2涓婏紝cd /home/es/kafka,淇鏀筩onfig/server.properties涓璪roker.id鍊間負2.

7.鍚鍔╧afka

鍦ㄤ袱鍙版満鍣ㄧ殑/home/es/kafka涓錛屽壋寤轟竴涓鏃ュ織瀛樻斁鐩褰曪細mkdir start_log錛屾墽琛屼互涓嬪懡浠わ細

nohup bin/kafka-server-start.sh config/server.properties > start_log/kafka_start_log 2>&1 &

8.楠岃瘉榪愯屾儏鍐

jps | grep Kafka,鏌ョ湅榪涚▼

閫氳繃kafka鍛戒護鏌ョ湅topic銆

涓冦佸畨瑁卙adoop

1.瑙e帇hadoop瀹夎呭寘鍒版寚瀹氱洰褰曪紙/home/es錛

tar -zxvf hadoop-2.7.0.tar.gz -C /home/es

2.鍒涘緩紼嬪簭杞榪炴帴

cd /home/es/

ln -s hadoop-2.7.0 hadoop

3.鍒涘緩鏁版嵁瀛樻斁鐩褰

mkdir /home/data/hadoop

mkdir /home/data/hadoop/tmp

mkdir /home/data/hadoop/dfs

mkdir /home/data/hadoop/dfs/data

mkdir /home/data/hadoop/dfs/name

4.淇鏀歸厤緗鏂囦歡

淇鏀/home/es/hadoop/etc/hadoop/core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hello1:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/data/hadoop/tmp</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131702</value>

</property>

</configuration>

淇鏀/home/es/hadoop/etc/hadoop/hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/data/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/data/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hello1:9001</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

淇鏀/home/es/hadoop/etc/hadoop/mapred-site.xml

<configuration>

<property>

<name>maprece.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>maprece.jobhistory.address</name>

<value>hello1:10020</value>

</property>

<property>

<name>maprece.jobhistory.webapp.address</name>

<value>hello1:19888</value>

</property>

</configuration>

淇鏀/home/es/hadoop/etc/hadoop/yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>maprece_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.auxservices.maprece.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>hello1:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheler.address</name>

<value>hello1:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>hello1:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>hello1:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>hello1:8088</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>768</value>

</property>

</configuration>

閰嶇疆/home/es/hadoop/etc/hadoop鐩褰曚笅hadoop-env.sh銆亂arn-env.sh鐨凧AVA_HOME錛堜笉璁劇疆鐨勮瘽錛屽惎鍔ㄤ笉浜嗭級

export JAVA_HOME=/usr/java/jdk1.8.0_171

閰嶇疆/home/es/hadoop/etc/hadoop鐩褰曚笅鐨剆laves錛屽垹闄ら粯璁ょ殑localhost錛屽炲姞2涓浠庤妭鐐癸紝

hello1

hello2

5銆佸皢閰嶇疆濂界殑Hadoop澶嶅埗鍒板悇涓鑺傜偣瀵瑰簲浣嶇疆涓婏紝閫氳繃scp浼犻

scp  -r /home/es/hadoop-2.7.0 hello2:/home/es/

scp  -r /home/data/hadoop hello2:/home/data/

鐧誨綍鍒癶ello2涓婏紝榪涘叆/home/es鐩褰

鎵ц岋細 ln -s hadoop-2.7.0 hadoop

6銆佹牸寮忓寲nameNode鍙婂惎鍔╤adoop

鍦ㄤ富鏈嶅姟鍣ㄥ惎鍔╤adoop錛屼粠鑺傜偣浼氳嚜鍔ㄥ惎鍔錛岃繘鍏/home/es/hadoop鐩褰

鍒濆嬪寲錛岃緭鍏ュ懡浠わ紝bin/hdfs namenode -format

鍏ㄩ儴鍚鍔╯bin/start-all.sh錛屼篃鍙浠ュ垎寮sbin/start-dfs.sh銆乻bin/start-yarn.sh

杈撳叆鍛戒護錛宩ps錛屽彲浠ョ湅鍒扮浉鍏充俊鎮

7銆侀獙璇乭adoop榪愯屾儏鍐

嫻忚堝櫒鎵撳紑http://hello1:8088/

嫻忚堝櫒鎵撳紑http://hello1:50070/

8銆佹坊鍔爃adoop鐜澧冨彉閲忓埌/etc/profile

export HADOOP_HOME=/home/es/hadoop export PATH=$PATH:$HADOOP_HOME/sbin

export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

鎵ц岋細 source /etc/profile

鍏銆佸畨瑁匟base

1.瑙e帇hbase瀹夎呭寘鍒版寚瀹氱洰褰曪紙/home/es錛

tar -zxvf hbase-1.2.6-bin.tar.gz -C /home/es

2.鍒涘緩紼嬪簭杞榪炴帴

cd /home/es/

ln -s hbase-1.2.6 hbase

3.娣誨姞hbase鐜澧冨彉閲忓埌/etc/profile

export  HBASE_HOME=/home/es/hbase

銆銆export  PATH=$HBASE_HOME/bin:$PATH

鎵ц岋細source /etc/profile

4.淇鏀笻BASE閰嶇疆鏂囦歡

vi /home/es/hbase/conf/hbase-env.sh

澧炲姞錛 export JAVA_HOME=/usr/java/jdk1.8.0_171

淇鏀癸細 export HBASE_MANAGES_ZK=false

vi /home/es/hbase/conf/hbase-site.xml

淇鏀圭被瀹癸細

<configuration>

<property>

銆銆銆銆銆銆銆銆<name>hbase.rootdir</name> <!-- hbase瀛樻斁鏁版嵁鐩褰 -->

銆銆銆銆銆銆銆銆<value>hdfs://hello1:9000/hbase/hbase_db</value>

銆銆銆銆銆銆銆銆<!-- 絝鍙h佸拰Hadoop鐨刦s.defaultFS絝鍙d竴鑷-->

銆銆銆銆銆銆</property>

銆銆銆銆銆銆<property>

銆銆銆銆銆銆銆銆<name>hbase.cluster.distributed</name> <!-- 鏄鍚﹀垎甯冨紡閮ㄧ講 -->

銆銆銆銆銆銆銆銆<value>true</value>

銆銆銆銆銆銆</property>

銆銆銆銆銆銆<property>

銆銆銆銆銆銆銆銆<name>hbase.zookeeper.quorum</name> <!-- list of  zookooper -->

銆銆銆銆銆銆銆銆<value>hello1,hello2</value>

銆銆銆銆銆銆</property>

銆銆銆銆銆銆銆<property><!--zookooper閰嶇疆銆佹棩蹇楃瓑鐨勫瓨鍌ㄤ綅緗 -->

銆銆銆銆銆銆銆銆銆銆<name>hbase.zookeeper.property.dataDir</name>

銆銆銆銆銆銆銆銆銆銆<value>/home/es/hbase/zookeeper</value>

銆銆銆銆銆銆銆</property>

</configuration>

閰嶇疆regionservers錛寁i /home/es/hbase/conf/regionservers

鍘繪帀榛樿ょ殑localhost錛屽姞鍏hello1銆乭ello2

5銆佸皢閰嶇疆濂界殑hbase澶嶅埗鍒板悇涓鑺傜偣瀵瑰簲浣嶇疆涓婏紝閫氳繃scp浼犻

scp  -r /home/es/hbase-1.2.6 hello2:/home/es/

scp /etc/profile hello2:/etc/

鐧誨綍鍒癶ello2涓婏紝榪涘叆/home/es鐩褰

鎵ц岋細 ln -s hbase-1.2.6 hbase

source /etc/profile

6銆乭base鐨勫惎鍔

hello1涓鎵ц岋細 start-hbase.sh

7銆侀獙璇乭base榪愯屾儏鍐

杈撳叆jps鍛戒護鏌ョ湅榪涚▼鏄鍚﹀惎鍔ㄦ垚鍔燂紝鑻 hello1涓婂嚭鐜癏Master銆丠RegionServer銆丠QuormPeer錛宧ello2涓婂嚭鐜癏RegionServer銆丠QuorumPeer錛屽氨鏄鍚鍔ㄦ垚鍔熶簡銆

杈撳叆hbase shell 鍛戒護 榪涘叆hbase鍛戒護妯″紡錛岃緭鍏status鍛戒護錛屾煡鐪嬭繍琛岀姸鎬併

鍦ㄦ祻瑙堝櫒涓杈撳叆http://hello1:16010灝卞彲浠ュ湪鐣岄潰涓婄湅鍒癶base鐨勯厤緗

娉ㄦ剰浜嬮」錛

姝e父瀹夎呭悗錛屽壋寤烘櫘閫氫笉甯﹀帇緙╄〃鍙浠ユe父璇誨啓錛屽綋浣跨敤snappy榪涜屽帇緙╁壋寤鴻〃鏃訛紝璇ヨ〃鏃犳硶鍐峳egionServer涓鍚鍔錛

瑙e喅鏂規硶錛

1.鍦╤base-site.xml鏂囦歡涓娣誨姞涓涓嬪睘鎬

<property>

                <name>hbase.regionserver.codecs</name>

                <value>snappy</value>

        </property>

2.姣忓彴鏈哄櫒涓灝唄adoop_native.zip瑙e帇緙╁埌hbase瀹夎呯洰褰曠殑lib涓嬶紝鎵ц unzip hadoop_native.zip $HBASE_HOME/lib/

3.鍦$HBASE_HOME/conf/hbase-env.sh 涓娣誨姞錛歟xport HBASE_LIBRARY_PATH=/home/es/hbase/lib/native

4.閲嶅惎Hbase鏈嶅姟鍗沖彲

涔濄丼park瀹夎

1.瑙e帇hbase瀹夎呭寘鍒版寚瀹氱洰褰曪紙/home/es錛

tar -zxvf spark2.1.0hadoop2.6.tgz.gz -C /home/es

2.鍒涘緩紼嬪簭杞榪炴帴

cd /home/es/

ln -s spark2.1.0hadoop2.6 spark

3.淇鏀歸厤緗鏂囦歡

mv /home/es/spark/conf/spark-env.sh.template  /home/es/spark/conf/spark-env.sh

vi /home/es/spark/conf/spark-env.sh

淇鏀瑰瑰簲閰嶇疆錛

export JAVA_HOME=/usr/java/jdk1.8.0_171

export SPARK_MASTER_IP=hello1

export SPARK_MASTER_PORT=7077

export SPARK_LOCAL_IP=hello1

淇鏀箂laves鏂囦歡

mv /home/es/spark/conf/slaves.template  /home/es/spark/conf/slaves

vi /home/es/spark/conf/slaves

灝唋ocalhost淇鏀規垚錛

hello1

hello2

5銆佸皢閰嶇疆濂界殑hbase澶嶅埗鍒板悇涓鑺傜偣瀵瑰簲浣嶇疆涓婏紝閫氳繃scp浼犻

scp  -r /home/es/spark2.1.0hadoop2.6 hello2:/home/es/

鐧誨綍鍒癶ello2涓婏紝榪涘叆/home/es鐩褰

鎵ц岋細 ln -s spark2.1.0hadoop2.6 spark

鍦╤ello2涓淇鏀/home/es/spark/conf/spark-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_171

export SPARK_MASTER_IP=hello1

export SPARK_MASTER_PORT=7077

export SPARK_LOCAL_IP=hello2

6銆佸惎鍔╯park

cd /home/es/spark

鎵ц岋細 sbin/start-all.sh

7銆佹嫻嬫墽琛岀粨鏋

jps | grep Worker,鐪嬫槸鍚︽湁鐩稿簲鐨勮繘紼嬨

鍗併佸畨瑁卐lasticsearch

鐢變簬elasticsearch錛岀敤root璐︽埛鏃犳硶鍚鍔錛屾晠璇ョ粍浠剁敤es璐︽埛瀹夎

1銆佸垏鎹㈠埌es璐︽埛錛 su es

2銆佽В鍘媓base瀹夎呭寘鍒版寚瀹氱洰褰曪紙/home/es錛

tar -zxvf elasticsearch-6.3.0.tar.gz -C /home/es/

鍒涘緩紼嬪簭杞榪炴帴

cd /home/es/

ln -s elasticsearch-6.3.0 elasticsearch

3銆佷慨鏀歸厤緗鏂囦歡

vi /home/es/elasticsearch/config/elasticsearch.yml

# 闆嗙兢鐨勫悕瀛 

cluster.name: crrc-health

# 鑺傜偣鍚嶅瓧 

node.name: node-1 

# 鏁版嵁瀛樺偍鐩褰曪紙澶氫釜璺寰勭敤閫楀彿鍒嗛殧錛 

path.data: /home/data1/elasticsearch/data

# 鏃ュ織鐩褰 

path.logs: /home/data1/elasticsearch/logs

#鏈鏈虹殑ip鍦板潃

network.host: hello1 

#璁劇疆闆嗙兢涓璵aster鑺傜偣鐨勫垵濮嬪垪琛錛屽彲浠ラ氳繃榪欎簺鑺傜偣鏉ヨ嚜鍔ㄥ彂鐜版柊鍔犲叆闆嗙兢鐨勮妭鐐

discovery.zen.ping.unicast.hosts: ["hello1", "hello2"]

# 璁劇疆鑺傜偣闂翠氦浜掔殑tcp絝鍙o紙闆嗙兢錛,(榛樿9300) 

transport.tcp.port: 9300

# 鐩戝惉絝鍙o紙榛樿わ級 

http.port: 9200

# 澧炲姞鍙傛暟錛屼嬌head鎻掍歡鍙浠ヨ塊棶es 

http.cors.enabled: true

http.cors.allow-origin: "*"

4銆佸壋寤篹lasticsearch鏁版嵁鍜屽瓨鍌ㄧ洰褰

mkdir /home/data1/elasticsearch

mkdir /home/data1/elasticsearch/data

mkdir /home/data1/elasticsearch/logs

5銆佷慨鏀筶inux緋葷粺鐨勯粯璁ょ‖闄愬埗鍙傛暟

鍒囨崲鑷硆oot鐢ㄦ埛錛 su root

vim /etc/security/limits.conf

娣誨姞錛

es soft nofile 65536

es hard nofile 65536

閫鍑篹s鐧誨綍錛岄噸鏂扮敤es璐︽埛鐧誨綍錛屼嬌鐢ㄥ懡浠わ細ulimit -Hn鏌ョ湅紜闄愬埗鍙傛暟銆

vi /etc/sysctl.conf

娣誨姞錛

vm.max_map_count=655360

鎵ц岋細

sysctl -p

6銆佸皢閰嶇疆濂界殑elasticsearch澶嶅埗鍒板悇涓鑺傜偣瀵瑰簲浣嶇疆涓婏紝閫氳繃scp浼犻

scp  -r /home/es/elasticsearch-6.3.0 hello2:/home/es/

scp  -r /home/data1/elasticsearch hello2:/home/data1/

鐧誨綍鍒癶ello2涓婏紝榪涘叆/home/es鐩褰

鎵ц岋細 ln -s elasticsearch-6.3.0 elasticsearch-6.3.0

鍦╤ello2涓淇鏀/home/es/elasticsearch/config/elasticsearch.yml

淇鏀癸細 network.host: hello2

7銆佸惎鍔╡lasticsearch

浣跨敤es璐︽埛

鎵ц岋細

/home/es/elasticsearch/bin/elasticsearch -d

8銆侀獙璇

鎺у埗鍙頒腑杈撳叆錛歝url http://hello1:9200

4. HbBase可以隨機寫入為什麼還要依賴於HDFS

他們的關系是:hbase是一個內存資料庫,而hdfs是一個存儲空間;是物品和房子的關系。
hdfs只是一個存儲空間,他的完整名字是分布式文件系統。從名字可知他的作用了。hbase是一個內存資料庫,簡單點說hbase把表啊什麼的存在hdfs上。
所以即使HbBase可以隨機,它還是要依賴於HDFS。
希望可以幫到您,感謝您的採納!

5. hbase怎麼用

HBase安裝及簡單使用

通過之前的hadoop0.20.2的安裝並調試成功,接下來我們繼續安裝hbase0.90.5。在安裝hbase0.90.5之前,因為hbase0.90.5隻支持jdk1.6,所以,我把之前的jdk1.8卸載,重新安裝了jdk1.6。

第一步:

首先需要下載hbase0.90.5.tar.gz,並解壓到/home/hadoop/的目錄下,同時將目錄修改為hbase0.90.5

第二步:

替換hadoop核心jar包,主要母的是防止hbase和hadoop版本不同出現兼容問題,造成hmaster啟動異常

將hbase0.90.5/lib目錄中的hadoop-core-0.20-append-r1056497.jar包進行備份後刪除,再將/home/hadoop/hadoop下面的hadoop-0.20.2-core.jar賦值到/home/hadoop/hbase0.90.5目錄下即可

第三步:

編輯配置文件

①/home/hadoop/hbase0.90.5/conf/hbase-env.sh

我們對行鍵'1001'中列族info的列名age賦值24(1001:info:age=>24),插入兩次,會將最後一次的值進行合並,其中,用時間戳來區分。從圖片中的時間戳不同可以看出保存的是最後一次put的內容。

熱點內容
上傳醫保局 發布:2024-11-25 14:57:00 瀏覽:732
刀劍神域緩存 發布:2024-11-25 14:56:07 瀏覽:520
c語言計算機二級編程題 發布:2024-11-25 14:46:49 瀏覽:313
c語言判斷進程是否存在 發布:2024-11-25 14:42:50 瀏覽:274
大數據緩存 發布:2024-11-25 14:29:07 瀏覽:436
存儲體與MAR 發布:2024-11-25 14:23:08 瀏覽:283
電腦瀏覽器怎麼取消配置文件 發布:2024-11-25 14:20:39 瀏覽:164
如何消除伺服器數據傳輸瓶頸 發布:2024-11-25 14:08:48 瀏覽:289
安卓開發程序如何上傳到手機上 發布:2024-11-25 14:08:30 瀏覽:29
訪客qq獲取系統源碼 發布:2024-11-25 14:08:30 瀏覽:18