在单个节点上部署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 创建蜂巢表时,presto-cli 运行失败。我不知道。有人请帮我!
在主节点上:
-
将
RegexSerDe.jar
放入与 Hadoop 发行版相关的 Hive 连接器插件目录中。(例如:对于hadoop2
分发,您可以将JAR文件放入../presto/plugin/hive-hadoop2/
) -
确保
RegexSerDe.jar
文件与此目录中存在的其他 jar 文件具有正确的所有权。 -
重新启动预服务器进程。(
sudo service presto-server restart
)。如果这不起作用,您可能需要使用启动器重新启动sudo /usr/lib/presto/bin/launcher restart
在所有从属节点上重复此操作!
上面提到的相同的过程,收到相同的错误,请提供任何建议。
查询失败:org/apache/hadoop/hive/serde2/SerDe
使用 hive-hadoop2 版本将 serde jar 放置在以下路径中
presto/plugin/hive-hadoop2/hive-serde-1.0.0.jar并重新启动Presto。
你必须把 SerDe jar 放在插件目录 (plugin/hive-cdh4) 中。我没有使用RegexSerDe,但它适用于CSVSerDe。