could not initialize org.apache.hadoop.hive.ql.parse.StorageFormat

  客户现场安装好kettle,配置好集群,测试集群通过后,使用hive组件执行建表sql时报错(也不能向hive表中插入数据):
java.lang.NoClassDefFoundError: could not initialize org.apache.hadoop.hive.ql.parse.StorageFormat

  看了下源代码一脸懵逼啊,不知道为什么初始化失败。这个错误连猜的方向都没有。

  刚开始以为是包和配置的问题,换了包,检查了配置,甚至换了3台机器,问题依然存在,而公司本地环境没有此问题。

  现场同事也检查了hive服务的状态,并使用hive命令建表成功。

  最后没法,只能比较本地和现场两个hadoop环境的所有客户端配置文件,最后发现一处不同:
hive.execution.engine属性现场值是tez,本地是mr。

  咨询了hadoop平台同事,说如果beeline命令执行sql成功的话,hive相关服务就是正常的。

  于是现场同事使用beeline命令执行建表,结果报出同样的错误。原来是hadoop服务端出问题,终于松了口气。

  然后同事把配置改为和公司一致,为mr。sql建表终于正常。

  而公司hadoop平台的技术人员继续排查问题,为什么tez引擎就不能通过jdbc执行sql。

你可能感兴趣的:(support日常)