3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

embulk(0.8.12)でMySQLからBigQueryにデータ流そうとしたらハマったのでログを残す

Last updated at Posted at 2016-08-12

2016/8/15 20:00 更新

  • httpclient 2.8.2がでて修正されました。

2016/8/15 17:00 更新

  • httpclientのバージョンを下げても以下は対処できます。
embulk gem install httpclient -v 2.8.0
embulk gem uninstall httpclient -v 2.8.1

前提

MacOS上では大丈夫

EC2のAmazon Linux上で以下の組み合わせでエラー(EC2上でUbuntu)も試したけど同じ。

embulk: 0.8.12
embulk-input-mysql: 0.7.2
embulk-output-bigquery: 0.3.6

エラー内容

D, [2016-08-12T14:02:56.308000 #13984] DEBUG -- : Sending HTTP get https://www.googleapis.com/bigquery/v2/projects/xxx/datasets/xxx_mobile?
D, [2016-08-12T14:02:58.317000 #13984] DEBUG -- : Caught error sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
D, [2016-08-12T14:02:58.327000 #13984] DEBUG -- : Error - #<Hurley::SSLError: OpenSSL::SSL::SSLError>

org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (TransmissionError) sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(org/embulk/exec/BulkLoader.java:363)
	at org.embulk.exec.BulkLoader.doRun(org/embulk/exec/BulkLoader.java:572)
	at org.embulk.exec.BulkLoader.access$000(org/embulk/exec/BulkLoader.java:33)
	at org.embulk.exec.BulkLoader$1.run(org/embulk/exec/BulkLoader.java:374)
	at org.embulk.exec.BulkLoader$1.run(org/embulk/exec/BulkLoader.java:370)
	at org.embulk.spi.Exec.doWith(org/embulk/spi/Exec.java:25)
	at org.embulk.exec.BulkLoader.run(org/embulk/exec/BulkLoader.java:370)
	at org.embulk.EmbulkEmbed.run(org/embulk/EmbulkEmbed.java:180)
	at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:498)
	at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:453)
	at org.jruby.javasupport.JavaMethod.invokeDirect(org/jruby/javasupport/JavaMethod.java:314)
	at RUBY.run(/home/xxx/.embulk/bin/embulk!/embulk/runner.rb:84)
	at RUBY.run(/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_run.rb:302)
	at RUBY.<top>(/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_main.rb:2)
	at org.jruby.Ruby.runInterpreter(org/jruby/Ruby.java:849)
	at org.jruby.Ruby.loadFile(org/jruby/Ruby.java:2986)
	at org.jruby.RubyKernel.requireCommon(org/jruby/RubyKernel.java:951)
	at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:944)
	at RUBY.(root)(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1)
	at home.xxx.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.<top>(file:/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)
	at java.lang.invoke.MethodHandle.invokeWithArguments(java/lang/invoke/MethodHandle.java:627)
	at org.jruby.Ruby.runScript(org/jruby/Ruby.java:833)
	at org.jruby.Ruby.runScript(org/jruby/Ruby.java:825)
	at org.jruby.Ruby.runNormally(org/jruby/Ruby.java:760)
	at org.jruby.Ruby.runFromMain(org/jruby/Ruby.java:579)
	at org.jruby.Main.doRunFromMain(org/jruby/Main.java:425)
	at org.jruby.Main.internalRun(org/jruby/Main.java:313)
	at org.jruby.Main.run(org/jruby/Main.java:242)
	at org.jruby.Main.main(org/jruby/Main.java:204)
	at org.embulk.cli.Main.main(org/embulk/cli/Main.java:23)
	Suppressed: java.lang.NullPointerException
		at org.embulk.exec.BulkLoader.doCleanup(BulkLoader.java:479)
		at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:410)
		at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:406)
		at org.embulk.spi.Exec.doWith(Exec.java:25)
		at org.embulk.exec.BulkLoader.cleanup(BulkLoader.java:406)
		at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:184)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:453)
		at org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:314)
		at org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:45)
		at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
		at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
		at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:316)
		at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
		at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
		at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
		at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
		at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
		at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:83)
		at org.jruby.ir.instructions.CallBase.interpret(CallBase.java:423)
		at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:348)
		at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
		at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
		at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
		at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
		at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
		at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
		at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
		at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:316)
		at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
		at org.jruby.ir.interpreter.Interpreter.INTERPRET_ROOT(Interpreter.java:112)
		at org.jruby.ir.interpreter.Interpreter.execute(Interpreter.java:99)
		at org.jruby.ir.interpreter.Interpreter.execute(Interpreter.java:35)
		at org.jruby.ir.IRTranslator.execute(IRTranslator.java:42)
		at org.jruby.Ruby.runInterpreter(Ruby.java:849)
		at org.jruby.Ruby.loadFile(Ruby.java:2986)
		at org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.load(LibrarySearcher.java:235)
		at org.jruby.runtime.load.LibrarySearcher$FoundLibrary.load(LibrarySearcher.java:34)
		at org.jruby.runtime.load.LoadService.tryLoadingLibraryOrScript(LoadService.java:900)
		at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:540)
		at org.jruby.runtime.load.LoadService.requireCommon(LoadService.java:427)
		at org.jruby.runtime.load.LoadService.require(LoadService.java:393)
		at org.jruby.RubyKernel.requireCommon(RubyKernel.java:951)
		at org.jruby.RubyKernel.require19(RubyKernel.java:944)
		at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
		at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:383)
		at org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:61)
		at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
		at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
		at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:316)
		at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
		at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
		at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
		at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
		at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
		at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
		at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
		at home.xxx.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.invokeOther66:require(file:/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb)
		at home.xxx.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.RUBY$script(file:/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)
		at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
		at org.jruby.ir.Compiler$1.load(Compiler.java:111)
		at org.jruby.Ruby.runScript(Ruby.java:833)
		at org.jruby.Ruby.runScript(Ruby.java:825)
		at org.jruby.Ruby.runNormally(Ruby.java:760)
		at org.jruby.Ruby.runFromMain(Ruby.java:579)
		at org.jruby.Main.doRunFromMain(Main.java:425)
		at org.jruby.Main.internalRun(Main.java:313)
		at org.jruby.Main.run(Main.java:242)
		at org.jruby.Main.main(Main.java:204)
		at org.embulk.cli.Main.main(Main.java:23)
