大数据-146 Apache Kudu 安装运行 Dockerfile 模仿集群 启动测试 ...

打印 上一主题 下一主题

主题 922|帖子 922|积分 2766

点一下关注吧!!!非常感谢!!持续更新!!!

现在已经更新到了:



  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(正在更新…)
章节内容

上节我们完成了如下的内容:


  • Kudu 的根本先容
  • Kudu 的架构概述

安装准备

硬件准备



  • 一台大概多台跑kudu-master。建议一个Master(无容错机制)、三个Master(答应一个节点堕落)、五个Master(答应两个节点堕落)
  • 一台大概多台呆板跑kudu-server。当必要利用副本,至少必要三个节点运行kudu-server服务。
操作系统



  • Ubuntu云服务器(我的环境是三台小云服务器)
  • 内核和文件系统支持 Hole Punching 选项。
  • NTP 服务
  • xfs or ext4 formatterd drivers
存储要求



  • 尽量利用固态存储,显著提供kudu性能
环境说明



  • 如果你利用的是CDH,必要ClouderaManager 5.4.3 及以上的版本。
  • 三台云服务器,h121启动Master,h122和123启动TabletServer。
Dockerfile

  1. https://github.com/apache/kudu/blob/master/docker/quickstart.yml
复制代码
官方的配置文件为:


  • 3个Master
  • 4个TabletServer
  1. # Licensed to the Apache Software Foundation (ASF) under one
  2. # or more contributor license agreements.  See the NOTICE file
  3. # distributed with this work for additional information
  4. # regarding copyright ownership.  The ASF licenses this file
  5. # to you under the Apache License, Version 2.0 (the
  6. # "License"); you may not use this file except in compliance
  7. # with the License.  You may obtain a copy of the License at
  8. #
  9. #   http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing,
  12. # software distributed under the License is distributed on an
  13. # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  14. # KIND, either express or implied.  See the License for the
  15. # specific language governing permissions and limitations
  16. # under the License.
  17. version: "3"
  18. services:
  19.   kudu-master-1:
  20.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  21.     ports:
  22.       - "7051:7051"
  23.       - "8051:8051"
  24.     command: ["master"]
  25.     volumes:
  26.       - kudu-master-1:/var/lib/kudu
  27.     environment:
  28.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  29.       # TODO: Use `host.docker.internal` instead of KUDU_QUICKSTART_IP when it
  30.       # works on Linux (https://github.com/docker/for-linux/issues/264)
  31.       - >
  32.         MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
  33.         --rpc_bind_addresses=0.0.0.0:7051
  34.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP:?Please set KUDU_QUICKSTART_IP environment variable}:7051
  35.         --webserver_port=8051
  36.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8051
  37.         --webserver_doc_root=/opt/kudu/www
  38.         --stderrthreshold=0
  39.         --use_hybrid_clock=false
  40.         --unlock_unsafe_flags=true
  41.   kudu-master-2:
  42.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  43.     ports:
  44.       - "7151:7151"
  45.       - "8151:8151"
  46.     command: ["master"]
  47.     volumes:
  48.       - kudu-master-2:/var/lib/kudu
  49.     environment:
  50.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  51.       - >
  52.         MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
  53.         --rpc_bind_addresses=0.0.0.0:7151
  54.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7151
  55.         --webserver_port=8151
  56.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8151
  57.         --webserver_doc_root=/opt/kudu/www
  58.         --stderrthreshold=0
  59.         --use_hybrid_clock=false
  60.         --unlock_unsafe_flags=true
  61.   kudu-master-3:
  62.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  63.     ports:
  64.       - "7251:7251"
  65.       - "8251:8251"
  66.     command: ["master"]
  67.     volumes:
  68.       - kudu-master-3:/var/lib/kudu
  69.     environment:
  70.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  71.       - >
  72.         MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
  73.         --rpc_bind_addresses=0.0.0.0:7251
  74.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7251
  75.         --webserver_port=8251
  76.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8251
  77.         --webserver_doc_root=/opt/kudu/www
  78.         --stderrthreshold=0
  79.         --use_hybrid_clock=false
  80.         --unlock_unsafe_flags=true
  81.   kudu-tserver-1:
  82.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  83.     depends_on:
  84.       - kudu-master-1
  85.       - kudu-master-2
  86.       - kudu-master-3
  87.     ports:
  88.       - "7050:7050"
  89.       - "8050:8050"
  90.     command: ["tserver"]
  91.     volumes:
  92.       - kudu-tserver-1:/var/lib/kudu
  93.     environment:
  94.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  95.       - >
  96.         TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
  97.         --rpc_bind_addresses=0.0.0.0:7050
  98.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7050
  99.         --webserver_port=8050
  100.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8050
  101.         --webserver_doc_root=/opt/kudu/www
  102.         --stderrthreshold=0
  103.         --use_hybrid_clock=false
  104.         --unlock_unsafe_flags=true
  105.   kudu-tserver-2:
  106.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  107.     depends_on:
  108.       - kudu-master-1
  109.       - kudu-master-2
  110.       - kudu-master-3
  111.     ports:
  112.       - "7150:7150"
  113.       - "8150:8150"
  114.     command: ["tserver"]
  115.     volumes:
  116.       - kudu-tserver-2:/var/lib/kudu
  117.     environment:
  118.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  119.       - >
  120.         TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
  121.         --rpc_bind_addresses=0.0.0.0:7150
  122.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7150
  123.         --webserver_port=8150
  124.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8150
  125.         --webserver_doc_root=/opt/kudu/www
  126.         --stderrthreshold=0
  127.         --use_hybrid_clock=false
  128.         --unlock_unsafe_flags=true
  129.   kudu-tserver-3:
  130.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  131.     depends_on:
  132.       - kudu-master-1
  133.       - kudu-master-2
  134.       - kudu-master-3
  135.     ports:
  136.       - "7250:7250"
  137.       - "8250:8250"
  138.     command: ["tserver"]
  139.     volumes:
  140.       - kudu-tserver-3:/var/lib/kudu
  141.     environment:
  142.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  143.       - >
  144.         TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
  145.         --rpc_bind_addresses=0.0.0.0:7250
  146.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7250
  147.         --webserver_port=8250
  148.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8250
  149.         --webserver_doc_root=/opt/kudu/www
  150.         --stderrthreshold=0
  151.         --use_hybrid_clock=false
  152.         --unlock_unsafe_flags=true
  153.   kudu-tserver-4:
  154.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  155.     depends_on:
  156.       - kudu-master-1
  157.       - kudu-master-2
  158.       - kudu-master-3
  159.     ports:
  160.       - "7350:7350"
  161.       - "8350:8350"
  162.     command: ["tserver"]
  163.     volumes:
  164.       - kudu-tserver-4:/var/lib/kudu
  165.     environment:
  166.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  167.       - >
  168.         TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
  169.         --rpc_bind_addresses=0.0.0.0:7350
  170.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7350
  171.         --webserver_port=8350
  172.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8350
  173.         --webserver_doc_root=/opt/kudu/www
  174.         --stderrthreshold=0
  175.         --use_hybrid_clock=false
  176.         --unlock_unsafe_flags=true
  177.   kudu-tserver-5:
  178.     image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  179.     depends_on:
  180.       - kudu-master-1
  181.       - kudu-master-2
  182.       - kudu-master-3
  183.     ports:
  184.       - "7450:7450"
  185.       - "8450:8450"
  186.     command: ["tserver"]
  187.     volumes:
  188.       - kudu-tserver-5:/var/lib/kudu
  189.     environment:
  190.       - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  191.       - >
  192.         TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
  193.         --rpc_bind_addresses=0.0.0.0:7450
  194.         --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7450
  195.         --webserver_port=8450
  196.         --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8450
  197.         --webserver_doc_root=/opt/kudu/www
  198.         --stderrthreshold=0
  199.         --use_hybrid_clock=false
  200.         --unlock_unsafe_flags=true
  201. volumes:
  202.   kudu-master-1:
  203.   kudu-master-2:
  204.   kudu-master-3:
  205.   kudu-tserver-1:
  206.   kudu-tserver-2:
  207.   kudu-tserver-3:
  208.   kudu-tserver-4:
  209.   kudu-tserver-5:
