Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Leer datos remotos

En MATLAB® puede acceder a datos remotos mediante objetos datastore . Puede crear un almacén de datos para trabajar con los archivos almacenados en ubicaciones remotas, como el almacenamiento en nube mediante Amazon S3™ (servicio de almacenamiento simple), Windows Azure® BLOB Storage y Hadoop® Distributed File System (HDFS™). Utilice el almacén de datos para examinar una parte de su información de la versión de escritorio de MATLAB. Luego, después de prototipadar su código localmente, puede escalar hasta un clúster o nube. La ampliación mejora la eficiencia de ejecución, ya que es más eficiente ejecutar cálculos grandes en la misma ubicación que los datos.

Amazon S3

MATLAB le permite utilizar Amazon S3 como un servicio Web de almacenamiento de archivos en línea ofrecido por Amazon Web Services. Puede utilizar los datos almacenados en Amazon S3 para crear un ImageDatastore, FileDatastoreo TabularTextDatastore. Cuando especifique la ubicación de los datos, debe especificar la ruta de acceso completa a los archivos o carpetas mediante un identificador de recursos internacionalizado (IRI) del formulario

s3://bucketname/path_to_file

bucketname es el nombre del contenedor y path_to_file es la ruta de acceso al archivo o carpetas.

Amazon S3 proporciona almacenamiento de datos a través de interfaces de servicios Web. Puede utilizar un cubo como contenedor para almacenar objetos en Amazon S3. Ver Introducción a Amazon S3 para más información.

Para utilizar un almacén de Amazon S3 , siga estos pasos:

  1. Regístrese para obtener una cuenta root de Amazon Web Services (AWS). Véase Amazon Web Services: cuenta.

  2. Utilizando su cuenta root de AWS, cree un usuario IAM (Identity and Access Management). Véase Creación de un usuario IAM en su cuenta AWS.

  3. Generar una clave de acceso para recibir un identificador de clave de acceso y una clave de acceso secreto. Véase Administración de claves de acceso para usuarios de IAM.

  4. Defina las variables de entorno mediante setenv:

    • AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY : permite autenticar y habilitar el uso de los servicios de Amazon S3 . (generó este par de variables de clave de acceso en el paso 3.)

    • AWS_REGION — Seleccione la región geográfica de su cubo. Esta variable reemplaza la región predeterminada del perfil en uso, si se establece.

Por ejemplo, cree un ImageDatastore, lea una imagen especificada en el almacén de la misma y, a continuación, muestre la imagen en pantalla.

setenv('AWS_ACCESS_KEY_ID', 'YOUR_AWS_ACCESS_KEY_ID');  setenv('AWS_SECRET_ACCESS_KEY', 'YOUR_AWS_SECRET_ACCESS_KEY');  setenv('AWS_REGION', 'us-east-1');  ds = imageDatastore('s3://mw-s3-datastore-tests-us/image_datastore/jpegfiles', ...   'IncludeSubfolders', true, 'LabelSource', 'foldernames');  img = ds.readimage(1); imshow(img) 

Windows Azure BLOB Storage

MATLAB permite utilizar Windows Azure BLOB Storage (WABS) como un servicio Web de almacenamiento de archivos en línea ofrecido por Microsoft. Puede utilizar los datos almacenados en Windows Azure para crear un ImageDatastore, FileDatastoreo TabularTextDatastore. Cuando especifique la ubicación de los datos, debe especificar la ruta de acceso completa a los archivos o carpetas mediante un identificador de recursos internacionalizado (IRI) del formulario

wasbs://container@account/path_to_file/file.ext

container@account es el nombre del contenedor y path_to_file es la ruta de acceso al archivo o carpetas.

Windows Azure proporciona almacenamiento de datos a través de interfaces de servicios Web. Puede utilizar un blob como contenedor para almacenar objetos en Windows Azure. Ver Introducción a Windows Azure para más información.

Para utilizar un almacén de Windows Azure , siga estos pasos:

  1. Regístrese para obtener una cuenta de Microsoft Azure, consulte Cuenta de Microsoft Azure.

  2. Configure sus datos de autenticación estableciendo exactamente una de las dos variables de entorno siguientes mediante setenv:

    • MW_WASB_SAS_TOKEN — Autenticación mediante la firma de acceso compartido (SAS)

      Obtener una SAS. Para obtener más información, consulte la sección "Get The SAS for a BLOB Container" en https://docs.microsoft.com/en-us/azure/vs-azure-tools-storage-explorer-blobs.

      En Matlab, establezca MW_WASB_SAS_TOKEN en la cadena de consulta SAS. Por ejemplo,

      setenv MW_WASB_SAS_TOKEN '?st=2017-04-11T09%3A45%3A00Z&se=2017-05-12T09%3A45%3A00Z&sp=rl&sv=2015-12-11&sr=c&sig=E12eH4cRCLilp3Tw%2BArdYYR8RruMW45WBXhWpMzSRCE%3D'

      Debe establecer esta cadena en un token SAS válido generado a partir de la interfaz de usuario o explorador Web de Azure Storage.

    • MW_WASB_SECRET_KEY — Autenticación mediante una de las dos claves secretas de la cuenta

      Cada cuenta de almacenamiento de información tiene dos claves secretas que permiten el acceso a privilegios administrativos. Este mismo acceso se puede dar a MATLAB sin tener que crear un token SAS estableciendo la variable de entorno MW_WASB_SECRET_KEY . Por ejemplo:

      setenv MW_WASB_SECRET_KEY '1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF'

  3. Crear un almacén de información desde una ubicación de Windows Azure Storage BLOB (WASB)

    Para producir la ubicación del archivo, comience con el nombre de fichero file.ext, y prefijelo con la ruta de acceso /path_to_file y la wasbs://container@account/de su cuenta. La ubicación completa de los datos utiliza la siguiente sintaxis:

    wasbs://container@account/path_to_file/file.ext

    container@account es el nombre del contenedor y path_to_file es la ruta de acceso al archivo o carpetas.

    Por ejemplo, si tiene un archivo airlinesmall.csv en una carpeta /airline en una cuenta de almacenamiento de prueba wasbs://blobContainer@storageAccount.blob.core.windows.net/, puede crear un almacén de información utilizando:

    location = 'wasbs://blobContainer@storageAccount.blob.core.windows.net/airline/airlinesmall.csv';
    ds = tabularTextDatastore(location, 'TreatAsMissing', 'NA', ...   'SelectedVariableNames', {'ArrDelay'});

