下载HBase压缩文件,把这个压缩包上传到/root
目录。执行命令解压缩文件,然后把解压缩出来的文件夹改名为hbase
。
tar -xvf hbase.tar.gz
进入HBase中的conf
目录,找到hbase-env.sh
文件,然后修改文件的内容。在其中28行的位置,设置JAVA环境变量。这就用上你刚才复制的JVM目录中的文件夹名称了。
exxport JAVA_HOME=/usr..
在文件的126行,把参数设置成false,这样就可以使用外部的Zookeeper了。
export HBASE_MANAGES_ZK=false
还是在conf
目录中,你找到hbase-site.xml
文件,然后把该文件内容全部删除,填写上下面的内容。
<configuration>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>hbase.region.server.rpc.scheduler.factory.class</name>
<value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
</property>
<property>
<name>hbase.rpc.controllerfactory.class</name>
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>data.tx.snapshot.dir</name>
<value>/tmp/tephra/snapshots</value>
</property>
<property>
<name>data.tx.timeout</name>
<value>60</value>
</property>
<property>
<name>phoenix.transactions.enabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>hbase.security.exec.permission.checks</name>
<value>true</value>
</property>
<property>
<name>hbase.superuser</name>
<value>hbase</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.rpc.engine</name>
<value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<!--这里是访问HBase的用户名-->
<property>
<name>hbase.client.username</name>
<value>admin</value>
</property>
<!--这里是访问HBase的密码,设置成什么都不起作用,连接Phoenix不需要密码-->
<property>
<name>hbase.client.password</name>
<value>abc123456</value>
</property>
<property>
<name>hbase.regionserver.thrift.framed</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.compact</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
进入HBase的bin
目录,执行命令启动HBase程序
cd /root/hbase/bin
#启动HBase程序
./start-hbase.sh
因为Java 1.8虚拟机不支持-XX:ParallelGCThreads
参数,所以命令行会有警告信息,你可以不用理会。
为了验证HBase是否启动成功,我们可以打开浏览器,访问Linux系统的16010端口,能看到HBase状态画面就说明启动成功了。
为刚才hbase-stite.xml
配置文件中的admin
用户设置权限。想要了解HBase权限级别
cd /root/hbase/bin
#运行HBase的命令行客户端
./hbase shell
在Shell界面运行下面命令,给admin
用户设置最高权限。然后执行exit命令,退出Shell界面。
grant 'admin','RWXCA'
在Linux系统上面如果想要连接Phoenix,需要在Linux系统上面创建admin系统账号。你用这个系统账号才能登录Phoenix。但是我们在Windows或者MacOS系统上面,用客户端软件远程登录Phoenix,有更简单的办法,就是给设置系统环境变量即可。比如说在Windows系统上面,我们设置HADOOP_USER_NAME
的环境变量,值为admin
就可以了,MacOS系统设置亦是如此(与设置JAVA_HOME环境变量类似,大家自行百度)。
我们使用Redis的时候,只能设置访问口令,无需用户名。现在HBase无法规定用户的密码,所以你可以把用户名当做访问口令来使用。将来你还可以设置固定IP地址才可以访问HBase,这样安全性就又提升了。