1

在单个节点上部署 presto。运行 Presto-cli 时,出现以下错误:

presto:default> select * from test1;
Query 20131116_233859_00005_5a2yh failed: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException SerDe org.apache.hadoop.hive.contrib.serde2.RegexSerDe does not exist)

蜂巢运行正常。为什么prestodb失败了?我的简历:

export JAVA_HOME=/usr/java
export JRE_HOME=/usr/java/jre
export HADOOP_HOME=/usr/hadoop
export HIVE_HOME=/usr/hive
export PRESTO_HOME=/usr/presto
export CLASSPATH=:.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME:`find /usr/hadoop -name '*.jar' | grep -v 'test' | grep -v 'example' | perl -e '@jars=<STDIN>;chomp @jars; print join(":",@jars);'`:$PRESTO_HOME/lib:$HADOOP/lib:$HIVE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PRESTO_HOME/bin:$HIVE_HOME/bin
export HADOOP_HEAPSIZE=4096

我明白了,当使用 RegEx 创建 hive 表时,presto-cli 运行失败。我不知道。请有人帮助我!

4

3 回答 3

3

在主节点上:

  1. 将您RegexSerDe.jar放入与您的 hadoop 发行版相关的配置单元连接器插件目录中。(例如:为了hadoop2分发,您可以将 JAR 文件放到../presto/plugin/hive-hadoop2/

  2. 确保该RegexSerDe.jar文件与此目录中存在的其他 jar 文件具有正确的所有权。

  3. 重新启动 presto-server 进程。( sudo service presto-server restart)。如果这不起作用,您可能需要使用启动器重新启动sudo /usr/lib/presto/bin/launcher restart

在所有从节点上重复此操作!

于 2015-10-30T18:36:10.517 回答
1

遵循与您上面提到的相同的过程得到相同的错误任何建议。

查询失败:org/apache/hadoop/hive/serde2/SerDe

使用 hive-hadoop2 版本将 serde jar 放在以下路径中

presto/plugin/hive-hadoop2/hive-serde-1.0.0.jar并重新启动 presto。

于 2016-05-29T07:21:42.020 回答
0

您必须将 SerDe jar 放在插件目录 (plugin/hive-cdh4) 中。我没有使用 RegexSerDe,但它适用于 CSVSerDe。

于 2013-11-27T06:53:53.270 回答