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.

Trabajar con datos remotos

En, puede leer y escribir datos desde y hacia una ubicación remota, como almacenamiento en la nube (servicio de almacenamiento simple), BLOB de almacenamiento y sistema de archivos distribuido ().MATLAB®Amazon S3™Microsoft®Azure®Hadoop®HDFS™

Puede acceder a los datos remotos mediante objetos.datastore Utilice el almacén de datos para examinar una parte de la información de su versión de escritorio.MATLAB Después, después de crear prototipos de su código localmente, puede escalar verticalmente a un clúster o a una nube. El escalado ascendente mejora la eficacia de la ejecución, ya que es más eficaz ejecutar cálculos grandes en la misma ubicación que los datos. Para escribir datos en una ubicación remota, puede utilizar la función en una matriz alta o distribuida.write

Amazon S3

le permite utilizar como un servicio Web de almacenamiento de archivos en línea ofrecido por Amazon Web Services.MATLABAmazon S3 Puede utilizar los datos almacenados en la función, o un objeto específico, como un,,, o.Amazon S3datastoredatastoreImageDatastoreFileDatastoreSpreadsheetDatastoreTabularTextDatastore Al especificar la ubicación de los datos, debe especificar la ruta de acceso completa a los archivos o carpetas mediante un identificador de recursos internacionalizados (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 a las carpetas.

Amazon S3 proporciona almacenamiento de datos a través de interfaces de servicios Web. Puede utilizar a como un contenedor para almacenar objetos en.bucketAmazon S3

Configurar el acceso

Para trabajar con datos remotos, primero debe configurar el acceso:Amazon S3

  1. Regístrese para obtener una cuenta raíz de Amazon Web Services (AWS). Ver.Amazon Web Services: cuenta

  2. Con la cuenta raíz de AWS, cree un usuario de IAM (administración de identidades y acceso). Ver.Creación de un usuario de IAM en su cuenta de AWS

  3. Genere una clave de acceso para recibir un ID de clave de acceso y una clave de acceso secreta. Ver.Administración de claves de acceso para usuarios de IAM

  4. Configure el equipo con el ID de clave de acceso de AWS, la clave de acceso secreta y la región mediante la herramienta de interfaz de línea de comandos de AWS.https://aws.amazon.com/cli/ Alternativamente, establezca las variables de entorno directamente mediante:setenv

    • y: autentique y habilite el uso de servicios.AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAmazon S3 (Ha generado este par de variables de clave de acceso en el paso 3.)

    • (opcional): seleccione la región geográfica de su bucket.AWS_REGION El valor de esta variable de entorno normalmente se determina automáticamente, pero el propietario del bucket puede requerir que se establezca manualmente.

Si está utilizando, debe asegurarse de que el clúster se ha configurado para acceder a los servicios de S3.Parallel Computing Toolbox™ Puede copiar las variables de entorno de cliente en los trabajadores de un clúster estableciendo o en el administrador de perfiles de clúster.EnvironmentVariablesparpoolLotecreateJob

Leer datos deAmazon S3

Puede leer datos desde el uso de objetos.Amazon S3datastore Por ejemplo, cree un, lea una imagen especificada del almacén de datos y, a continuación, muestre la imagen a la pantalla.ImageDatastore

setenv('AWS_ACCESS_KEY_ID', 'YOUR_AWS_ACCESS_KEY_ID');  setenv('AWS_SECRET_ACCESS_KEY', 'YOUR_AWS_SECRET_ACCESS_KEY');  ds = imageDatastore('s3://bucketname/image_datastore/jpegfiles', ...   'IncludeSubfolders', true, 'LabelSource', 'foldernames');  img = ds.readimage(1); imshow(img) 

Escribir datos paraAmazon S3

Para escribir datos, llame a la función en una matriz distribuida o alta y proporcione la ruta de acceso completa a una carpeta en el almacenamiento en la nube.Amazon S3write En el ejemplo siguiente se muestra cómo leer datos tabulares de una matriz alta, preprocesarlo quitando las entradas y la ordenación que faltan y, a continuación, volver a escribirla.Amazon S3Amazon S3

setenv('AWS_ACCESS_KEY_ID', 'YOUR_AWS_ACCESS_KEY_ID'); setenv('AWS_SECRET_ACCESS_KEY', 'YOUR_AWS_SECRET_ACCESS_KEY');  ds = tabularTextDatastore('s3://bucketname/dataset/airlinesmall.csv', ...   'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'}); tt = tall(ds); tt = sortrows(rmmissing(tt)); write('s3://bucketname/preprocessedData/',tt); 

Para leer los datos altos, utilice la función.datastore

ds = datastore('s3://bucketname/preprocessedData/'); tt = tall(ds); 

Storage BLOBMicrosoftAzure

