基于Docker的Zookeeper+Hadoop(HA)+hbase(HA)搭建

公司要将监控数据存入opentsdb,而opentsdb使用了hbase作为存储。所以想搭建一套高可用的分布式存储来供opentsdb使用。

因为机器有限,所以测试过程中将三台集群的环境安装在docker上。

一:宿主机版本和docker版本

  宿主机:Centos7.2  3.10.0-862.14.4.el7.x86_64

  docker:Docker version 1.13.1, build 94f4240/1.13.1

二:镜像版本

  docker.io/centos 

三:创建docker镜像

   mkdir -p /home/dockerfile/hbaseha

  上传软件包至此目录

  zookeeper-3.4.12.tar.gz

  hbase-1.3.2.1-bin.tar.gz

  hadoop-2.6.5.tar.gz

  jdk8.tar.gz

  创建Dockerfile。

  vi Dockerfile

# 选择一个已有的os镜像作为基础 FROM centos # 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no RUN yum install -y openssh-server sudo RUN sed -i \'s/UsePAM yes/UsePAM no/g\' /etc/ssh/sshd_config #安装openssh-clients RUN yum install -y openssh-clients # 添加测试用户root,密码root,并且将此用户添加到sudoers里 RUN echo "root:root" | chpasswd RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers # 下面这两句比较特殊,在centos6上必须要有,否则创建出来的容器sshd不能登录 RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key # 启动sshd服务并且暴露22端口 RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
ADD jdk8.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_171 /usr/local/jdk1.8
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH
ADD hadoop-2.6.5.tar.gz /usr/local
#安装which软件包
RUN yum install -y which
#安装net-tools软件包
RUN yum install -y net-tools
ENV HADOOP_HOME /usr/local/hadoop-2.6.5
ENV PATH $HADOOP_HOME/bin:$PATH
ADD zookeeper-3.4.12.tar.gz /usr/local
ENV ZOOKEEPER_HOME /usr/local/zookeeper-3.4.12
ENV PATH $ZOOKEEPER_HOME/bin:$PATH
ADD hbase-1.3.2.1-bin.tar.gz /usr/local

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzjsz.html