1

Azure SQLDW で Polybase を使用して Cloudera Cluster (Azure で IaaS としてプロビジョニング) の HDFS の区切りファイルにアクセスしようとしていますが、次のエラーが発生しています。

メッセージ 105019、レベル 16、状態 1、行 40 EXTERNAL TABLE アクセスは、内部エラーが原因で失敗しました: 'HdfsBridge_IsDirExist の呼び出しで Java 例外が発生しました。Java 例外メッセージ: Call From DB55/10.0.0.59 to 10. . . :8020 がソケット タイムアウト例外で失敗しました: org.apache.hadoop.net.ConnectTimeoutException: チャネルの接続準備が整うのを待っている間に 20000 ミリ秒のタイムアウトが発生しました。ch : java.nio.channels.SocketChannel[connection-pending remote=10.56.140.31/10.56.140.31:8020]; 詳細については、 http ://wiki.apache.org/hadoop/SocketTimeout を参照してください。: エラー [DB55/10.0.0.59 から 10.56.140.31:8020 への呼び出しがソケット タイムアウト例外で失敗しました: org.apache.hadoop.net.ConnectTimeoutException: チャネルの接続準備が整うのを待っている間に 20000 ミリ秒のタイムアウトが発生しました。ch : java.nio.channels.SocketChannel[connection-pending remote=10. . . /10. . .*:8020]; 詳細については、次を参照してください: http://wiki.apache.org/hadoop/SocketTimeout]外部ファイルへのアクセス中に発生しました。

次の Polybase T-SQL スクリプトを使用しました。

マスターキーを作成します。

IDENTITY = 'user_name', Secret = 'password'; を使用して、データベース スコープの資格情報 HadoopUser1 を作成します。

CREATE EXTERNAL DATA SOURCE MyHadoopCluster WITH (
TYPE = HADOOP,
LOCATION ='hdfs://10. . : 8020',
RESOURCE_MANAGER_LOCATION = '10.
. : 8032',
CREDENTIAL = HadoopUser1 );

CREATE EXTERNAL FILE FORMAT TextFile WITH ( FORMAT_TYPE = DelimitedText, FORMAT_OPTIONS (FIELD_TERMINATOR = ',') );

CREATE EXTERNAL TABLE dbo.PolyCloudera ( Id INT NOT NULL, Number INT NOT NULL, ZIPCODE INT NOT NULL ) WITH ( LOCATION='/user/hive/warehouse/sample_poly', DATA_SOURCE=MyHadoopCluster, FILE_FORMAT=TextFile );

Cloudera Cluster と Azure SQLDW の間に接続の問題はありません (BCP、JDBC を使用して Cloudera Cluster から SQLDW インスタンスにデータを取り込むことができたため) Cloudera Cluster はまだ kerberized されていません。データベース スコープの資格情報で指定された user_name と password は、Cloudera Cluster の基盤となる Linux ファイル システムに存在します。この問題について何か助けていただければ幸いです。

4

1 に答える 1