2017-03-24 14 views
1

AzureのSQLDWでPolybaseを使用してCloudera Cluster(AzureのIaaSとしてプロビジョニングされた)のHDFSで区切られたファイルにアクセスしようとしています。私がBCP、JDBCを使用することができたとして(Azure SQLデータウェアハウスでPolybaseを使用してHadoop(Azure IaaS)HDFSファイルにアクセスする

CREATE MASTER KEY;

CREATE DATABASE SCOPED CREDENTIAL HadoopUser1 WITH IDENTITY = 'user_name', Secret = 'password';

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のクラスタとAzureのSQLDW間の接続性の問題がありません。次のエラー:

Msg 105019, Level 16, State 1, Line 40 EXTERNAL TABLE access failed due to internal error: 'Java exception raised on call to HdfsBridge_IsDirExist. Java exception message: Call From DB55/10.0.0.59 to 10...:8020 failed on socket timeout exception: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=10.56.140.31/10.56.140.31:8020]; For more details see: http://wiki.apache.org/hadoop/SocketTimeout : Error [Call From DB55/10.0.0.59 to 10.56.140.31:8020 failed on socket timeout exception: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=10.../10...*:8020]; For more details see: http://wiki.apache.org/hadoop/SocketTimeout] occurred while accessing external file.'

は、私は以下のポリ塩基T-SQLスクリプトを使用しましたCloudera ClusterからSQLDWインスタンスにデータを取り込む) Clouderaクラスタはまだカーボライズされていません。データベーススコープの資格情報で指定されたuser_nameとパスワードは、Cloudera Clusterの基礎となるLinuxファイルシステムに存在します。 この件に関するお手伝いをいただければ幸いです。

答えて

3

AzureのPolyBase SQL DWは現在、BLOBストレージとAzure Data Lake Storeのみをサポートしています。現在HDFSへの接続はサポートされていません。

ドキュメントは、任意のHDFS例hereにAzureのSQL DWを言及していない注:

-- PolyBase only: Hadoop cluster as data source
-- (on SQL Server 2016) CREATE EXTERNAL DATA SOURCE data_source_name
WITH (
TYPE = HADOOP, LOCATION = 'hdfs://NameNode_URI[:port]'
[, RESOURCE_MANAGER_LOCATION = 'ResourceManager_URI[:port]' ]
[, CREDENTIAL = credential_name ] ) [;]

関連する問題