Puedes usar Azure para todos los cálculos datastore soporta, incluyendo lectura directa, mapreduce, arreglos altos y aprendizaje profundo. Por ejemplo, cree un ImageDatastore, lea una imagen especificada en el almacén de la misma y, a continuación, muestre la imagen en pantalla.

setenv('MW_WASB_SAS_TOKEN', 'YOUR_WASB_SAS_TOKEN');   ds = imageDatastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/', ...   'IncludeSubfolders', true, 'LabelSource', 'foldernames');  img = ds.readimage(1); imshow(img)

Si está utilizando Parallel Computing Toolbox™, debe copiar las variables de entorno de cliente a los trabajadores de un clúster estableciendo EnvironmentVariables en parpool, lote, createJob o en el administrador de perfiles de clúster.

Para obtener más información, consulte https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-use-blob-storage.

HDFS

Especificar la ubicación de los datos

También puede crear un almacén de datos para una colección de archivos de texto o secuencias que residen en el sistema de archivos distribuido Hadoop (HDFS) mediante la función datastore . Cuando especifique la ubicación de los datos, debe especificar la ruta de acceso completa a los archivos o carpetas mediante un identificador de recursos internacionalizado (IRI) de uno de estos formularios:

hdfs:/path_to_file
hdfs:///path_to_file
hdfs://hostname/path_to_file

hostname es el nombre del host o servidor y path_to_file es la ruta de acceso al archivo o carpetas. Especificar el hostname es opcional. Cuando no especifique el hostname, Hadoop utiliza el nombre de host predeterminado asociado con la instalación del sistema de archivos distribuido Hadoop (HDFS) en MATLAB.

Por ejemplo, ambos comandos crean un almacén de datos para el archivo, file1.txt, en una carpeta denominada data ubicada en un host llamado myserver:

  • ds = datastore('hdfs:///data/file1.txt') 
  • ds = datastore('hdfs://myserver/data/file1.txt') 

Si hostname se especifica, debe corresponder a la NameNode definida por la propiedad fs.default.name en los archivos de configuración XML Hadoop para el clúster Hadoop .

Opcionalmente, puede incluir el número de puerto. Por ejemplo, esta ubicación especifica un host denominado myserver con Port 7867, que contiene el archivo file1.txt en una carpeta denominada data:

'hdfs://myserver:7867/data/file1.txt'

El número de puerto especificado debe coincidir con el número de puerto establecido en la configuración HDFS .

Establecer la variable de entorno Hadoop

Antes de leer desde HDFS, utilice la función setenv para establecer la variable de entorno adecuada en la carpeta donde está instalado Hadoop . Esta carpeta debe ser accesible desde el equipo actual.

  • sólo Hadoop v1: permite establecer la variable de entorno HADOOP_HOME .

  • Hadoop v2 only: permite definir la variable de entorno HADOOP_PREFIX .

  • Si trabaja con Hadoop V1 y Hadoop V2, o si no se establecen las variables de entorno HADOOP_HOME y HADOOP_PREFIX , defina la variable de entorno MATLAB_HADOOP_INSTALL .

Por ejemplo, utilice este comando para establecer la variable de entorno HADOOP_HOME . hadoop-folder es la carpeta donde está instalado Hadoop , y /mypath/ es la ruta de acceso a esa carpeta.

setenv('HADOOP_HOME','/mypath/hadoop-folder');

datos HDFS sobre Hortonworks o Cloudera

Si su máquina actual tiene acceso a datos HDFS en Hortonworks o Cloudera®, entonces no tiene que establecer las variables de entorno HADOOP_HOME o HADOOP_PREFIX . MATLAB asigna automáticamente estas variables de entorno al utilizar nodos Edge de aplicación Hortonworks o Cloudera .

Evitar borrar código de la memoria

Cuando se lee desde HDFS o cuando se leen archivos de secuencia localmente, la función datastore llama al comando javaaddpath . Este comando hace lo siguiente:

  • Borra las definiciones de todas las clases Java® definidas por los archivos en la ruta de clases dinámica

  • Quita todas las variables y variables globales del espacio de trabajo base

  • Elimina todas las secuencias de comandos, funciones y funciones de Mex compiladas de la memoria

Para evitar que se despejen las variables persistentes, los archivos de código o los archivos Mex, utilice la función mlock .

Consulte también

| | | | | |