Какие внешние зависимости есть у фат / сборочных фляг?

Итак, мы работаем над этим проектом Scala с sbt, и у нас возникла странная проблема с толстыми банками

Я создал наш толстый jar (назовите его x.jar) на своем локальном компьютере и запустил некоторый код, который использует Hive JDBC для выполнения некоторых запросов Hive на нашей машине Hive, все работало нормально, однако, когда я скопировал x.jar на другую удаленную машину Y (не машина Hive) и запустил оттуда код (подключаясь к той же машине Hive через тот же порт)

java.sql.SQLException: org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out

Я использовал слово странно, потому что у меня сложилось впечатление, что толстые банки не должны использовать какие-либо внешние зависимости, но результат того, что произошло, заставляет меня переосмыслить

И машина, и мой компьютер используют одну и ту же версию Scala. Так как я использовал ту же самую толстую банку, я не думаю, что это проблема столкновения версий

Я также попытался создать новый проект с нуля и создал для него банку (не толстую банку), а затем передал эту банку машине Y и вручную добавил необходимые баночки в качестве части своего classpath, он успешно запросил машину Hive, поэтому я не не думаю, что это проблема подключения либо

Итак, у меня есть 2 вопроса:

  • Используют ли толстые банки какие-то внешние зависимости? Если да, то как это определяется? Если нет, не могли бы вы помочь мне придумать другое объяснение упомянутой мной проблемы?
  • Может ли кто-нибудь порекомендовать какой-нибудь хороший материал для чтения на обычных банках против толстых банок? и когда вы должны использовать каждый?

Спасибо

0 ответов

Другие вопросы по тегам