Caused by: org.jruby.exceptions.RaiseException: (TransmissionError) sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at RUBY.error(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/lib/google/apis/core/http_command.rb:256)
	at RUBY.execute_once(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/lib/google/apis/core/http_command.rb:290)
	at RUBY.block in execute(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/lib/google/apis/core/http_command.rb:107)
	at RUBY.block in retriable(/home/xxx/.embulk/jruby/2.3.0/gems/retriable-2.1.0/lib/retriable.rb:54)
	at org.jruby.RubyFixnum.times(org/jruby/RubyFixnum.java:297)
	at RUBY.retriable(/home/xxx/.embulk/jruby/2.3.0/gems/retriable-2.1.0/lib/retriable.rb:48)
	at RUBY.block in execute(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/lib/google/apis/core/http_command.rb:104)
	at RUBY.block in retriable(/home/xxx/.embulk/jruby/2.3.0/gems/retriable-2.1.0/lib/retriable.rb:54)
	at org.jruby.RubyFixnum.times(org/jruby/RubyFixnum.java:297)
	at RUBY.retriable(/home/xxx/.embulk/jruby/2.3.0/gems/retriable-2.1.0/lib/retriable.rb:48)
	at RUBY.execute(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/lib/google/apis/core/http_command.rb:96)
	at RUBY.execute_or_queue_command(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/lib/google/apis/core/base_service.rb:346)
	at RUBY.get_dataset(/home/xxx/.embulk/jruby/2.3.0/gems/google-api-client-0.9.11/generated/google/apis/bigquery_v2/service.rb:133)
	at RUBY.get_dataset(/home/xxx/.embulk/jruby/2.3.0/gems/embulk-output-bigquery-0.3.6/lib/embulk/output/bigquery/bigquery_client.rb:352)
	at RUBY.transaction(/home/xxx/.embulk/jruby/2.3.0/gems/embulk-output-bigquery-0.3.6/lib/embulk/output/bigquery.rb:272)
	at RUBY.transaction(/home/xxx/.embulk/bin/embulk!/embulk/output_plugin.rb:64)
	at RUBY.run(/home/xxx/.embulk/bin/embulk!/embulk/runner.rb:84)
	at RUBY.run(/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_run.rb:302)
	at RUBY.<top>(/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_main.rb:2)
	at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:944)
	at RUBY.(root)(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1)
	at home.xxx.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.<top>(file:/home/xxx/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)

Twitterで助けてもらった

@hiroysato さんありがとうございますmm

結局どうしたのか

cd ~/server/config/google_service_accounts
wget https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.pem
export SSL_CERT_FILE=~/server/config/google_service_accounts/Equifax_Secure_Certificate_Authority.pem

上記をやったうえで、embulk runを実行

このSSL_CERT_FILEはグローバルで設定するといろいろやっかいだと思うので、気をつける。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?