Llama的使用

简介:

1. 介绍

Llama (Low Latency Application MAster) 是一个 Yarn 的 Application Master,用于协调 Impala 和 Yarn 之间的集群资源的管理和监控。Llama 使 Impala 能够获取、使用和释放资源配额,而不需要 Impala 使用 Yarn 管理的 container 进程。Llama 提供了 Thrift API 来和 Yarn 交互。

个人理解,Llama 的作用就是使 Impala 能够工作在 YARN 之上,使得 Impala 和 YARN 共享集群资源,提供低延迟的查询。

2. 架构

3. Llama 安装

3.1 安装 llama

Llama 需要安装在装有 Yarn 的节点上。

在 rhel 系统上安装:

$ sudo yum install llama-master

3.2 配置

Llama 只能和 Yarn 配合工作,不能用于 MRv1。

Llama 的配置文件在 /etc/llama/conf/ 目录,llama-site.xml 默认配置在 http://cloudera.github.io/llama/llama-site.html。

3.3 启动和停止

启动:

$ sudo service llama start

停止:

$ sudo service llama stop

3.4 配置 HA

Llama 使用 Zookeeper 来实现 HA,任一时刻,只有一个 Llama-master 实例是 active的以确保资源不会被分区。

为了从 Yarn 获取资源,Llama 启动 YARN application 并且运行未管理的ApplicationMaster。当一个 Llama 实例宕掉的时候,分配给该实例启动的 application 的所有资源将会被回首,直到这些 application 超时(默认超时时间为10分钟)。当 Llama 运行失败的时候,这些资源将会被杀掉他启动的application的 Llama 回收。

HA 相关配置参数在 /etc/llama/conf/llama-site.xml:

属性 描述 默认值
llama.am.cluster.id Cluster ID of the Llama pair, used to differentiate between different Llamas llama
llama.am.ha.enabled Whether to enable Llama HA false
llama.am.ha.zk-quorum ZooKeeper quorum to use for leader election and fencing  
llama.am.ha.zk-base Base znode for leader election and fencing data /llama
llama.am.ha.zk-timeout-ms The session timeout, in milliseconds, for connections to ZooKeeper quorum 10000
llama.am.ha.zk-acl ACLs to control access to ZooKeeper world:anyone:rwcda
llama.am.ha.zk-auth Authorization information to go with the ACLs  

上面必填的两个参数为:

  • llama.am.ha.enabled : true
  • llama.am.ha.zk-quorum : cdh1:21088,cdh2:21088

3.5 修改 Impala 启动参数

使用 jdbc 方式提交查询到 Impala 时,会出现 number of running queries 20 is over limit 20 的异常,这时候在 impala的 源代码中搜索关键字 number of running queries,可以找到https://github.com/cloudera/Impala/blob/cdh5-1.4_5.1.2/be/src/scheduling/admission-controller.cc,从源代码中可以看到出现该问题和 Llama 有关系,在找不到 llama 的相关配置时,impala 一个队列中能够接受的最大请求数为 20。代码见:RequestPoolService.java

@VisibleForTesting
  TPoolConfigResult getPoolConfig(String pool) {
    
    TPoolConfigResult result = new TPoolConfigResult();
    int maxMemoryMb = allocationConf_.get().getMaxResources(pool).getMemory();
    result.setMem_limit(
        maxMemoryMb == Integer.MAX_VALUE ? -1 : (long) maxMemoryMb * ByteUnits.MEGABYTE);
    if (llamaConf_ == null) {
    												//llama配置为空
      result.setMax_requests(LLAMA_MAX_PLACED_RESERVATIONS_DEFAULT);
      result.setMax_queued(LLAMA_MAX_QUEUED_RESERVATIONS_DEFAULT);
    } else {
    
      // Capture the current llamaConf_ in case it changes while we're using it.
      Configuration currentLlamaConf = llamaConf_;
      result.setMax_requests(getLlamaPoolConfigValue(currentLlamaConf, pool,
          LLAMA_MAX_PLACED_RESERVATIONS_KEY,
          LLAMA_MAX_PLACED_RESERVATIONS_DEFAULT));  //20
      result.setMax_queued(getLlamaPoolConfigValue(currentLlamaConf, pool,
          LLAMA_MAX_QUEUED_RESERVATIONS_KEY,
          LLAMA_MAX_QUEUED_RESERVATIONS_DEFAULT));
    }
    LOG.trace("getPoolConfig(pool={}): mem_limit={}, max_requests={}, max_queued={}",
        new Object[] {
     pool, result.mem_limit, result.max_requests, result.max_queued });
    return result;
  }

