客户端配置

任务提交任务到yarn集群需要配置好提交任务的客户端,比如spark on yarn,需要spark客户端。对于Drill-on-YARN,也需要配置drill客户端。客户端可以在任何同时具有Drill和Hadoop软件的计算机上运行。任何可以启动YARN作业的主机都可以是客户端。客户端不需要成为YARN群集的一部分。
在非drill on yarn模型下,必须在群集中的每个节点上安装Drill。而使用YARN,只需要在客户端计算机上安装Drill,Drill-on-YARN会自动部署drillbit节点到yarn集群的其他服务器中。
在没有YARN的情况下运行Drill时,许多用户将其配置文件和自定义代码放在Drill分发目录中。在YARN下运行时,所有配置和自定义代码都会放置到site目录中,不需要更改drill安装包中的任何配置。
在客户端计算机上完成以下步骤:

创建主目录

drill on yarn部署,客户端工具需要原始的drill安装包和drill on yarn的相关配置文件。假设所有这些组件都放置在$MASTER_DIR的主目录中。在客户端计算机上,创建主目录,如下所示:

export MASTER_DIR=/BigData/run/drill-on-yarn
mkdir $MASTER_DIR
cd $MASTER_DIR
  • 首先需要将Drill的安装包下载到$MASTER_DRILL目录中
  • 解压缩存档以创建$ DRILL_HOME
  • 使用所需的配置文件创建site目录。

以下步骤提供$MASTER_DIR目录的构建:

安装drill

可以使用drill1.8或者其他符合要求的版本来构建drill-on-yarn。drill on yarn的部署方式和drill集群或者内嵌式drill安装方式不同。具体步骤如下:

1、选择drill版本。该名称用于以下多个地方。为方便起见,请为名称定义环境变量:apache-drill-x.y.z

 export DRILL_NAME=apache-drill-x.y.z

将xyz替换为所选版本。

2、下载Drill版本。

wget  http://apache.mesi.com.ar/drill/drillx.y.z/$DRILL_NAME.tar.gz

或者使用

curl o $DRILL_NAME.tar.gz \http://apache.mesi.com.ar/drill/drillx.y.z/$DRILL_NAME.tar.gz

再次,用所选版本替换xyz。

3、解压drill安装包到$MASTER_DIR目录

tar -xzf $DRILL_NAME.tar.gz

4、为便于执行其余步骤,请调用展开的Drill文件夹$ DRILL_HOME:

export DRILL_HOME=$MASTER_DIR/$DRILL_NAME

$MASTER_DIR主目录现在应包含原始Drill安装包以及解压后的安装包。

创建site目录

site目录包含hadoop配置相关的site结尾的配置文件。如果要更改现有的drill集群安装,请参阅“Site Directory”部分。

在$MASTER_DIR目录中创建site目录:

export DRILL_SITE=$MASTER_DIR/site
mkdir $DRILL_SITE

进行全新安装时,Drill在$DRILL_HOME下包含一个conf目录。使用该目录中的文件来创建站点目录。

cp $DRILL_HOME/conf/drill-override-example.conf  $DRILL_SITE/drill-override.conf
cp $DRILL_HOME/conf/drill-on-yarn-example.conf $DRILL_SITE/drill-on-yarn.conf
cp $DRILL_HOME/conf/drill-env.sh $DRILL_SITE

根据Drill安装说明和下面的Drill-on-YARN说明编辑上述配置文件。(注意,在YARN下,可以通过修改drill-on-yarn.sh来配置drill的内存,而不是drill-env.sh配置文件。)
如果您开发自定义代码(数据源或用户定义函数(UDF)),请将Java JAR文件放在$DRILL_SITE/jars中。
您的主目录现在应包含Drill软件和包含默认文件的site目录。每次使用–site(或–config)选项启动Drill时,都将使用站点目录。以下是示例,不要运行这些:

drillbit.sh --site $DRILL_SITE
drill-on-yarn.sh --site $DRILL_SITE

创建site目录后,升级很简单。只需删除旧的Drill发行版并安装新发行版。您的文件在站点目录中保持不变。

使用现有设置配置Drill-on-YARN

下一步是配置Drill。如果您已使用Drill,请从分布式模式下的Drill开始,以了解所需的配置选项。YARN是一个学习Drill配置的尴尬环境。这些说明假定您已经在单独的Drill安装上完成了所需的配置。我们叫那个位置$PROD_DRILL_HOME。
从$PROD_DRILL_HOME,将以下内容复制到$DRILL_SITE中的相应位置:

