【问题标题】:Sqoop export from hive to sql is stuckSqoop 从 hive 导出到 sql 卡住了
【发布时间】:2015-07-31 20:59:05
【问题描述】:

我正在使用 Windows Azure HDInsights Hadoop 集群,并尝试将配置单元表从那里导出到 SQL Azure 服务器。

hive 表非常简单(实际上,现在它由一列数据组成,没有任何空格字符和其他特殊符号)。在服务器端,它也是一个具有以下架构的表:

CREATE TABLE exp (line [nvarchar] (100))

对于导出,我使用以下 PS 脚本:

$tableName = 'exp'

$connectionString = "jdbc:sqlserver://$sqlDatabaseServerName.database.windows.net;user=$sqlDatabaseLogin@$sqlDatabaseServerName;password=$sqlDatabasePassword;database=$databaseName"

$exportDir = "wasb://test1@mystorage.blob.core.windows.net/"

$sqoopDef = New-AzureHDInsightSqoopJobDefinition -Command "export --connect $connectionString --table $tableName --export-dir $exportDir --fields-terminated-by '\t' --lines-terminated-by '\n'"

$sqoopJob = Start-AzureHDInsightJob -Cluster $clusterName -JobDefinition $sqoopDef -Debug -Verbose
Wait-AzureHDInsightJob -WaitTimeoutInSeconds 3600 -Job $sqoopJob

Write-Host "Standard Error" -BackgroundColor Green
Get-AzureHDInsightJobOutput -Cluster $clusterName -JobId $sqoopJob.JobId -StandardError
Write-Host "Standard Output" -BackgroundColor Green
Get-AzureHDInsightJobOutput -Cluster $clusterName ;-JobId $sqoopJob.JobId -StandardOutput

由于某些原因,导出在 100% 地图后卡住并在超时后完成,没有任何错误和异常。

现在我知道该作业在 Hadoop 中查看数据(如果我指定其他路径,它会引发异常)。如果 hive 数据架构和 sql 表架构不匹配,我也有异常。从 SQL 方面,我看到了成功连接的证据。

是的,我已将 SQL 服务器防火墙配置为允许连接,并且也允许 Windows Azure 服务。

有人对下一步做什么有建议吗?将不胜感激任何帮助。

【问题讨论】:

    标签: sql-server azure hadoop azure-hdinsight


    【解决方案1】:

    到目前为止,通过为 SQL 表创建聚集索引解决了一个问题:

    create clustered index exp_clustered_index on exp(line);
    

    似乎 Azure SQL 禁止在没有它的情况下上传数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多