Skip to content

LocationHDFS ​

The LocationHDFS resource lets you configure and manage AWS DataSync LocationHDFS to facilitate data transfer between on-premises Hadoop Distributed File System (HDFS) and AWS storage services.

Minimal Example ​

Create a basic HDFS location with the essential properties.

ts
import AWS from "alchemy/aws/control";

const hdfsLocation = await AWS.DataSync.LocationHDFS("myHDFSLocation", {
  NameNodes: [
    {
      Hostname: "namenode.example.com",
      Port: 8020
    }
  ],
  AuthenticationType: "KERBEROS",
  AgentArns: ["arn:aws:datasync:us-east-1:123456789012:agent/agent-id-123"],
  SimpleUser: "hdfs-user",
  KmsKeyProviderUri: "kms-uri"
});

Advanced Configuration ​

Configure a location with advanced options such as Kerberos authentication and replication factor.

ts
const advancedHdfsLocation = await AWS.DataSync.LocationHDFS("advancedHDFSLocation", {
  NameNodes: [
    {
      Hostname: "namenode.example.com",
      Port: 8020
    }
  ],
  AuthenticationType: "KERBEROS",
  AgentArns: ["arn:aws:datasync:us-east-1:123456789012:agent/agent-id-123"],
  SimpleUser: "hdfs-user",
  KerberosPrincipal: "hdfs/principal@EXAMPLE.COM",
  KerberosKeytab: "/etc/security/keytabs/hdfs.keytab",
  ReplicationFactor: 3,
  Subdirectory: "/data",
  BlockSize: 1048576,
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    }
  ]
});

Using Kerberos Configuration ​

Set up a location with a custom Kerberos configuration file.

ts
const kerberosHdfsLocation = await AWS.DataSync.LocationHDFS("kerberosHDFSLocation", {
  NameNodes: [
    {
      Hostname: "namenode.example.com",
      Port: 8020
    }
  ],
  AuthenticationType: "KERBEROS",
  AgentArns: ["arn:aws:datasync:us-east-1:123456789012:agent/agent-id-123"],
  SimpleUser: "hdfs-user",
  KerberosKrb5Conf: "/etc/krb5.conf",
  KerberosPrincipal: "hdfs/principal@EXAMPLE.COM",
  KerberosKeytab: "/etc/security/keytabs/hdfs.keytab"
});

Specifying Qop Configuration ​

Create a location with specific Quality of Protection (Qop) settings.

ts
const qopHdfsLocation = await AWS.DataSync.LocationHDFS("qopHDFSLocation", {
  NameNodes: [
    {
      Hostname: "namenode.example.com",
      Port: 8020
    }
  ],
  AuthenticationType: "KERBEROS",
  AgentArns: ["arn:aws:datasync:us-east-1:123456789012:agent/agent-id-123"],
  SimpleUser: "hdfs-user",
  QopConfiguration: {
    Qop: "AUTHENTICATION",
    QopType: "PROTECTION"
  }
});