Hi Abe, I was using the links off the main docs page..
https://sqoop.apache.org/docs/1.99.5/Installation.html https://sqoop.apache.org/docs/1.99.5/Sqoop5MinutesDemo.html Neil Barton [email protected] 503.780.0045 us.wherescape.com On May 13, 2015, at 3:04 PM, Abraham Elmahrek <[email protected]> wrote: > Neil, > > Oy, I don't think it's in the installation instructions. The Kerberos work > depends on hadoop-common and hadoop-security, which depends on the zookeeper > client libraries. Long term I think we should replace that, but it's a good > first step. > > Sorry for the confusion. Which installation notes are you looking at? > > -Abe > > On Wed, May 13, 2015 at 2:59 PM, Neil Barton <[email protected]> > wrote: > you are correct, no ZooKeeper installed - I must have missed that in the > installation instructions and demo. Is that a requirement for 1.99.5 (and > above) ? 1.99.3 seems to function fine without a Zookeeper install. > > Neil Barton > > [email protected] > 503.780.0045 > us.wherescape.com > > > > > > On May 13, 2015, at 2:55 PM, Abraham Elmahrek <[email protected]> wrote: > >> Yeah, kill the server. Start the server again and send your log files over. >> >> My sense of things are that you don't have Zookeeper available on your >> machine. I'd find the tomcat logs as well (if manually installed... check >> 'server/logs/(catalina.out, localhost-*.log)'. >> >> On Wed, May 13, 2015 at 1:55 PM, Neil Barton <[email protected]> >> wrote: >> hduser@ubuntu-apache251:~/wherescape/bda/work/1431549735039_2$ ls -la >> /usr/local >> total 68 >> drwxr-xr-x 17 root root 4096 May 11 12:55 . >> drwxr-xr-x 10 root root 4096 Feb 18 11:33 .. >> drwxrwxr-x 8 hduser hadoop 4096 Apr 4 06:17 apache-hive-0.13.1-bin >> drwxr-xr-x 8 hduser hadoop 4096 Apr 4 14:54 apache-hive-0.14.0-bin >> drwxr-xr-x 2 root root 4096 Feb 18 11:33 bin >> drwxr-xr-x 2 root root 4096 Feb 18 11:33 etc >> drwxr-xr-x 2 root root 4096 Feb 18 11:33 games >> lrwxrwxrwx 1 root root 12 Apr 3 11:46 hadoop -> hadoop-2.5.1 >> drwxr-xr-x 10 hduser hadoop 4096 Apr 3 12:27 hadoop-2.5.1 >> lrwxrwxrwx 1 root root 22 Apr 4 14:58 hive -> apache-hive-0.13.1-bin >> drwxr-xr-x 2 root root 4096 Feb 18 11:33 include >> drwxr-xr-x 4 root root 4096 Feb 18 11:36 lib >> lrwxrwxrwx 1 root root 9 Mar 30 12:06 man -> share/man >> drwxr-xr-x 2 root root 4096 Feb 18 11:33 sbin >> drwxr-xr-x 7 root root 4096 Feb 18 11:37 share >> lrwxrwxrwx 1 root root 26 May 11 12:55 sqoop -> >> sqoop-1.99.5-bin-hadoop200 >> drwxr-xr-x 9 hduser hadoop 4096 Aug 1 2014 >> sqoop-1.4.5.bin__hadoop-2.0.4-alpha >> drwxr-xr-x 20 hduser hadoop 4096 Apr 30 16:33 sqoop-1.99.3-bin-hadoop200 >> drwxr-xr-x 23 hduser hadoop 4096 May 7 16:13 sqoop-1.99.4-bin-hadoop200 >> drwxr-xr-x 21 hduser hadoop 4096 Apr 30 12:05 sqoop-1.99.5-bin-hadoop200 >> drwxr-xr-x 2 root root 4096 Feb 18 11:33 src >> >> >> hduser@ubuntu-apache251:/usr/local$ ps aux | grep sqoop >> hduser 35912 0.1 7.1 2452280 286880 ? Sl May12 1:02 >> /usr/lib/jvm/java-7-openjdk-amd64/bin/java >> -Djava.util.logging.config.file=/usr/local/sqoop/server/conf/logging.properties >> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager >> -Dsqoop.config.dir=/usr/local/sqoop/server/bin/../conf >> -Dsqoop.http.port=12000 -Dsqoop.admin.port=12001 >> -Djava.endorsed.dirs=/usr/local/sqoop/server/endorsed -classpath >> /usr/local/sqoo/server/bin/bootstrap.jar >> -Dcatalina.base=/usr/local/sqoop/server >> -Dcatalina.home=/usr/local/sqoop/server >> -Djava.io.tmpdir=/usr/local/sqoop/server/temp >> org.apache.catalina.startup.Bootstrap start >> hduser 47208 0.0 0.0 15952 2148 pts/25 S+ 13:54 0:00 grep >> --color=auto sqoop >> >> >> hduser@ubuntu-apache251:/usr/local$ netstat -anp | grep 12000 >> (Not all processes could be identified, non-owned process info >> will not be shown, you would have to be root to see it all.) >> tcp6 0 0 :::12000 :::* LISTEN >> 35912/java >> hduser@ubuntu-apache251:/usr/local$ >> >> >> >> >>> On May 11, 2015, at 9:50 PM, Zhou, Richard <[email protected]> wrote: >>> >>> Hey, it seems that the Sqoop server does not start correctly, according to >>> the log. Would you check the status of the Sqoop server? >>> >>> Could you type “ps aux | grep sqoop” and “netstat -anp | grep 12000” and >>> send the output? >>> >>> >>> >>> >>> Regards >>> >>> Richard >>> >>> >>> From: Neil Barton [mailto:[email protected]] >>> Sent: Tuesday, May 12, 2015 4:33 AM >>> To: [email protected] >>> Subject: Re: 1.99.5 and unable to find valid Kerberos ticket. >>> >>> >>> >>> hduser@ubuntu-apache251:~/sqoop$ sqoop2-shell >>> >>> Sqoop home directory: /usr/local/sqoop >>> >>> Sqoop Shell: Type 'help' or '\h' for help. >>> >>> >>> sqoop:000> set server --host ubuntu-apache251 --port 12000 -webapp sqoop >>> >>> Server is set successfully >>> >>> sqoop:000> set option --name verbose --value true >>> >>> Verbose option was changed to true >>> >>> sqoop:000> show version --all >>> >>> client version: >>> >>> Sqoop 1.99.5 source revision 9665c01f674d69d41a6fcfffb2c0b94590f70f59 >>> >>> Compiled by vbasavaraj on Wed Feb 18 09:42:27 PST 2015 >>> >>> 0 [main] WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load >>> native-hadoop library for your platform... using builtin-java classes where >>> applicable >>> >>> Exception has occurred during processing command >>> >>> Exception: org.apache.sqoop.common.SqoopException Message: >>> CLIENT_0004:Unable to find valid Kerberos ticket cache (kinit) >>> >>> Stack trace: >>> >>> at org.apache.sqoop.client.request.ResourceRequest >>> (ResourceRequest.java:151) >>> >>> at org.apache.sqoop.client.request.ResourceRequest >>> (ResourceRequest.java:62) >>> >>> at org.apache.sqoop.client.request.ResourceRequest >>> (ResourceRequest.java:171) >>> >>> at org.apache.sqoop.client.request.VersionResourceRequest >>> (VersionResourceRequest.java:36) >>> >>> at org.apache.sqoop.shell.ShowVersionFunction >>> (ShowVersionFunction.java:112) >>> >>> at org.apache.sqoop.shell.ShowVersionFunction >>> (ShowVersionFunction.java:65) >>> >>> at org.apache.sqoop.shell.SqoopFunction >>> (SqoopFunction.java:51) >>> >>> at org.apache.sqoop.shell.SqoopCommand >>> (SqoopCommand.java:141) >>> >>> at org.apache.sqoop.shell.SqoopCommand >>> (SqoopCommand.java:103) >>> >>> at org.codehaus.groovy.tools.shell.Command$execute >>> (null:-1) >>> >>> at org.codehaus.groovy.runtime.callsite.CallSiteArray >>> (CallSiteArray.java:42) >>> >>> at org.codehaus.groovy.tools.shell.Command$execute >>> (null:-1) >>> >>> at org.codehaus.groovy.tools.shell.Shell >>> (Shell.groovy:101) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:-1) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at org.codehaus.groovy.reflection.CachedMethod >>> (CachedMethod.java:90) >>> >>> at groovy.lang.MetaMethod (MetaMethod.java:233) >>> >>> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:128) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:173) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at >>> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce >>> (PogoMetaMethodSite.java:267) >>> >>> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite >>> (PogoMetaMethodSite.java:52) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:141) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:121) >>> >>> at org.codehaus.groovy.tools.shell.Shell >>> (Shell.groovy:114) >>> >>> at org.codehaus.groovy.tools.shell.Shell$leftShift$0 >>> (null:-1) >>> >>> at org.codehaus.groovy.tools.shell.ShellRunner >>> (ShellRunner.groovy:88) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:-1) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at org.codehaus.groovy.reflection.CachedMethod >>> (CachedMethod.java:90) >>> >>> at groovy.lang.MetaMethod (MetaMethod.java:233) >>> >>> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:128) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:148) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:100) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at >>> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce >>> (PogoMetaMethodSite.java:267) >>> >>> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite >>> (PogoMetaMethodSite.java:52) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:137) >>> >>> at org.codehaus.groovy.tools.shell.ShellRunner >>> (ShellRunner.groovy:57) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:-1) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at org.codehaus.groovy.reflection.CachedMethod >>> (CachedMethod.java:90) >>> >>> at groovy.lang.MetaMethod (MetaMethod.java:233) >>> >>> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:128) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:148) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:66) >>> >>> at java_lang_Runnable$run (null:-1) >>> >>> at org.codehaus.groovy.runtime.callsite.CallSiteArray >>> (CallSiteArray.java:42) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:108) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:112) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:463) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:402) >>> >>> at org.apache.sqoop.shell.SqoopShell (SqoopShell.java:128) >>> >>> >>> Caused by: Exception: >>> org.apache.hadoop.security.authentication.client.AuthenticationException >>> Message: Authentication failed, status: 404, message: Not Found >>> >>> Stack trace: >>> >>> at >>> org.apache.hadoop.security.authentication.client.AuthenticatedURL >>> (AuthenticatedURL.java:275) >>> >>> at >>> org.apache.hadoop.security.authentication.client.PseudoAuthenticator >>> (PseudoAuthenticator.java:77) >>> >>> at >>> org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticator >>> (DelegationTokenAuthenticator.java:127) >>> >>> at >>> org.apache.hadoop.security.authentication.client.KerberosAuthenticator >>> (KerberosAuthenticator.java:205) >>> >>> at >>> org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticator >>> (DelegationTokenAuthenticator.java:127) >>> >>> at >>> org.apache.hadoop.security.authentication.client.AuthenticatedURL >>> (AuthenticatedURL.java:216) >>> >>> at >>> org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL >>> (DelegationTokenAuthenticatedURL.java:322) >>> >>> at >>> org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL >>> (DelegationTokenAuthenticatedURL.java:245) >>> >>> at org.apache.sqoop.client.request.ResourceRequest >>> (ResourceRequest.java:72) >>> >>> at org.apache.sqoop.client.request.ResourceRequest >>> (ResourceRequest.java:62) >>> >>> at org.apache.sqoop.client.request.ResourceRequest >>> (ResourceRequest.java:171) >>> >>> at org.apache.sqoop.client.request.VersionResourceRequest >>> (VersionResourceRequest.java:36) >>> >>> at org.apache.sqoop.shell.ShowVersionFunction >>> (ShowVersionFunction.java:112) >>> >>> at org.apache.sqoop.shell.ShowVersionFunction >>> (ShowVersionFunction.java:65) >>> >>> at org.apache.sqoop.shell.SqoopFunction >>> (SqoopFunction.java:51) >>> >>> at org.apache.sqoop.shell.SqoopCommand >>> (SqoopCommand.java:141) >>> >>> at org.apache.sqoop.shell.SqoopCommand >>> (SqoopCommand.java:103) >>> >>> at org.codehaus.groovy.tools.shell.Command$execute >>> (null:-1) >>> >>> at org.codehaus.groovy.runtime.callsite.CallSiteArray >>> (CallSiteArray.java:42) >>> >>> at org.codehaus.groovy.tools.shell.Command$execute >>> (null:-1) >>> >>> at org.codehaus.groovy.tools.shell.Shell >>> (Shell.groovy:101) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:-1) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at org.codehaus.groovy.reflection.CachedMethod >>> (CachedMethod.java:90) >>> >>> at groovy.lang.MetaMethod (MetaMethod.java:233) >>> >>> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:128) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:173) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at >>> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce >>> (PogoMetaMethodSite.java:267) >>> >>> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite >>> (PogoMetaMethodSite.java:52) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:141) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:121) >>> >>> at org.codehaus.groovy.tools.shell.Shell >>> (Shell.groovy:114) >>> >>> at org.codehaus.groovy.tools.shell.Shell$leftShift$0 >>> (null:-1) >>> >>> at org.codehaus.groovy.tools.shell.ShellRunner >>> (ShellRunner.groovy:88) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:-1) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at org.codehaus.groovy.reflection.CachedMethod >>> (CachedMethod.java:90) >>> >>> at groovy.lang.MetaMethod (MetaMethod.java:233) >>> >>> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:128) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:148) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:100) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at >>> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce >>> (PogoMetaMethodSite.java:267) >>> >>> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite >>> (PogoMetaMethodSite.java:52) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:137) >>> >>> at org.codehaus.groovy.tools.shell.ShellRunner >>> (ShellRunner.groovy:57) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:-1) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:-2) >>> >>> at sun.reflect.NativeMethodAccessorImpl >>> (NativeMethodAccessorImpl.java:57) >>> >>> at sun.reflect.DelegatingMethodAccessorImpl >>> (DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method (Method.java:606) >>> >>> at org.codehaus.groovy.reflection.CachedMethod >>> (CachedMethod.java:90) >>> >>> at groovy.lang.MetaMethod (MetaMethod.java:233) >>> >>> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:128) >>> >>> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter >>> (ScriptBytecodeAdapter.java:148) >>> >>> at org.codehaus.groovy.tools.shell.InteractiveShellRunner >>> (InteractiveShellRunner.groovy:66) >>> >>> at java_lang_Runnable$run (null:-1) >>> >>> at org.codehaus.groovy.runtime.callsite.CallSiteArray >>> (CallSiteArray.java:42) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:108) >>> >>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite >>> (AbstractCallSite.java:112) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:463) >>> >>> at org.codehaus.groovy.tools.shell.Groovysh >>> (Groovysh.groovy:402) >>> >>> at org.apache.sqoop.shell.SqoopShell (SqoopShell.java:128) >>> >>> >>> sqoop:000> >>> >>> >>> >>> On May 11, 2015, at 1:29 PM, Abraham Elmahrek <[email protected]> wrote: >>> >>> >>> >>> Hey man, >>> >>> >>> >>> could you type "show version --all" and send the output? >>> >>> >>> >>> -Abe >>> >>> >>> >>> On Mon, May 11, 2015 at 1:17 PM, Neil Barton <[email protected]> >>> wrote: >>> >>> PseudoAuthenticator >>> >>> >>> >>> >>> >> >> > >
