1

CDH サポートが必要だったので、最新の spring-xd をコンパイルしました。サーバーを起動することはできますが、xd-shell 経由でサーバーに接続すると、「構成」を変更しようとします。また、これは Kerberos 化されたクラスターです。xd がそれをどのように処理するか、または処理できるかはわかりません。

最初のシナリオ:

  1. 管理構成サーバー --uri http:// testdomain:10111
  2. hadoop config fs --namenode hdfs://nameservice1:8020
  3. hadoop config props set hadoop.security.group.mapping=org.apache.hadoop.security.ShellBasedUnixGroupsMapping
  4. hadoop config props load hadoop.security.group.mapping
  5. Hadoop fs ls

エラーメッセージ:

xd:>hadoop fs ls
-ls: Fatal internal error
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:128)
        at org.apache.hadoop.security.Groups.<init>(Groups.java:55)
        at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:182)
        at org.apache.hadoop.security.UserGroupInformation.initUGI(UserGroupInformation.java:252)
        at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:223)
        at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:214)
        at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:277)
        at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:668)
        at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:573)
        at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2428)
        at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2420)
        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2288)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:316)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:162)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:300)
        at org.apache.hadoop.fs.Path.getFileSystem(Path.java:194)
        at org.apache.hadoop.fs.shell.PathData.expandAsGlob(PathData.java:270)
        at org.apache.hadoop.fs.shell.Command.expandArgument(Command.java:224)
        at org.apache.hadoop.fs.shell.Command.expandArguments(Command.java:207)
        at org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:190)
        at org.apache.hadoop.fs.shell.Command.run(Command.java:154)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:254)
        at org.springframework.xd.shell.hadoop.FsShellCommands.run(FsShellCommands.java:412)
        at org.springframework.xd.shell.hadoop.FsShellCommands.runCommand(FsShellCommands.java:407)
        at org.springframework.xd.shell.hadoop.FsShellCommands.ls(FsShellCommands.java:110)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:191)
        at org.springframework.shell.core.SimpleExecutionStrategy.invoke(SimpleExecutionStrategy.java:64)
        at org.springframework.shell.core.SimpleExecutionStrategy.execute(SimpleExecutionStrategy.java:48)
        at org.springframework.shell.core.AbstractShell.executeCommand(AbstractShell.java:127)
        at org.springframework.shell.core.JLineShell.promptLoop(JLineShell.java:483)
        at org.springframework.shell.core.JLineShell.run(JLineShell.java:157)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:126)
        ... 35 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.security.JniBasedUnixGroupsMapping
        at org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.<init>(JniBasedUnixGroupsMappingWithFallback.java:38)
        ... 40 more

2番目のシナリオ

または、いくつかのJavaオプションを削除します

前のシナリオのステップ 1、2 を実行します

それから

  1. hadoop config props set hadoop.security.authorization=true
  2. hadoop config props set hadoop.security.authentication=kerberos

以下のエラー


16:50:29,682 WARN Spring Shell util.NativeCodeLoader:62 - お使いのプラットフォームのネイティブ Hadoop ライブラリをロードできません... 該当する ls: 認可 (hadoop.security.authorization) が有効になっているが、認証 (hadoop) .security.authentication) はシンプルに設定されています。kerberos やダイジェストなどの別の方法を設定してください。

ご支援いただきありがとうございます - これが機能するのが待ちきれません!

4

2 に答える 2