cp $PROD_DRILL_HOME/conf/drill-override.conf $DRILL_SITE
cp $PROD_DRILL_HOME/conf/drill-env.sh $DRILL_SITE
cp $PROD_DRILL_HOME/jars/3rdparty/yourJarName.jar $DRILL_SITE/jars

创建群集配置文件

下一步是指定Drill-on-YARN启动Drill集群所需的其他配置。
首先使用您喜欢的编辑器编辑$DRILL_SITE/drill-on-yarn.conf。此文件与drill-override.conf使用的HOCON格式相同。
以$ DRILL_HOME/conf/ drill-on-yarn-example.conf为例进行说明。但是,不要只复制示例文件;而只复制您需要的特定配置设置;其他人将自动获取Drill定义的默认值。
以下部分讨论您必须设置的每个配置选项。

drill资源配置

两个关键的Drill内存参数是Java堆大小和直接内存。在非YARN集群中,您可以在$DRILL_HOME/conf/drill-env.sh中设置它们,如下所示(使用默认值显示):

DRILL_MAX_DIRECT_MEMORY="8G"
DRILL_HEAP="4G"

Drill-on-YARN使用不同的机制来设置这些值。您可以在drill-on-yarn.conf中设置值,然后在启动每个Drillbit时,Drill-on-YARN会将值复制到环境变量中。

drillbit: {heap: "4G"max-direct-memory: "8G"
}

要创建Drill-on-YARN设置,只需将值直接从您的YARN drill-env.sh文件复制到上述配置中。(在启动Drill时,Drill-on-YARN会将值复制回环境变量。)
接下来,确定在YARN下运行Drill所需的容器大小。通常,此大小只是堆和直接内存的总和。但是,如果您使用自定义库来执行自己的内存分配或启动子进程,则还必须考虑该内存使用情况。YARN内存以MB表示。例如,对于上面的默认设置,我们需要12G内存或12288MB:

drillbit: {memory-mb: 6144
}

最后,您必须确定要向Drill授予多少CPU。Drill是一项CPU密集型操作,每个额外的核心都能从中受益匪浅。但是,您可以通过指定要分配给Drill的YARN虚拟核心(vcores)的数量来限制Drill在YARN下的CPU使用率:

drillbit: {vcores: 4
}

请注意,在上文中,每个配置设置都单独显示。但是,在实际文件中,它们出现在单个组中,如下所示:

 drillbit: {heap: "4G"max-direct-memory: "8G"memory-mb: 6144vcores: 4
}

Drillbit群集配置

Drill-on-YARN使用Drillbits的“集群组”的概念来描述要启动的Drillbits集。一组可以是三种类型之一:

  • Basic:在容器可用的YARN集群中的任何位置启动drillbits。
  • Labeled:使用YARN标签来标识应运行Drill的节点集。
    本节介绍如何创建适合测试的基本组。请参阅后面的部分了解类型。
    对于基本组,您只需指定组类型和要启动的Drillbits数:
cluster: [{name: "mypool"type: "basic"count: 1}
]

上面的语法为list集合,支持多个配置。但是,在此版本中,Drill仅支持一个。

ZooKeeper配置

Drill使用ZooKeeper在Drillbits之间进行协调。在YARN下运行时,Drill Application Master使用ZooKeeper监视Drillbit运行状况。Drill-on-YARN读取您的$DRILL_SITE/drill-override.conf文件以获取ZooKeeper设置。

配置drill安装包

接下来,配置先前下载的Drill分发存档的名称。

drill-install: {client-path: "archive-path"}

archive-path是归档drill安装包的位置。在我们的示例中,就是$MASTER_DIR/apache-drill.x.y.ztar.gz。使用主目录的全名,而不是环境变量。(替换xyz的实际版本号)

选择分布式文件系统位置

Drill将您的存档复制到您提供的位置的分布式文件系统(例如HDFS)。设置DFS选项如下:

dfs: {connection: "hdfs://localhost/"dir: "/user/drill"
}

Drill可以从Hadoop配置文件中读取连接信息($HADOOP_HOME/etc/hadoop/core-site.xml)。或者,您可以使用connection属性直接在Drill集群配置文件中指定连接。然后,选择DFS文件系统位置。Drill默认使用“/user/drill”。

Hadoop位置

Apache Drill用户必须告诉Drill-on-YARN您的Hadoop安装位置。在$DRILL_SITE/ drill-env.sh中设置HADOOP_HOME环境变量以指向您的Hadoop安装:

export HADOOP_HOME= /path/to/hadoop-home

这假设Hadoop配置位于默认位置:

$HADOOP_HOME/etc/hadoop

