当前位置:首页 » 存储配置 » 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的内容。

热点内容
proclinux进程 发布:2024-11-25 13:34:35 浏览:216
为什么服务器不同步 发布:2024-11-25 13:31:58 浏览:650
电脑新服务器地址 发布:2024-11-25 13:24:02 浏览:918
视频压缩安卓 发布:2024-11-25 13:02:18 浏览:341
当贝上传应用 发布:2024-11-25 13:01:23 浏览:272
中国联通湖北服务器地址 发布:2024-11-25 13:00:38 浏览:747
访问内网计算机 发布:2024-11-25 12:37:53 浏览:969
苹果文件夹名字大全 发布:2024-11-25 12:28:03 浏览:590
ipad上b站缓存分屏 发布:2024-11-25 12:27:59 浏览:981
数据库日志文件查看 发布:2024-11-25 12:17:28 浏览:48