HBase1.1.4搭建笔记

来源:互联网 发布:淘宝淘金币大转盘漏洞 编辑:程序博客网 时间:2024/06/14 06:30

百度搜索越来越不行,看来什么东西都得自己亲力亲为了。自己写教程


前提是Hadoop搭建完成,下载hbase,网址是http://www.apache.org/dist/hbase/1.2.1/,这个速度快.虽然下载的是1.2.1,但是安装配置好之后hbase shell显示的是1.1.4,奇怪

第一步. 下载安装包,解压到合适位置,并将权限分配给hadoop用户(运行hadoop的账户)

这里下载的是hbase-1.1.4,Hadoop集群使用的是1.0.4,将其解压到/usr/local下并重命名为hbase

解压

tar zxvf hbase-1.1.4-bin.tar.gz

重命名

sudo mv hbase-1.1.4 hbase

修改权限

sudo chown -R hadoop:hadoop hbase


第二步. 配置相关的文件

(1) 配置hbase-env.sh,该文件在/usr/local/hbase/conf

设置以下值

export JAVA_HOME=/opt/Java/jdk/jdk1.8.0_91 #Java安装路径export HBASE_CLASSPATH=/usr/local/hbase/conf #HBase类路径export HBASE_MANAGES_ZK=true #由HBase负责启动和关闭Zookeeper


(2)配置hbase-site.xml,该文件位于/usr/local/hbase/conf

<configuration>        <property>                <name>hbase.rootdir</name>                <value>hdfs://Master00:9000/hbase</value>        </property>        <property>                <name>hbase.cluster.distributed</name>                <value>true</value>        </property>        <property>                <name>hbase.zookeeper.quorum</name>                <value>Slave00</value>        </property>        <property>                <name>hbase.zookeeper.property.dataDir</name>                <value>/home/hadoop/tmp/zookeeper</value>        </property>        <property>                <name>dfs.replication</name>                <value>2</value>        </property></configuration>

其中,hbase.master是指定运行HMaster的服务器及端口号;hbase.master.maxclockskew是用来防止HBase节点之间时间不一致造成regionserver启动失败,默认值是30000;hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式;hbase.zookeeper.quorum设置Zookeeper节点的主机名,它的值个数必须是奇数;hbase.zookeeper.property.dataDir设置Zookeeper的目录,默认为/tmp,dfs.replication设置数据备份数,集群节点小于3时需要修改

(3)配置regionservers,该文件位于/usr/local/hbase/conf
设置所运行HBase的机器,此文件配置和hadoop中的slaves类似,一行指定一台机器,本次试验仅用一台机器,设置master即可。

vim regionservers
里面设置

Slave00

Slave01


(4)设置HBase环境变量,文件位于/etc/profile

在文件末尾添加:

#hbase Envexport HBASE_HOME=/usr/local/hbaseexport PATH=$PATH:$HBASE_HOME/bin

使之生效:source /etc/profile

第三步:运行测试


启动hadoop后,在终端输入start-hbase.sh,查看运行的进程:

执行hbase shell

hadoop@Master00:/usr/local/hbase/bin$ hbase shell


执行;list


打开http://192.168.76.130:16010/网址


新建表:


插入在列表data上的不同行和列的三项数据,并列出表的内容


删除表test,首先要把它设为禁用,然后drop掉

disable 'test'

drop 'test'


名称命令表达式创建表create '表名称','列族名称1','列族名称2','列族名称1'添加记录Put '表名称', '行名称','列名称','值'查看记录Get '表名称','行名称'查看表中的记录总数Count '表名称'删除记录Delete '表名称','行名称','列名称'删除一张表先要屏蔽该表,才能对该表进行删除,第一步disable '表名称' 第二步drop '表名称'查看所有记录Scan '表名称'查看某个表某个列中所有数据scan '表名称', ['列名称']更新记录就是重写一遍进行覆盖


关闭:stop-hbase.sh

hbase加密配置

hbase底层提供了cell级别的透明加解密,用户不需要做任何改动,就可以拥有数据加解密.具体配置如下:

具体参考http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.3/book/hbase.encryption.server.html

keytool -keystore /usr/local/hbase/conf/hbase.jks -storetype jceks -storepass 123456 -genseckey -keyalg AES -keysize 128 -alias hbase

在路径/usr/local/hbase/conf下生成密钥hbase.jks.


然后配置hbase-site.xml

添加

        <property>                <name>hbase.crypto.keyprovider</name>                <value>org.apache.hadoop.hbase.io.crypto.KeyStoreKeyProvider</value>        </property>        <property>                <name>hbase.crypto.keyprovider.parameters</name>                <value>jceks:///usr/local/hbase/conf/hbase.jks?password=123456</value>        </property>        <property>                <name>hbase.crypto.master.key.name</name>                <value>hbase</value>        </property>        <property>                <name>hfile.format.version</name>                <value>3</value>        </property>        <property>                <name>hbase.regionserver.hlog.reader.impl</name>                <value>org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader</value>        </property>        <property>                <name>hbase.regionserver.hlog.writer.impl</name>                <value>org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter</value>        </property>        <property>                <name>hbase.regionserver.wal.encryption</name>                <value>true</value>        </property>

其中hbase.crypto.keyprovider是利用的密钥保管类型,hbase.crypto.keyprovider.parameters是密钥保存路径,问号后面是保存密钥的密码,hbase.crypto.master.key.name就是alias名字,hfile.format.version是hfile版本,加密需要hfile版本是3.hbase.regionserver.hlog.reader.impl是数据读取的类,hbase.regionserver.hlog.writer.impl是数据写入的类,hbase.regionserver.wal.encryption标志数据加密.

然后把生成的密钥和配置好的xml,scp到所有集群中,重新启动hbase和hadoop.我们尝试新建数据库,查看存储的数据是否加密.


新建了test和test1表,在test表中插入数据.我们在hadoop集群中/usr/local/hadoop/dfs/data/current/BP-278612306-127.0.1.1-1462877661391/current/rbw路径下找到缓存,


用vim打开blk_1073742103,可以看到数据是加密的.


再打开/usr/local/hadoop/dfs/data/current/BP-278612306-127.0.1.1-1462877661391/current/finalized/subdir0/subdir1路径.


未完待续......












1 0
原创粉丝点击