二、创建基础的drill集群

客户端配置

任务提交任务到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: 6144
         vcores: 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,翻译,drill,yarn)