我正在尝试在 Hive 也已启动并运行的机器上配置单节点 Presto,还安装了 3 节点 Hadoop 集群并在单独的 3 台机器上运行。以下是我的配置:
操作系统:Ubuntu 20.04 LTS Java:/usr/lib/jvm/java-11-openjdk-amd64 Presto 版本:presto-server-0.272
蜂巢机IP:192.168.AB.004 Hadoop 机器主节点 IP:192.168.AB.001
我已使用以下配置设置 Presto:
/etc/config.properties
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=1GB
query.max-memory-per-node=512MB
discovery-server.enabled=true
discovery.uri=http://192.168.AB.004:8080
/etc/jvm.config
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-Djdk.attach.allowAttachSelf=true
-Djava.library.path=$HADOOP_HOME/lib/native
/etc/log.properties
com.facebook.presto=WARN
/etc/node.properties
node.environment=production
node.id=f7c4bf3c-dbb4-4807-baae-9b7e41807bA9
node.data-dir=/home/user/presto/data/etc
我还创建了一个包含两个文件的 /catalog 文件夹:
/catalog/hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://192.168.AB.001:9083 ## it is a hadoop master node
hive.config.resources=/home/user/hadoopnode/etc/hadoop/core-site.xml,/home/user/apache-hive-3.1.2-bin/conf/hive-site.xml
/catalog/jmx.properties
connector.name=jmx
但是,当我尝试使用 /bin/launcher start 启动 Presto 时,它以 PID 启动,但一段时间后,当我使用 /bin/launcher status 检查其状态时,它显示“不工作”。
检查server.log文件,发现以下错误:
Error injecting constructor, java.lang.RuntimeException: failed to load Hadoop native library
...
...
...
Caused by: java.lang.UnsatisfiedLinkError: /tmp/hadoop15893511666224505815.tmp: /tmp/hadoop15893511666224505815.tmp: failed to map segment from shared object
谁能帮我解决这个问题吗?
我遇到了同样的问题,发现潜在错误
failed to map segment from shared object
可能是由于使用具有 noexec
限制的文件系统引起的。
就我而言,我将
-Djava.io.tmpdir=/path/to/new/tmp
添加到 jvm.config 并且它起作用了