この質問はあいまいですが、私はいくつかの提案をすることができます。最初に、SAS Enterprise Guideユーザーは、エラーが発生したSASログをジョブから取得する必要があります。
使用されているHadoopクラスタの配布、バージョン、サービス(たとえば、Knox、Sentry、またはRangerのセキュリティ製品を設定する必要があります)、認証(Kerberos)がすべて異なります。私はあなたがケルベロスの問題を抱えていないと仮定したり、Knox、Sentry、Ranger ectを実行していて、ケルベロスのないコアのハープを使用していると仮定します。あなたがそれらの助けを必要とする場合は、より具体的にする必要があります。
1.このためには、hadoop側の権限をチェックする必要があります。あなたは彼らがどこにデータを置いているのかを知る必要があります。これらはHDFS内のパスであり、サーバーファイルシステムではありません。
ハイブに接続してオプションを指定しないと、/ user/hive/warehouse、/ user/usernameフォルダの可能性があります。
デフォルトでは、Hadoopスティッキビットを有効にすると、ユーザはHDFSで/ tmpに書き込むことができなくなります。一部のSASプログラムは、hdfsの/ tmpフォルダに書き込んでメタデータを保存します。
Hadoopノードで次のコマンドを実行し、HDFSの基本的なアクセス許可を確認します。
hadoop fs -ls/
あなたは、/ tmpフォルダが最後に「t」を持っている場合はスティッキービットは、このようなdrwxrwxrwtとして設定されている、権限と一緒に/ tmpフォルダが表示されるはずです。パーミッションがdrwxrwxrwxの場合、スティッキービットは設定されません。パーミッションの問題を解消するのに適しています。
スティッキービットが/ tmpに設定されている場合は、通常はデフォルトでリモートにするか、HadoopクラスタのSASプログラムlibnameにHDFS TEMPディレクトリを設定する必要があります。
削除/次の記事を参照してHadoopのスティッキービットを変更したり、あなたのHadoopベンダーからするにSAS/ACCESS® 9.4 for Relational Databases: Reference, Ninth Edition | LIBNAME Statement Specifics for Hadoop
でlibnameにオプションについてのHadoopのガイドを次のようにSAS/ACCESSをご参照ください。 Configuring Hadoop Security in CDH 5 Step 14: Set the Sticky Bit on HDFS Directories。あなたはstickybitを削除するために、この記事の反対をしたいと思うでしょう。
2 - SAS +認証+ユーザー -
あなたのHadoopクラスタは、Kerberosを使用して固定されている場合、多くの各SASユーザーが任意のHadoopのサービスに話をするための有効なKerberosチケットを持っています。 SAS Hadoopのサポートページには、Kerberosとその他のリソースに関する多数のガイドがあります。ケルベロスでは、ユーザー名やパスワードではなく、ケルベロスチケットが必要です。
SAS 9.4 Support For Hadoop Reference
あなたは、あなたが認証なしのHadoopのデフォルトのいずれかを持つことができるのいずれか、または可能性などハイブなどの一部のサービスは、LDAPが有効になっている可能性がKerberosを使用していない場合。
LDAPを有効にしていない場合は、libnameステートメントの任意のHadoopユーザー名を使用して、hive、hdfs、またはyarnなどの接続を行うことができます。パスワードを入力する必要はなく、このユーザーはSASユーザーアカウントである必要はありません。これは、デフォルトのHadoop設定では認証を必要としないためです。 HadoopクラスタのSASユーザ用に作成したアカウントなど、別のアカウントを使用することができます。これを行う場合は、HDFSのスーパーユーザとして以下のようなものを実行するか、またはHadoopの権限を持つものを実行してユーザに所有権を設定することによって、HDFSに/ user/usernameフォルダを作成する必要があります。 のHadoop FS -mkdir /ユーザー/ sasdemo のHadoop FS -chown sasdemo:sasusers /ユーザー/ sasdemo 次に、あなたは確かにそれは彼らが彼らのlibnameに声明を持っている方のユーザー基本的に のHadoopのfs -ls /ユーザー/ に存在するためにチェックすることができます彼らのSASプログラムでは、hadoopにユーザのホームフォルダがなければなりません。 Hadoopユーザーは、インストール時にデフォルトで作成されたユーザーを持っていますが、追加のユーザー用に作成する必要があります。
HadoopでLDAPを使用している場合(私が見たものと共通するものではない)、libnameステートメントのユーザーアカウントのパスワードとともにLDAPユーザー名を取得する必要があります。私はあなたが好きならパスワードをエンコードできると信じています。
SASプログラムからHadoopへの接続のテスト 次のSASコードを変更して、SAS Enterprise Guideを使用してHiveServer2へのシリアル接続を使用してsashelpデータセットの1つをHadoopに配置するという基本的なテストを行うことができます。これは基本的なテストにすぎませんが、Hadoopに書き込むことができることを証明する必要があります。その後
libname myhive hadoop server=hiveserver.example.com port=10000 schema=default user=hive;
data myhive.cars;set sashelp.cars;run;
あなたはおそらく/ユーザー/ハイブ/倉庫、あなたはそれを保存した場所でのHadoopのデータを見つけるためにあなたの好みのHadoopのクライアントを使用することができますしたい場合。 hadoop fs -ls/user/hive/warehouse
および/またはSAS Enterprise Guideでprocの内容を実行して、Hadoopに入れたHadoop Hiveテーブルの内容を表示することができます。 PROC CONTENTS DATA = myhive.cars;実行します。
これは、幸運を助けることを願っています!
HadoopのグラフィカルなWebベースのユーザーインターフェイスであるHueを使用して、コマンドラインを使用したソリューションをお探しですか? SASサーバーは、Hadoopが動作している場所と同じか、別のノードでホストされているHadoopに接続していますか? – spijs