• Storm On Docker


    1. 安装Docker
     
    (1)确认系统版本
     
    sudo lsb_release -a
     
     
    注:如果提示找不到命令“lsb_release”,使用“yum install redhat-lsb”进行安装。
     
    (2)安装Docker
     
    sudo yum install docker.x86_64(Docker Version: 1.9.1)
     
    Docker的默念存储位置:/var/lib/docker,磁盘空间通常比较小,建议将其更换至磁盘空间比较充足的目录,如:
     
    sudo mkdir -p /data0/docker-lib
     
    sudo cp -R /var/lib/docker/* /data0/docker-lib/
     
    sudo rm -rf /var/lib/docker
     
    sudo ln -s /data0/docker-lib/ /var/lib/docker
     
    为了避免每次运行Docker实例时打印警告信息:
     
     
    执行如下操作:
     
    vim /etc/sysconfig/docker-storage
     
    DOCKER_STORAGE_OPTIONS=--storage-opt dm.no_warn_on_loop_devices=true
     
    (3)启动Docker
     
    sudo service docker start
     
    (4)查看Docker运行状态
     
     
    (5)停止Docker
     
    sudo service docker stop
     
    2. 安装Docker Insecure Registry
     
    Docker Registry的作用是一个Docker Image的私有仓库,它的安装过程实际就是运行一个Docker Registry实例,
     
    docker run -d -p 80:5000 --restart=always --name registry -v /data0/docker-registry:/var/lib/registry registry:2.4.1
     
    这里有三个地方需要注意:
     
    (1)映射端口:5000 --> 80,其中80为宿主机端口;
    (2)挂载目录:/var/lib/registry --> /data0/docker-registry,其中“/data0/docker-registry”为宿主机目录;
    (3)使用这种方式搭建的“仓库”是没有认证和授权的;
     
    Docker Client(相对于Docker Insecure Registry而言)与Docker Insecure Registry交互时需要以下配置:
     
    vim /etc/sysconfig/docker
     
    OPTIONS='--selinux-enabled'
     
    -->
     
    OPTIONS='--selinux-enabled --insecure-registry=mydomain'
     
    其中,mydomain可以为域名,也可以HostIP:Port。
     
    配置完成之后,需要重启Docker Client Service:
     
    sudo service docker restart
     
    3. 构建自己的Docker CentOS Image
     
    这里的构建实际是一个“拉取官方镜像——修改镜像名称——推送镜像至私有仓库”的过程。
     
    (1)从Docker Hub拉取官方镜像
     
    docker pull centos:centos7.1.1503
     
    (2)修改镜像名称
     
    docker tag docker.io/centos:centos7.1.1503 mydomain/centos:centos7.1.1503
     
    (3)推送镜像
     
    docker push mydomain/centos:centos7.1.1503
     
    4. 构建Docker Storm Image
     
    (1)创建目录
     
    mkdir -p /usr/home/yurun/storm-docker
     
    (2)下载依赖文件
     
    jdk-8u45-linux-x64.rpm(官方推荐使用Java 6,但实测需要使用Java 7,考虑到平台实际情况,使用Java 8)
     
    Python-2.6.6.tgz
     
    apache-storm-1.0.1.tar.gz
     
    将上述文件拷贝至目录:/usr/home/yurun/storm-docker。
     
    (3)编写Dockerfile
     
    vim /usr/home/yurun/storm-docker/Dockerfile
     
    FROM mydomain/centos:centos7.1.1503
     
    RUN echo "nameserver 8.8.8.8" > /etc/resolv.conf(DNS设置)
     
    COPY jdk-8u45-linux-x64.rpm /tmp/jdk-8u45-linux-x64.rpm
     
    RUN rpm -ivh /tmp/jdk-8u45-linux-x64.rpm(Java安装路径: /usr/java/jdk1.8.0_45)
     
    RUN yum -y install gcc gcc-c++(编译安装Python使用)
     
    RUN yum -y install make(编译安装Python使用)
     
    COPY Python-2.6.6.tgz /tmp/Python-2.6.6.tgz
     
    RUN yum -y install tar(解压Python安装包使用)
     
    RUN tar zxvf /tmp/Python-2.6.6.tgz -C /tmp/
     
    WORKDIR /tmp/Python-2.6.6
     
    RUN ./configure --prefix=/usr/lib/python2.6.6
     
    RUN make
     
    RUN make install
     
    RUN ln -s /usr/lib/python2.6.6/bin/python /usr/bin/python2.6
     
    COPY apache-storm-1.0.1.tar.gz /tmp/apache-storm-1.0.1.tar.gz
     
    RUN tar zxvf /tmp/apache-storm-1.0.1.tar.gz -C /tmp/
     
    RUN mv /tmp/apache-storm-1.0.1 /usr/lib/apache-storm-1.0.1
     
    RUN rm -rf /tmp/*
     
    WORKDIR /
     
    (4)构建镜像
     
    docker build -t mydomain/storm:1.0.1 /usr/home/yurun/strom-docker/
     
    (5)推送境像
     
    docker push mydomain/storm:1.0.1
     
    5. 使用Docker Storm Image
     
    (1)创建Storm配置目录及文件
     
    创建Storm配置目录:
     
    mkdir -p /etc/storm/conf
     
    从Storm原始安装目录中拷贝以下文件至配置目录:
     
    storm_env.ini
    storm-env.sh
    storm.yaml
     
     
    vim /etc/storm/conf/storm-env.sh
     
    export JAVA_HOME=/usr/java/jdk1.8.0_45
     
     
    vim /etc/storm/conf/storm.yaml
     
    storm.zookeeper.servers:
        - "ZooKeeperHost"
     
    storm.zookeeper.port: 2181
     
    storm.zookeeper.root: "/storm_docker"
     
    storm.local.dir: "/data0/storm"
     
    storm.log.dir: "/var/log/storm"
     
    nimbus.seeds: ["NimbusHost"]
     
    supervisor.slots.ports:
        - 6700
        - 6701
        - 6702
        - 6703
        - 6704
        - 6705
        - 6706
        - 6707
        - 6708
        - 6709
        - 6710
        - 6711
        - 6712
        - 6713
        - 6714
        - 6715
        - 6716
        - 6717
        - 6718
        - 6719
        - 6720
        - 6721
     
    worker.childopts: "-Xmx6144m -XX:MaxPermSize=64m -XX:+UseConcMarkSweepGC -Xmn2300m -XX:SurvivorRatio=2 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=65 -XX:+UseCMSCompactAtFullCollection -XX:+PrintClassHistogram -verbose:gc -XX:+PrintGCDateStamps -Xloggc:/var/log/storm/worker_%ID%_gc.log"
     
    nimbus.task.timeout.secs: 40
     
    (2)运行Storm nimbus
     
    docker run -d --net=host -v /etc/storm/conf/:/usr/lib/apache-storm-1.0.1/conf/ -v /data0/storm/:/data0/storm/ -v /var/log/storm/:/var/log/storm/ mydomain/storm:1.0.1 /usr/lib/apache-storm-1.0.1/bin/storm nimbus
     
    (3)运行Storm Supervisor
     
    docker run -d --net=host -v /etc/storm/conf/:/usr/lib/apache-storm-1.0.1/conf/ -v /data0/storm/:/data0/storm/ -v /var/log/storm/:/var/log/storm/ mydomain/storm:1.0.1 /usr/lib/apache-storm-1.0.1/bin/storm supervisor
     
    (4)运行Run Storm UI
     
    docker run -d --net=host -v /etc/storm/conf/:/usr/lib/apache-storm-1.0.1/conf/ -v /data0/storm/:/data0/storm/ -v /var/log/storm/:/var/log/storm/ mydomain/storm:1.0.1 /usr/lib/apache-storm-1.0.1/bin/storm ui
     
    注意:上述三步操作中网络模式一律使用宿主机模式:--net=host。
     
    (5)查看Storm运行状态
     
    http://NimbusHost:8080 
  • 相关阅读:
    android: LayoutInflater使用
    android:ListView bbs Demo
    android:制作 Nine-Patch 图片
    android:单位和尺寸
    android:提升 ListView 的运行效率
    android:定制 ListView 的界面
    android:ListView 的简单用法
    android:创建自定义控件
    android:四种基本布局
    android:ProgressDialog控件
  • 原文地址:https://www.cnblogs.com/yurunmiao/p/5543761.html
Copyright © 2020-2023  润新知