目前,参考Admission Control and Query Queuing,在不安装和使用 llama 情况下,找到的一种解决办法是:

修改 impala 启动参数(/etc/default/impala),添加 ` -default_pool_max_requests=-1`,该参数设置每一个队列的最大请求数,如果为-1,则表示不做限制。

4. 使用

4.1 Llama Application Master

4.2 Llama Admin Command Line tool

4.3 Llama Node Manager Auxiliary Service

目录
相关文章
|
9月前
|
人工智能 安全 API
资源有限,跑大模型太难?手把手教你用 llama.cpp 安全部署任意 GGUF 模型(含 DeepSeek-R1 实战)
无需高端显卡,手把手教你用 llama.cpp 本地安全部署任意 GGUF 模型!支持 DeepSeek-R1 实战,实现离线运行、流式输出与 OpenAI 兼容 API。涵盖 Docker 安全加固、模型切换、双模客户端调用,适用于企业知识库、智能客服等场景,个人开发者与企业皆可快速落地。
|
人工智能 安全 Apache
QwenPaw:你的私人 AI 助理 —— 数据归你、记忆进化、多端触达的开源个人智能体
QwenPaw 是一款开源、本地优先的AI个人智能体(Apache 2.0),数据归属用户、记忆自主进化、支持钉钉/飞书/微信等多端触达。3行命令即可部署,内置Coding IDE、Persona人格、定时任务、MCP工具生态与多Agent协作,真正属于你的私有AI助理。
QwenPaw:你的私人 AI 助理 —— 数据归你、记忆进化、多端触达的开源个人智能体
|
6月前
|
弹性计算 人工智能 自然语言处理
阿里云Qwen3.6全新开源,三步完成专有版部署!
Qwen3.6是阿里云全新MoE架构大模型系列,稀疏激活显著降低推理成本,兼顾顶尖性能与高性价比;支持多规格、FP8量化、原生Agent及100+语言,开箱即用。
|
7月前
|
安全 Linux API
OpenClaw从零到一部署手册|阿里云/本地Mac/Linux/Win11搭建+免费大模型+飞书集成+问题全解
OpenClaw(业内常称“小龙虾AI”)作为2026年主流开源自动化智能体框架,支持本地/云端部署、多平台接入、大模型驱动自主执行,可实现代码开发、内容创作、流程自动化等能力。目前网上教程多为一键脚本,安全性与可控性不足,本文基于2026年最新实践,提供阿里云容器化安全部署、MacOS/Linux/Windows11本地部署、阿里云百炼Coding Plan免费大模型配置、飞书机器人对接及全场景常见问题解答,全程不花冤枉钱,新手可直接抄作业。
1536 3
|
8月前
|
存储 人工智能 自然语言处理
大模型应用:从问题到答案:LlamaIndex RAG系统工作流程详解.15
本文深入解析LlamaIndex核心概念与实战:Document(文档封装)、Node(语义切分)、Index(向量检索)、Query Engine(端到端问答)、Retriever(精准检索)及Response Synthesis(智能合成),配套本地Qwen+MiniLM代码示例,助力RAG快速落地。(238字)
917 22
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
8776 119
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手