le permite usar Storage BLOB (WASB) como un servicio Web de almacenamiento de archivos en línea ofrecido por Microsoft.MATLABWindows Azure® Puede utilizar los datos almacenados en la función, o un objeto específico, como un,,, o.AzuredatastoredatastoreImageDatastoreFileDatastoreSpreadsheetDatastoreTabularTextDatastore Al especificar la ubicación de los datos, debe especificar la ruta de acceso completa a los archivos o carpetas mediante un identificador de recursos internacionalizados (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 a las carpetas.

Azure proporciona almacenamiento de datos a través de interfaces de servicios Web. Puede usar a para almacenar archivos de datos en.blobAzure Ver Introducción aAzure para obtener más información.

Configurar el acceso

Para trabajar con datos remotos en el almacenamiento, primero debe configurar el acceso:Azure

  1. Regístrate para obtener una cuenta de Microsoft, consulta.AzureCuenta de Microsoft Azure

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

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

      Obtenga una SAS. Para obtener más información, consulte la sección "obtener la SAS para un contenedor de blobs" en.Administrar recursos de Azure BLOB Storage con el explorador de Storage

      En MATLAB, establezca la cadena de consulta de SAS.MW_WASB_SAS_TOKEN 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 de SAS válido generado desde la interfaz de usuario Web de Azure Storage o el explorador.

    • — Autenticación a través de una de las dos claves secretas de la cuentaMW_WASB_SECRET_KEY

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

      setenv MW_WASB_SECRET_KEY '1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF'

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

Para obtener más información, consulte.Use Azure Storage con clústeres de Azure HDInsight

Leer datos deAzure

Para leer datos de una ubicación WASB, utilice un objeto.datastore Para generar la ubicación del archivo, empiece con el nombre de fichero y anteponga la ruta del archivo y el de su cuenta.file.ext/path_to_filewasbs://container@account/ La ubicación de datos completa 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 a las carpetas.

Por ejemplo, si tiene un archivo en una carpeta de una cuenta de almacenamiento de prueba, puede crear un almacén de datos mediante:airlinesmall.csv/airlinewasbs://blobContainer@storageAccount.blob.core.windows.net/

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

Puede usar para todos los soportes de cálculos, incluida la lectura directa, los arrays altos y el aprendizaje profundo.Azuredatastoremapreduce Por ejemplo, cree un, lea una imagen especificada del almacén de datos y, a continuación, muestre la imagen a la pantalla.ImageDatastore

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)

Escribir datos paraAzure

Para escribir datos, llame a la función en una matriz distribuida o alta y proporcione la ruta de acceso completa a una carpeta en el almacenamiento en la nube.Azurewrite En el ejemplo siguiente se muestra cómo leer datos tabulares de una matriz alta, preprocesarlo quitando las entradas y la ordenación que faltan y, a continuación, volver a escribirla.AzureAzure

setenv('MW_WASB_SAS_TOKEN', 'YOUR_WASB_SAS_TOKEN');    ds = tabularTextDatastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/dataset/airlinesmall.csv', ...   'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'}); tt = tall(ds); tt = sortrows(rmmissing(tt)); write('wasbs://YourContainer@YourAccount.blob.core.windows.net/preprocessedData/',tt);

Para leer los datos altos, utilice la función.datastore

ds = datastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/preprocessedData/'); tt = tall(ds); 

Sistema de archivos distribuidoHadoop

Especifique la ubicación de los datos

También puede crear un almacén de datos para una colección de archivos de texto o archivos de secuencia que residen en el sistema de archivo distribuido () mediante la función.HadoopHDFSdatastore Al especificar la ubicación de los datos, debe especificar la ruta de acceso completa a los archivos o carpetas mediante un identificador de recursos internacionalizados (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 a las carpetas. Especificando el hostname es opcional. Cuando no se especifica el hostname, utiliza el nombre de host predeterminado asociado a la instalación del sistema de archivos distribuido ().HadoopHadoopHDFSMATLAB

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

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

Si hostname se especifica, debe corresponder al NameNode definido por la propiedad en los archivos de configuración XML para el clúster.fs.default.nameHadoopHadoop

Opcionalmente, puede incluir el número de puerto. Por ejemplo, esta ubicación especifica un host denominado con el puerto, que contiene el archivo en una carpeta denominada:myserver7867file1.txtdata

'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 variable de entornoHadoop

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

  • solo v1: establezca la variable de entorno.HadoopHADOOP_HOME

  • V2 solamente — Fije la variable de entorno.HadoopHADOOP_PREFIX

  • Si trabaja con V1 y V2, o si no se establecen las variables de entorno y, a continuación, establezca la variable de entorno.HadoopHadoopHADOOP_HOMEHADOOP_PREFIXMATLAB_HADOOP_INSTALL

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

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

datos sobre Hortonworks oHDFSCloudera

Si su máquina actual tiene acceso a los datos en Hortonworks o, entonces no tiene que establecer las variables de entorno o. asigna automáticamente estas variables de entorno cuando se utilizan Hortonworks o nodos perimetrales de aplicación.HDFSCloudera®HADOOP_HOMEHADOOP_PREFIXMATLABCloudera

Evitar borrar código de la memoria

Al leer desde o al leer archivos de secuencia localmente, la función llama al comando.HDFSdatastorejavaaddpath Este comando hace lo siguiente:

  • Borra las definiciones de todas las clases definidas por los archivos en la ruta de acceso de clase dinámicaJava®

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

  • Elimina todos los scripts compilados, funciones y funciones MEX de la memoria

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

Escribir datos paraHDFS

Utilice la función para escribir sus matrices altas y distribuidas en un sistema de archivos distribuido.writeHadoop Cuando se llama a esta función en una matriz distribuida o alta, debe especificar la ruta de acceso completa a una carpeta.HDFS En el ejemplo siguiente se muestra cómo leer datos tabulares de una matriz alta, preprocesarlo quitando las entradas y la ordenación que faltan y, a continuación, volver a escribirla.HDFSHDFS

ds = tabularTextDatastore('hdfs://myserver/some/path/dataset/airlinesmall.csv', ...   'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'}); tt = tall(ds); tt = sortrows(rmmissing(tt)); write('hdfs://myserver/some/path/preprocessedData/',tt); 

Para leer los datos altos, utilice la función.datastore

ds = datastore('hdfs://myserver/some/path/preprocessedData/'); tt = tall(ds); 

Consulte también

| | | | | | |

Temas relacionados