【问题标题】:Connecting From PolyBase To Hadoop从 PolyBase 连接到 Hadoop
【发布时间】:2016-05-27 06:08:34
【问题描述】:

如果我们在下面的代码中遇到如下异常,是什么意思? 我没有发现任何有用的定义。

例外是

无法检索外部数据源信息,原因是 “JNI.JavaExceptionCheckException”类型的内部错误异常是 抛出。:错误 [从 MIS-PC12/192.168.4.132 调用到 192.168.4.116:8020 连接异常失败:java.net.ConnectException:连接 拒绝:没有进一步的信息;有关更多详细信息,请参阅: http://wiki.apache.org/hadoop/ConnectionRefused] 发生在 访问外部文件。

代码是

CREATE EXTERNAL DATA SOURCE MyHadoopCluster2 WITH (
    TYPE = HADOOP,
    LOCATION ='hdfs://192.168.4.116:8020',
    RESOURCE_MANAGER_LOCATION = '192.168.4.116:8020'
);
GO
CREATE EXTERNAL FILE FORMAT TextFileFormat2 WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (FIELD_TERMINATOR ='|'));

CREATE EXTERNAL TABLE [dbo].[CarSensor_Data] (
    [SensorKey] int NOT NULL,
    [CustomerKey] int NOT NULL,
    [GeographyKey] int NULL,
    [Speed] float NOT NULL,
    [YearMeasured] int NOT NULL
)
WITH (LOCATION='/D:\/',
DATA_SOURCE = MyHadoopCluster2,
FILE_FORMAT = TextFileFormat2

);

不知道hadoop数据库的位置,是这个原因吗?

【问题讨论】:

    标签: sql hadoop sql-server-2016


    【解决方案1】:

    LOCATION 参数需要指向您的 Hadoop 集群的 name-node

    【讨论】:

    • 我找到了不需要将 RESOURCE_MANAGER_LOCATION 添加到应指向名称节点 ip 的外部数据源的解决方案,并且在创建外部表中,位置应该是 hdfs 文件,更重要的是为了要连接到集群,您必须将文件 coresite.xml 、hdfs-site.xml、mapred-site.xml 和 yarn-site.xml 从您的名称节点 conf 文件复制到 sql server 2016 实例 C:\SqlServer2016\ 的路径MSSQL13.SQLSERVER2016\MSSQL\Binn\Polybase\Hadoop\conf 这就是我的解决方案
    【解决方案2】:

    您将在以下位置找到该位置: \etc\hadoop\core-site.xml

    在我的例子中是:hdfs://localhost:9000

    我在yarn站点下的配置中找到了我的资源管理器位置 --> 工具(http://localhost:8088/conf):

    <property>
    
    <name>yarn.resourcemanager.address</name>
    
    <value>localhost:8032</value>
    
    <source>programatically</source>
    
    </property>
    

    资源管理器是一个可选属性。首先尝试创建没有它的数据源。

    亲切的问候, 保罗

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 2020-07-28
      • 2011-03-30
      • 2020-07-20
      • 2019-12-17
      • 2020-03-31
      相关资源
      最近更新 更多