Docker下HBase学习,三部曲之二:集群HBase搭建
2017-09-20 15:49
573 查看
上一章《Docker下HBase学习,三部曲之一:极速体验》我们快速体验了单机版HBase提供的基础服务,接下来我们实战HBase集群环境的搭建。
PS:文中用到的文件主要有以下这些,我已经上传到github上:
1. docker镜像对应的dockerfile,以及制作镜像所需的材料;
2. zookeeper-3.4.6;
3. hadoop-2.7.4;
4. hbase-1.2.6;
github的地址是:git@github.com:zq2599/zookeeper3.4.6-hadoop2.7.4-hbase-1.2.6.git
启动三个centos6.7镜像的容器,容器名分别是:master、slave1、slave2;
给master、slave1、slave2分别安装ssh服务;
从当前电脑通过scp命令将jdk1.8的安装包上传到三个容器,然后依次安装jdk1.8;
配置hostname,编辑三个容器的/etc/sysconfig/network文件,修改HOSTNAME分别是master、slave1、slave2;
配置host,通过ip addr命令取得三个容器的ip,然后修改每个/etc/hosts文件,都添加如下内容:
172.18.0.2 master
172.18.0.3 slave1
172.18.0.4 slave2
master、slave1、slave2之间配置相互免密码登录:sshd_config、authorized_keys、id_rsa.pub文件;
master、slave1、slave2上安装zookeeper-3.4.6集群,并启动;
配置java和Hadoop环境变量:/etc/profile、hadoop-env.sh、yarn-env.sh;
修改hadoop相关配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml、mapred-site.xml;
修改hadoop的slave配置:etc/hadoop/slaves;
保证以上的hadoop配置在三个容器上是一致的;
启动hadoop,验证;
修改/etc/profile,配置hbase;
配置hbase-site.xml、regionservers;
启动hbase,验证;
1. 已经安装了jdk1.8;
2. ssh服务已经开通,可以root身份登录,密码是password
3. 可通过rsa证书免密码ssh登录;
执行以下命令即可下载该镜像文件:
这个镜像已经包含了前面总结的14个步骤中的第二步和第三步,接下来的实战中这两部可以省略了。
如上述内容,我们会创建master、slave1、slave2三个容器,它们的22端口分别映射到当前电脑的19010、19011、19012三个端口上;
在docker-compose.yml文件所在目录下执行docker-compose up -d命令,即可创建三个容器,如下图:
同理,再执行ssh root@localhost -p 19011和ssh root@localhost -p 19012可以分别登录slave1和slave2,并且获取到他们的ip如下;
分别修改master、slave1、slave2的/etc/hosts文件,都添加相同的内容如下:
2. 分别在master、slave1、slave2上执行命令ssh-keygen -t rsa,一路回车下去,最终会在/root/.ssh目录下生成rsa文件,如下图:
3. 在master上执行如下三行命令,执行完毕后,三个容器的rsa公钥都存在/root/.ssh/authorized_keys文件中了:
第一行命令将master的公钥写入authorized_keys,第二、第三行分别ssh登录slave1、slave2,将他们的公钥写入到master的authorized_keys文件中,由于是ssh登录,需要输入密码,这里是”password”
4. 分别在slave1、slave2上执行以下命令,将master上的authorized_keys文件复制过来:
由于master的authorized_keys中包含了slave1、slave2的rsa公钥,所以在slave1和slave2上执行以上命令的时候是不需要登录的;
5. 现在三个容器的公钥都已经放在每一个容器上了,它们相互之间可以免密码登录了,例如在slave1上执行ssh root@slave2即可登录到slave2而不用输入密码,如下图:
千万注意:在slave1上验证免密码登录slave2后,要执行exit目录退出slave2,否者后面在该窗口的操作都是在操作slave2,而非slave1!!!
1. /usr/local/work
2. /opt/hbase
在zookeeper-3.4.6/conf/目录下创建zoo.cfg文件,内容如下:
其实也就是修改了dataDir的值,还有最后三行是新增的,其他内容都是从zoo_sample.cfg复制过来的;
3. 在当前电脑上,用ssh工具执行以下三行命令,将前面解压的并且已经修改了zoo.cfg文件的zookeeper-3.4.6目录复制到master、slave1、slave2上去:
执行每行命令都要输入密码”password”
4. 在master、slave1、slave2上创建目录/usr/local/work/zkdata,在该目录下创建文件myid,文件内容分别是是”1”、”2”、”3”;
5. 在master、slave1、slave2上依次执行启动zookeeper的命令/usr/local/work/zookeeper-3.4.6/bin/zkServer.sh start;
6. 在每个容器上分别执行以下命令可以检查zookeeper的集群状态:
如上图所示,此容器目前是follower;
1. 打开hadoop-2.7.4/etc/hadoop/hadoop-env.sh文件,在最前面加入以下内容:
java环境信息就配置好了;
2. 打开hadoop-2.7.4/etc/hadoop/yarn-env.sh文件,在YARN_CONF_DIR的配置下面加入以下内容:
以上是给yarn配置java环境信息;
3. 打开hadoop-2.7.4/etc/hadoop/core-site.xml文件,配置如下:
/opt/hbase/是即将用来安装hadoop的目录;
4. 打开hadoop-2.7.4/etc/hadoop/hdfs-site.xml文件,配置如下:
是hdfs相关的配置;
5. 打开hadoop-2.7.4/etc/hadoop/mapred-site.xml文件,配置如下:
这些是关于mapreduce的配置;
6. 打开hadoop-2.7.4/etc/hadoop/yarn-site.xml文件,配置如下:
以上是yarn相关配置;
7. 打开hadoop-2.7.4/etc/hadoop/slaves文件,配置如下:
以上是配置hadoop集群时的slave信息;
8. 在当前电脑打开ssh终端,进入hadoop-2.7.4文件夹所在目录,执行以下三行命令,把包含了我们刚刚配置好的文件的hadoop-2.7.4文件夹分别复制到master、slave1、slave2容器上去:
每个命令都要求输入密码”password”
1. 在/etc/profile文件中添加如下内容:
以上是hadoop运行所需的环境变量;
2. 执行source /etc/profile使环境变量生效;
格式化结果如下图所示:
2. 在master上执行如下命令启动hadoop:
启动信息如下图所示:
3. 在master上输入jps看当前所有java进程,如下图:
上述进程齐全表示hadoop的master启动成功;
4. 在slave1、slave2上分别输入jps看当前所有java进程,如下图:
上述进程齐全表示hadoop的slave启动成功;
1. 打开hbase-1.2.6/conf/hbase-site.xml,修改配置如下:
以上信息配置了hbase以来的zookeeper信息;
2. 打开hbase-1.2.6/conf/regionservers文件,配置如下:
以上是hbase的集群配置;
3. 在当前电脑打开ssh终端,进入hbase-1.2.6文件夹所在目录,执行以下三行命令,把包含了我们刚刚配置好的文件的hbase-1.2.6文件夹分别复制到master、slave1、slave2容器上去:
每个命令都要求输入密码”password”
1. 在/etc/profile文件中添加如下内容:
以上是hbase运行所需的环境变量;
2. 执行source /etc/profile使环境变量生效;
在master上执行jps查看java进程,可以看到新增的HMaster、HRegionServer进程,如下图:
在slave1、slave2上执行jps查看java进程,可以看到新增的HRegionServer进程,如下图:
见到的如下图所示:
创建个表试试,输入以下命令创建student表,行键是id,一个列族info:
提示如下图:
在slave1上执行base shell进入命令行模式,再执行list命令查看表信息,可以看到刚刚在master上创建的student表,如下图:
1. http://localhost:50070/
2. http://localhost:8088/
3. http://localhost:16010/
至此,在docker上搭建集群HBase的实战已经完成,文中用到的文件主要有以下这些,我已经上传到github上:
1. docker镜像对应的dockerfile,以及制作镜像所需的材料;
2. zookeeper-3.4.6;
3. hadoop-2.7.4;
4. hbase-1.2.6;
github的地址是:git@github.com:zq2599/zookeeper3.4.6-hadoop2.7.4-hbase-1.2.6.git,相关的配置文件都已经按照文中提到的方式去修改过了,有需要的读者可以下载使用。
集群规划
首先是网络情况规划,本次实战我们的集群是一个master,两个slave,如下图:材料列表
把搭建一个hbase环境所需的所有材料列出来,如下表:软件 | 版本 |
---|---|
OpenSSH | 5.3 |
jdk | 1.8 |
hadoop | 2.7.4 |
hbase | 1.2.6 |
zookeeper | 3.4.6 |
1. docker镜像对应的dockerfile,以及制作镜像所需的材料;
2. zookeeper-3.4.6;
3. hadoop-2.7.4;
4. hbase-1.2.6;
github的地址是:git@github.com:zq2599/zookeeper3.4.6-hadoop2.7.4-hbase-1.2.6.git
搭建步骤完全列表
先在此将整个搭建过程的每一步都列出来,以免遗漏:启动三个centos6.7镜像的容器,容器名分别是:master、slave1、slave2;
给master、slave1、slave2分别安装ssh服务;
从当前电脑通过scp命令将jdk1.8的安装包上传到三个容器,然后依次安装jdk1.8;
配置hostname,编辑三个容器的/etc/sysconfig/network文件,修改HOSTNAME分别是master、slave1、slave2;
配置host,通过ip addr命令取得三个容器的ip,然后修改每个/etc/hosts文件,都添加如下内容:
172.18.0.2 master
172.18.0.3 slave1
172.18.0.4 slave2
master、slave1、slave2之间配置相互免密码登录:sshd_config、authorized_keys、id_rsa.pub文件;
master、slave1、slave2上安装zookeeper-3.4.6集群,并启动;
配置java和Hadoop环境变量:/etc/profile、hadoop-env.sh、yarn-env.sh;
修改hadoop相关配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml、mapred-site.xml;
修改hadoop的slave配置:etc/hadoop/slaves;
保证以上的hadoop配置在三个容器上是一致的;
启动hadoop,验证;
修改/etc/profile,配置hbase;
配置hbase-site.xml、regionservers;
启动hbase,验证;
本次实战用到的镜像文件
本次实战用到的镜像文件是我定制的,为了加快实战速度,里面集成了如下功能:1. 已经安装了jdk1.8;
2. ssh服务已经开通,可以root身份登录,密码是password
3. 可通过rsa证书免密码ssh登录;
执行以下命令即可下载该镜像文件:
docker pull bolingcavalry/centos6.7-jdk1.8-ssh:0.0.1
这个镜像已经包含了前面总结的14个步骤中的第二步和第三步,接下来的实战中这两部可以省略了。
制作docker-compose.yml文件
新增一个docker-compose.yml文件,内容如下:version: '2' services: master: image: bolingcavalry/centos6.7-jdk1.8-ssh:0.0.1 container_name: master ports: - "19010:22" - "50070:50070" - "8088:8088" - "16010:16010" restart: always slave1: image: bolingcavalry/centos6.7-jdk1.8-ssh:0.0.1 container_name: slave1 depends_on: - master ports: - "19011:22" restart: always slave2: image: bolingcavalry/centos6.7-jdk1.8-ssh:0.0.1 container_name: slave2 depends_on: - slave1 ports: - "19012:22" restart: always
如上述内容,我们会创建master、slave1、slave2三个容器,它们的22端口分别映射到当前电脑的19010、19011、19012三个端口上;
在docker-compose.yml文件所在目录下执行docker-compose up -d命令,即可创建三个容器,如下图:
ssh登录
由于master的22端口已经映射到19010端口,所以在当前电脑使用ssh工具执行命令ssh root@localhost -p 19010即可登录到master容器,再执行ip addr即可查看master的ip,如下图:同理,再执行ssh root@localhost -p 19011和ssh root@localhost -p 19012可以分别登录slave1和slave2,并且获取到他们的ip如下;
容器 | IP |
---|---|
master | 172.18.0.2 |
slave1 | 172.18.0.3 |
slave2 | 172.18.0.4 |
配置hostname和hosts
修改master的/etc/sysconfig/network文件,将原有的HOSTNAME=localhost.localdomain改成HOSTNAME=master,对slave1和slave2也做修改,将HOSTNAME分别改成slave1和slave2;分别修改master、slave1、slave2的/etc/hosts文件,都添加相同的内容如下:
172.18.0.2 master 172.18.0.3 slave1 172.18.0.4 slave2
master、slave1、slave2之间配置相互免密码登录
分别修改master、slave1、slave2的/etc/ssh/sshd_config文件,找到下图红框中的两行,删除每行的注释符号”#”:2. 分别在master、slave1、slave2上执行命令ssh-keygen -t rsa,一路回车下去,最终会在/root/.ssh目录下生成rsa文件,如下图:
3. 在master上执行如下三行命令,执行完毕后,三个容器的rsa公钥都存在/root/.ssh/authorized_keys文件中了:
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys ssh root@slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys ssh root@slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
第一行命令将master的公钥写入authorized_keys,第二、第三行分别ssh登录slave1、slave2,将他们的公钥写入到master的authorized_keys文件中,由于是ssh登录,需要输入密码,这里是”password”
4. 分别在slave1、slave2上执行以下命令,将master上的authorized_keys文件复制过来:
ssh root@master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys
由于master的authorized_keys中包含了slave1、slave2的rsa公钥,所以在slave1和slave2上执行以上命令的时候是不需要登录的;
5. 现在三个容器的公钥都已经放在每一个容器上了,它们相互之间可以免密码登录了,例如在slave1上执行ssh root@slave2即可登录到slave2而不用输入密码,如下图:
千万注意:在slave1上验证免密码登录slave2后,要执行exit目录退出slave2,否者后面在该窗口的操作都是在操作slave2,而非slave1!!!
在容器上创建所需目录
分别在master、slave1、slave2上创建以下目录:1. /usr/local/work
2. /opt/hbase
安装zookeeper-3.4.6集群
去zookeeper官网下载zookeeper-3.4.6.tar.gz,然后解压到当前电脑;在zookeeper-3.4.6/conf/目录下创建zoo.cfg文件,内容如下:
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/local/work/zkdata # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 server.1=master:2887:3887 server.2=slave1:2888:3888 server.3=slave2:2889:3889
其实也就是修改了dataDir的值,还有最后三行是新增的,其他内容都是从zoo_sample.cfg复制过来的;
3. 在当前电脑上,用ssh工具执行以下三行命令,将前面解压的并且已经修改了zoo.cfg文件的zookeeper-3.4.6目录复制到master、slave1、slave2上去:
scp -P 19010 -r ./zookeeper-3.4.6 root@localhost:/usr/local/work scp -P 19011 -r ./zookeeper-3.4.6 root@localhost:/usr/local/work scp -P 19012 -r ./zookeeper-3.4.6 root@localhost:/usr/local/work
执行每行命令都要输入密码”password”
4. 在master、slave1、slave2上创建目录/usr/local/work/zkdata,在该目录下创建文件myid,文件内容分别是是”1”、”2”、”3”;
5. 在master、slave1、slave2上依次执行启动zookeeper的命令/usr/local/work/zookeeper-3.4.6/bin/zkServer.sh start;
6. 在每个容器上分别执行以下命令可以检查zookeeper的集群状态:
如上图所示,此容器目前是follower;
下载hadoop
去Hadoop官网下载hadoop-2.7.4.tar.gz,在当前电脑解压;配置hadoop
打开解压后的hadoop-2.7.4文件夹,修改以下配置文件:1. 打开hadoop-2.7.4/etc/hadoop/hadoop-env.sh文件,在最前面加入以下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_144
java环境信息就配置好了;
2. 打开hadoop-2.7.4/etc/hadoop/yarn-env.sh文件,在YARN_CONF_DIR的配置下面加入以下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_144
以上是给yarn配置java环境信息;
3. 打开hadoop-2.7.4/etc/hadoop/core-site.xml文件,配置如下:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hbase/hadoop-2.7.4/temp</value> </property> </configuration>
/opt/hbase/是即将用来安装hadoop的目录;
4. 打开hadoop-2.7.4/etc/hadoop/hdfs-site.xml文件,配置如下:
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hbase/hadoop-2.7.4/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hbase/hadoop-2.7.4/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
是hdfs相关的配置;
5. 打开hadoop-2.7.4/etc/hadoop/mapred-site.xml文件,配置如下:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
这些是关于mapreduce的配置;
6. 打开hadoop-2.7.4/etc/hadoop/yarn-site.xml文件,配置如下:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
以上是yarn相关配置;
7. 打开hadoop-2.7.4/etc/hadoop/slaves文件,配置如下:
slave1 slave2
以上是配置hadoop集群时的slave信息;
8. 在当前电脑打开ssh终端,进入hadoop-2.7.4文件夹所在目录,执行以下三行命令,把包含了我们刚刚配置好的文件的hadoop-2.7.4文件夹分别复制到master、slave1、slave2容器上去:
scp -P 19010 -r ./hadoop-2.7.4 root@localhost:/opt/hbase/hadoop-2.7.4 scp -P 19011 -r ./hadoop-2.7.4 root@localhost:/opt/hbase/hadoop-2.7.4 scp -P 19012 -r ./hadoop-2.7.4 root@localhost:/opt/hbase/hadoop-2.7.4
每个命令都要求输入密码”password”
配置hadoop相关环境变量
在master、slave1、slave2上分别执行如下操作:1. 在/etc/profile文件中添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_144 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/opt/hbase/hadoop-2.7.4 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"
以上是hadoop运行所需的环境变量;
2. 执行source /etc/profile使环境变量生效;
启动hadoop
在master上执行如下命令格式化hdfs:/opt/hbase/hadoop-2.7.4/bin/hdfs namenode -format
格式化结果如下图所示:
2. 在master上执行如下命令启动hadoop:
/opt/hbase/hadoop-2.7.4/sbin/start-all.sh
启动信息如下图所示:
3. 在master上输入jps看当前所有java进程,如下图:
上述进程齐全表示hadoop的master启动成功;
4. 在slave1、slave2上分别输入jps看当前所有java进程,如下图:
上述进程齐全表示hadoop的slave启动成功;
配置Hbase
在Hadoop官网下载hbase-1.2.6-bin.tar.gz,在当前电脑解压后,进入hbase-1.2.6文件夹,修改以下配置:1. 打开hbase-1.2.6/conf/hbase-site.xml,修改配置如下:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> <description>The directory shared by region servers.</description> </property> <property> <name>hbase.hregion.max.filesize</name> <value>1073741824</value> <description> Maximum HStoreFile size. If any one of a column families' HStoreFiles has grown to exceed this value, the hosting HRegion is split in two. Default: 256M. </description> </property> <property> <name>hbase.hregion.memstore.flush.size</name> <value>1073741824</value> <description> Memstore will be flushed to disk if size of the memstore exceeds this number of bytes. Value is checked by a thread that runs every hbase.server.thread.wakefrequency. </description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>The mode the cluster will be in. Possible values are false: standalone and pseudo-distributed setups with managed Zookeeper true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh) </description> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> <description>Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect. </description> </property> <property> <name>zookeeper.session.timeout</name> <value>120000</value> </property> <property> <name>hbase.zookeeper.property.tickTime</name> <value>6000</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> <description>Comma separated list of servers in the ZooKeeper Quorum. For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on. </description> </property> </configuration>
以上信息配置了hbase以来的zookeeper信息;
2. 打开hbase-1.2.6/conf/regionservers文件,配置如下:
master
slave1 slave2
以上是hbase的集群配置;
3. 在当前电脑打开ssh终端,进入hbase-1.2.6文件夹所在目录,执行以下三行命令,把包含了我们刚刚配置好的文件的hbase-1.2.6文件夹分别复制到master、slave1、slave2容器上去:
scp -P 19010 -r ./hbase-1.2.6 root@localhost:/opt/hbase-1.2.6 scp -P 19011 -r ./hbase-1.2.6 root@localhost:/opt/hbase-1.2.6 scp -P 19012 -r ./hbase-1.2.6 root@localhost:/opt/hbase-1.2.6
每个命令都要求输入密码”password”
配置hbase相关环境变量
在master、slave1、slave2上分别执行如下操作:1. 在/etc/profile文件中添加如下内容:
export HBASE_HOME=/opt/hbase-1.2.6 export PATH=$HBASE_HOME/bin:$PATH
以上是hbase运行所需的环境变量;
2. 执行source /etc/profile使环境变量生效;
启动hbase
在master上执行start-base.sh命令启动hbase(由于hbase/bin已经添加到环境变量中,所以start-abase.sh可以在任何目录下执行),启动信息如下图所示:在master上执行jps查看java进程,可以看到新增的HMaster、HRegionServer进程,如下图:
在slave1、slave2上执行jps查看java进程,可以看到新增的HRegionServer进程,如下图:
验证hbase
执行以下命令,可以进入HBase的命令行模式:hbase shell
见到的如下图所示:
创建个表试试,输入以下命令创建student表,行键是id,一个列族info:
create 'student','id','info'
提示如下图:
在slave1上执行base shell进入命令行模式,再执行list命令查看表信息,可以看到刚刚在master上创建的student表,如下图:
web服务验证
在docker-compose.yml中我们暴露了50070,8088,16010三个端口,现在当前电脑的浏览器上依次检查这三个端口对应的web服务:1. http://localhost:50070/
2. http://localhost:8088/
3. http://localhost:16010/
至此,在docker上搭建集群HBase的实战已经完成,文中用到的文件主要有以下这些,我已经上传到github上:
1. docker镜像对应的dockerfile,以及制作镜像所需的材料;
2. zookeeper-3.4.6;
3. hadoop-2.7.4;
4. hbase-1.2.6;
github的地址是:git@github.com:zq2599/zookeeper3.4.6-hadoop2.7.4-hbase-1.2.6.git,相关的配置文件都已经按照文中提到的方式去修改过了,有需要的读者可以下载使用。
相关文章推荐
- Docker下kafka学习,三部曲之二:本地环境搭建
- Docker下的Kafka学习之二:搭建集群环境
- Docker下的Kafka学习之二:搭建集群环境
- docker应用-3(搭建hadoop以及hbase集群)
- Docker下HBase学习,三部曲之一:极速体验
- 大数据学习系列之二 ----- HBase环境搭建(单机)
- Docker学习文档之二 搭建环境-Windows环境
- docker应用-3(搭建hadoop以及hbase集群)
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
- Docker学习笔记 — Swarm搭建Docker集群
- MongoDB学习之二----模拟shard集群搭建
- [置顶] 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
- Docker学习笔记 — Swarm搭建Docker集群
- Bluemix平台一步一步搭建ZooKeeper + Mesos + Marathon平台管理Docker集群之二
- Docker学习笔记 — Swarm搭建Docker集群
- Docker下dubbo开发,三部曲之二:本地环境搭建
- Docker学习文档之二 搭建环境-Linux环境
- docker 搭建hadoop以及hbase集群详解
- HBase-1.0.1学习笔记(一)集群搭建