hive> CREATE TABLE u_user (
userid INT,
age INT,
gender CHAR(1),
occupation STRING,
zipcode STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'alluxio://master_hostname:port/ml-100k';
您可以通过访问 Alluxio WebUI http://master_hostname:19999
查看 Hive 创建的目录和文件。
确保您的 Hive Metastore 服务正在运行。Hive 元数据仓库默认情况下在端口 9083
上运行。如果未运行,请执行以下命令启动 Metastore:
$ ${HIVE_HOME}/bin/hive --service metastore
启动 Trino 服务器
启动你的 Trino 服务器。Trino 服务器默认情况下在端口 8080
上运行 (在 ${Trino_HOME}/etc/config.properties
中的 http-server.http.port
设置):
$ ${Trino_HOME}/bin/launcher run
用 Trino 查询表格
按照 Trino CLI 说明下载 trino-cli-<Trino_VERSION>-executable.jar
,将其重命名为 trino
,并使用 chmod +x
命令使其可执行(有时可执行文件 trino
存在于 ${trino_HOME}/bin/trino
中,您可以直接使用)。
运行单个查询(将 localhost:8080
替换为实际的 Trino 服务器主机名和端口):
$ ./trino --server localhost:8080 --execute "use default; select * from u_user limit 10;" \
--catalog hive --debug
定制化 Alluxio 用户属性
要配置其他 Alluxio 属性,您可以将包含 alluxio-site.properties
的配置路径(即 ${ALLUXIO_HOME}/conf
)附加到 Trino 文件夹下的 etc/jvm.config
中 Trino 的 JVM 配置里。此方法的优点是在 alluxio-site.properties
的同一文件中设置所有 Alluxio 属性。
-Xbootclasspath/a:<path-to-alluxio-conf>
或者,将 Alluxio 配置项添加到 Hadoop 配置文件(core-site.xml
,hdfs-site.xml
)中,并在文件 ${Trino_HOME}/etc/catalog/hive.properties
中将每一个 Trino worker的属性 hive.config.resources
指向 Hadoop 资源的位置。
hive.config.resources=/<PATH_TO_CONF>/core-site.xml,/<PATH_TO_CONF>/hdfs-site.xml
示例:连接高可用模式(HA)的 Alluxio 集群
如果 Alluxio HA 集群使用Embedded Journal模式的高可用,请在 classpath 上的 alluxio-site.properties
文件中适当设置 Alluxio 集群属性。
alluxio.master.rpc.addresses=master_hostname_1:19998,master_hostname_2:19998,master_hostname_3:19998
或者,您可以将属性添加到 hive.config.resources
包含的 Hadoop core-site.xml
配置中。
<configuration>
<property>
<name>alluxio.master.rpc.addresses</name>
<value>master_hostname_1:19998,master_hostname_2:19998,master_hostname_3:19998</value>
</property>
</configuration>
有关如何连接使用基于 ZooKeeper(UFS Journal 模式)的 Alluxio 高可用集群,请参阅高可用模式客户端配置参数。
示例:更改 Alluxio 默认写入类型
例如,将 alluxio.user.file.writetype.default
从默认值 ASYNC_THROUGH
更改为 CACHE_THROUGH
。
可以在 alluxio-site.properties
中指定该属性,并将此文件分发到每个 Trino 节点的 classpath:
alluxio.user.file.writetype.default=CACHE_THROUGH
或者,修改 conf/hive-site.xml
以包括:
<property>
<name>alluxio.user.file.writetype.default</name>
<value>CACHE_THROUGH</value>
</property>
增加并行度
Trino 的 Hive connector 使用配置 hive.max-split-size
来控制查询的并行性。 对于 Alluxio 1.6 或更早版本,建议将此大小设置为不小于 Alluxio 的块大小,以避免在同一块内的读冲突。 在 Alluxio 的后续版本中考虑到 Alluxio 的异步缓存能力,此问题不再存在。
避免 Trino 在读取大文件时超时
建议将 alluxio.user.streaming.data.timeout
的值增大(e.g. 10min),以避免从远端 worker 读取大文件时出现超时失败。
Alluxio is a trademark of Alluxio, Inc.
Terms of Service | Privacy Policy