如果您的配置在其他地方,请改为设置HADOOP_CONF_DIR:

export HADOOP_CONF_DIR= /path/to/hadoop-config

原文地址:http://drill.apache.org/docs/creating-a-basic-drill-cluster/

二、创建基础的drill集群相关推荐

  1. 『中级篇』docker-swarm创建一个多节点集群(43)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker-swarm创建一个多节点集群(43) docker Swarm是Docker官方提供的一款集群管理工具 ...

  2. 如何在Ubuntu 18.04上创建多节点MySQL集群

    翻译转载:https://www.digitalocean.com/community/tutorials/how-to-create-a-multi-node-mysql-cluster-on-ub ...

  3. 技术实践|Redis基础知识及集群搭建(上)

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.本篇文章围绕Redis基础知识及集群搭建相关内容进行了分享,希 ...

  4. BF-9300 BTX创建型警用(PDT)集群系统

    一.背景概述 随着经济的发展.城镇建设速度加快,新型城市化.新型工业化快速发展,生产安全事件.社会安全事件也呈现上升的趋势.为减少突发事件及其所造成的伤亡和损失,保障人民的生命财产安全,需要对突发事件 ...

  5. R语言中的并行计算——二、搭建R的集群

    zhuanzai :http://blog.sina.com.cn/s/blog_83bb57b70101qeys.html 一直纠结于R的大数据计算问题,希望可以找到一个彻底的方案解决它.而云服务器 ...

  6. 手把手教你创建容器服务Kubernetes集群

    Kubernetes作为目前最流行的容器编排工具,被越来越多的用户所接受,目前也有越来越多的用户开始考虑使用Kubernetes集群来部署生产应用.那么,此时用户可能面临一个问题,如何规划和创建合适的 ...

  7. 如何在Ubuntu 16.04上创建多节点MySQL集群(MySQL-Cluster)

    翻译转载:https://www.digitalocean.com/community/tutorials/how-to-create-a-multi-node-mysql-cluster-on-ub ...

  8. 使用 kubeadm 创建 kubernetes 1.9 集群

    简介 kubeadm是一个kubernetes官方提供的快速安装和初始化拥有最佳实践(best practice)的kubernetes集群的工具,虽然目前还处于 beta 和 alpha 状态,还不 ...

  9. 在 Linux 和 FireWire 上创建自己的 RAC 集群

    http://www.dbonline.cn/source/oracle/20040718/STR_building%20your%20RAC%20in%20Linux%20and%20FireWir ...

最新文章

  1. 【laravel7.x中文文档】Redis
  2. JQuery 给DOM控件绑定和移除事件的方法
  3. linux进程莫名其妙被kill,Linux进程突然被杀掉(OOM killer),查看系统日志
  4. NanoPi NEO Air使用十二:使用自带的fbtft驱动点亮SPI接口TFT屏幕,ST7789V
  5. VMware Workstation 入门使用
  6. jetty NoSuchFieldError: MAX_INACTIVE_MINUTES
  7. CRM 702和CRM 712的区别
  8. 在PAT上提交Java代码
  9. ipython怎么安装_ipython的两种安装方式
  10. 不等距双杆模型_搜索中的深度匹配模型(下)
  11. hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出
  12. mysql查询4-6_MySQL学习(四)查询
  13. web前端 基于html实现花店购物网站源码(HTML+CSS+JavaScript) 企业网站制作
  14. CMMI认证过程中实施步骤详解
  15. 教育培训招生小程序源码
  16. 【 开源计划 - Flutter组件 】 星星也可以如此闪耀 flutter_star
  17. win10怎么设置计算机语言,Win10系统怎么设置中文语言_windows10怎么把系统语言设置成中文...
  18. RocketMQ可视化Web管理界面
  19. 为啥翻唱的也特别好听呢,听J Fla 的 despacito
  20. Excel多个工作表合并,如何去除每个工作表中的表头,只保留一个表头

热门文章

  1. 【博客558】k8s node为什么需要关闭selinux与swap
  2. 考华为云认证要做什么准备,怎么做题库?
  3. 达内python培训靠谱吗
  4. layui table动态选中_ODME与动态交通分配——DTALite使用测评
  5. js的NaN和isNaN
  6. 利用人工智能和进化分析,绘制出真核生物的蛋白质之间相互作用的3D模型
  7. 支付宝支付sdk解析
  8. ​用寄存器HAL库完成LED流水灯程序
  9. Linux_操作系统-基础操作-教学
  10. 【u-boot】u-boot-2016.09 make编译过程分析(二)