现如今,分布式架构大行其道,实际项目中使用HBase也是比比皆是。虽说自己在分布式方面接触甚少,但作为程序猿还是需要不断的给自己充电的。网上搜索了一些教程,还是觉得《HBase权威指南》不错,原版有第二版了,可惜没找到。这本书虽说旧了点,入门应该还是不错的。
我是在Win10系统用VMware 12装了一台CentOS 7的虚拟机,使用Xshell 5远程管理,使用的HBase 1.2.6版本。
一,XShell连接CentOS
1,VMWare 12安装 CentOS参见:vmware12安装centos7系统详解
2,进入CentOS,点击应用程序-->终端进入命令模式
3,输入ifconfig,查看Linux的IP地址。然后就可以通过XShell 5新建连接访问了。
注:如果如下图所示只有ens33,并且没有显示IP地址,依照下面步骤处理
(1)执行su root命令切换到root用户权限下
(2)执行vi /etc/sysconfig/network-scripts/ifcfg-ens33命令,打开配置文件。点击I键打开INSERT模式,然后将ONBOOT的值改为yes,然后点击ESC键返回,再输入:wq保存并退出,最后reboot重启即可。
二,安装好CentOS 7之后,系统自带了OpenJDK,需要卸载并安装Sun的JDK1.8
1,用Xshell 5连接CentOS ,执行java -version,可以看到系统自带的是openjdk的1.8.0_131
2,输入rpm -qa | grep java,显示如下信息
3,依次输入如下命令卸载JKD(先卸载不带headless的)
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
4,成功卸载OpenJDK,再次输入java -version会出现如下提示
5,oracle官网下载jdk-8u144-linux-i586.tar.gz,并通过Xshell 5的文件传输工具上传到/usr/java路径,执行cd /usr/java和tar -zxvf jdk-8u144-linux-i586.tar.gz命令解压缩JDK
6,输入vi /etc/profile打开配置文件,在下图位置插入,保存退出。然后执行source /etc/profile使环境变量生效。
JAVA_HOME=/usr/java/jdk1.8.0_144 JRE_HOME=/usr/java/jdk1.8.0_144/jre PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH JAVA_HOME CLASSPATH
注:如输入java -version,出现下图错误,需要先执行命令
sudo yum install glibc.i686
三,安装HBase
1,HBase官方网站下载hbase-1.2.6-bin.tar.gz,利用Xshell的文件传输工具将文件上传到CentOS的usr的local文件夹下。执行下面命令解压缩(解压后的文件夹名字为hbase-1.2.6,我改成了hbase)
cd /usr/local tar -zxvf hbase-1.2.6-bin.tar.gz
2,输入如下命令启动hbase。(图中关于JDK的提示可以忽略)
cd /usr/local/hbase bin/start-hbase.sh
3,在CentOS中,打开火狐浏览器访问http://localhost:16010/可以进入HBase管理后台
注:此时远程通过http://192.168.30.128:16010/还访问不了,原因是防火墙的原因
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
4,此时,HBase已经可以正常使用了。
注:此时虽然可以正常运行了,数据默认存在file:///tmp/hbase-${user.name}/hbase。数据会在重启后丢失。需要修改hbase-site.xml的节点。
<configuration> <property> <name>hbase.rootdir</name> <value>file:/usr/local/hbase</value> </property> </configuration>