apache hive 从 Hive 2.0 版本引⼊了 LLAP(Live Long And Process),2.1版本进⾏了⽐较⼤的优化,可以说 hive 已经⾛向了内存计算。⽬前 hortonworks 测试 llap + tez ⽐ hive1.x 快了25倍。LLAP 提供了混合执行 model,由一个 long-lived 守护进程组成,取代了与 HDFS DataNode 的直接交互和一个紧密集成的 DAG-based framework。例如,缓存 pre-fetching,部分查询处理和访问控制之类的功能被移动到守护进程中。Small/short 查询由此守护程序直接处理,其他较为复杂的查询将在标准 YARN 容器中执行。
joins/semi-joins
等。进入 EMR 购买页。
选择产品版本:EMR-V2.3.0。
在【可选组件】列表中,选择【TEZ 0.9.2】后就会默认安装 hive-llap,安装目录位于 /usr/local/service/slider
。
/usr/local/service/slider/conf/slider-client.xml
,增加配置项:<property>
<name>hadoop.registry.zk.quorum</name>
<value>zk_ip:zk_port</value>
</property>
这里的 value,如果是非高可用集群 IP 是 master 节点,如果是高可用集群,执行如下命令查看 zookeeper 组件(即 zk)。
cat /usr/local/service/hadoop/etc/hadoop/hdfs-site.xml |grep 2181
<property>
<name>hive.execution.engine</name>
<value>tez</value>
</property>
<property>
<name>hive.llap.execution.mode</name>
<value>all</value>
</property>
<property>
<name>hive.execution.mode</name>
<value>llap</value>
</property>
<property>
<name>hive.llap.daemon.service.hosts</name>
<value>@llap_service</value>
</property>
<property>
<name>hive.zookeeper.quorum</name>
<value>zk_ip:zk_port</value>
</property>
<property>
<name>hive.llap.daemon.memory.per.instance.mb</name>
<value>4000</value>
</property>
<property>
<name>hive.llap.daemon.num.executors</name>
<value>2</value>
</property>
<property>
<name>hive.server2.tez.default.queues</name>
<value>root.default</value>
</property>
<property>
<name>hive.server2.tez.initialize.default.sessions</name>
<value>true</value>
</property>
<property>
<name>hive.server2.tez.sessions.per.default.queue</name>
<value>2</value>
</property>
注意:这里的
hive.zookeeper.quorum
配置项需要填写实际的 zookeeper 地址和端口。
hive --service llap --name llap_service --instances 2 --size 2g --loglevel INFO --cache 1g --executors 2 --iothreads 5 --slider-am-container-mb 1024 --args " -XX:+UseG1GC -XX:+ResizeTLAB -XX:+UseNUMA -XX:-ResizePLAB"
这里会在当前目录下生成 llap 的运行和配置文件,根据提示执行run.sh
脚本,如:
llap-slider-27May2020/run.sh
执行上面这个run.sh
文件,这里会在 yarn 上提交一个常驻 application,等待几分钟会在 yarn-ui
上看到这个application。
说明:这里 LLAP 初始化会需要几分钟,等待几分钟后再去执行数据操作。
create table t1(id int, name string);
insert into t1 values('1','test1'),('2', 'test2');
select id, count(1) from t1 group by id;
预期结果:
本页内容是否解决了您的问题?