复制代码
内容表明



  • version: “3”:指定利用 Docker Compose 文件的版本。版本 3 是当前常用的版本,支持多种高级功能,适用于 Docker 1.13.0 及更高版本。
  • services:定义了多个服务,每个服务对应一个 Docker 容器。在本配置中,定义了多个 Kudu Master 和 Kudu Tablet Server(简称 TServer)。
  • volumes:定义了长期化存储卷,用于存储各个服务的数据,确保即使容器重新创建或删除,数据仍然保存。
3 个 Kudu Master 节点:


  • kudu-master-1
  • kudu-master-2
  • kudu-master-3
5 个 Kudu Tablet Server 节点:


  • kudu-tserver-1
  • kudu-tserver-2
  • kudu-tserver-3
  • kudu-tserver-4
  • kudu-tserver-5
Master

每个 Master 节点的配置根本雷同,只是端口和长期化卷不同。以下以 kudu-master-1 为例举行表明:
  1. kudu-master-1:
  2.   image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
  3.   ports:
  4.     - "7051:7051"
  5.     - "8051:8051"
  6.   command: ["master"]
  7.   volumes:
  8.     - kudu-master-1:/var/lib/kudu
  9.   environment:
  10.     - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
  11.     - >
  12.       MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
  13.       --rpc_bind_addresses=0.0.0.0:7051
  14.       --rpc_advertised_addresses=${KUDU_QUICKSTART_IP:?Please set KUDU_QUICKSTART_IP environment variable}:7051
  15.       --webserver_port=8051
  16.       --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8051
  17.       --webserver_doc_root=/opt/kudu/www
  18.       --stderrthreshold=0
  19.       --use_hybrid_clock=false
  20.       --unlock_unsafe_flags=true
复制代码


  • udu-master-1:服务名称,标识第一个 Kudu Master 节点。
  • image: apache/kudu{KUDU_QUICKSTART_VERSION:-latest}:指定利用的 Docker 镜像。apache/kudu 是官方 Kudu 镜像。
  • ${KUDU_QUICKSTART_VERSION:-latest}:利用环境变量 KUDU_QUICKSTART_VERSION 指定版本,如果未设置,则默认利用 latest。
  • ports:“7051:7051”:将主机的 7051 端口映射到容器的 7051 端口,用于 Kudu Master 的 RPC 通讯。“8051:8051”:将主机的 8051 端口映射到容器的 8051 端口,用于 Kudu Master 的 Web 界面。
  • command: [“master”]:指定容器启动时运行的下令,这里启动 Kudu Master 进程。
  • volumes:kudu-master-1:/var/lib/kudu:将 Docker 卷 kudu-master-1 挂载到容器内的 /var/lib/kudu 目录,用于长期化存储数据。
  • KUDU_MASTERS:定义了集群中所有 Master 节点的地址,格式为 hostname:port,以逗号分隔。
启动服务

  1. export KUDU_QUICKSTART_IP=$(ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' | tail -1)
  2. docker-compose up -d
复制代码
访问服务

  1. http://localhost:8051/
复制代码
这样我们的服务就顺遂的启动了:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表