Можно читать и записать данные от удаленного местоположения с помощью функций MATLAB® и объектов, таких как функции файлового ввода-вывода и некоторые объекты datastore. Эти примеры показывают, как настроить, читайте из и запишите в удаленные местоположения на следующих платформах "облачного" хранилища:
Amazon S3™ (простой сервис устройства хранения данных)
Устройство хранения данных Azure® Blob (ранее известный как Windows Azure® Storage Blob (WASB))
Hadoop® Distributed File System (HDFS™)
MATLAB позволяет вам использовать Amazon S3 в качестве онлайнового веб-сервиса хранилища файлов, предлагаемого Amazon Web Services. Когда вы задаете местоположение данных, необходимо задать полный путь к файлам или папкам с помощью универсального локатора ресурса (URL) формы
s3://bucketname/path_to_file
bucketname
имя контейнера и path_to_file
путь к файлу или папкам.
Amazon S3 обеспечивает хранение данных через интерфейсы веб-сервисов. Можно использовать блок в качестве контейнера, чтобы хранить объекты в Amazon S3.
Чтобы работать с удаленными данными в Amazon S3, необходимо настроить доступ сначала:
Зарегистрируйтесь в системе для корневой учетной записи Amazon Web Services (AWS). См. Amazon Web Services: Учетная запись.
Используя вашу корневую учетную запись AWS, создайте меня AM (Идентичность и управление доступом) пользователь. Смотрите Создание меня Пользователь AM в Вашей Учетной записи AWS.
Сгенерируйте ключ доступа, чтобы получить ID ключа доступа и секретный ключ доступа. Смотрите Ключи доступа Управления поскольку я Пользователи AM.
Сконфигурируйте свою машину с ID ключа доступа AWS, секретным ключом доступа и областью с помощью инструмента AWS Command Line Interface под эгидой https://aws.amazon.com/cli/. В качестве альтернативы установите переменные окружения непосредственно при помощи setenv
:
AWS_ACCESS_KEY_ID
и AWS_SECRET_ACCESS_KEY
— Аутентифицируйте и включите использование сервисов Amazon S3. (Вы сгенерировали эту пару переменных ключа доступа на шаге 3.)
AWS_DEFAULT_REGION
(дополнительный) — Выбор географическая область вашего блока. Значение этой переменной окружения обычно определяется автоматически, но владелец блока может потребовать, чтобы вы установили его вручную.
AWS_SESSION_TOKEN
(дополнительный) — Задают лексему сеанса, если вы используете временные учетные данные безопасности, такой как с AWS® Federated Authentication.
Если вы используете Parallel Computing Toolbox™, необходимо гарантировать, что кластер был сконфигурирован для доступа сервисы S3. Можно скопировать переменные клиентской среды в рабочих в кластере установкой EnvironmentVariables
в parpool
, batch
, createJob
, или в кластерном менеджере по профилю.
Следующий пример показывает, как использовать ImageDatastore
возразите, чтобы считать заданное изображение из Amazon S3, и затем отобразить изображение, чтобы экранировать.
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)
Следующий пример показывает, как использовать tabularTextDatastore
возразите, чтобы считать табличные данные из Amazon S3 в длинный массив, предварительно обработать его путем удаления недостающих записей и сортировки, и затем записать его обратно к Amazon 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);
Чтобы считать ваши высокие данные назад, используйте datastore
функция.
ds = datastore('s3://bucketname/preprocessedData/'); tt = tall(ds);
MATLAB позволяет вам использовать Устройство хранения данных Блоба Azure для онлайнового хранилища файлов. Когда вы задаете местоположение данных, необходимо задать полный путь к файлам или папкам с помощью универсального локатора ресурса (URL) формы
wasbs://container@account/path_to_file/file.ext
container@account
имя контейнера и path_to_file
путь к файлу или папкам.
Azure обеспечивает хранение данных через интерфейсы веб-сервисов. Можно использовать блоб, чтобы сохранить файлы данных в Azure. Смотрите Введение в Azure для получения дополнительной информации.
Чтобы работать с удаленными данными в устройстве хранения данных Azure, необходимо настроить доступ сначала:
Зарегистрируйте аккаунт Microsoft Azure, смотрите Microsoft Azure Account.
Настройте свои детали аутентификации путем установки точно одного из двух после переменных окружения с помощью setenv
:
MW_WASB_SAS_TOKEN
— Аутентификация с помощью подписанного URL-адреса (SAS)
Получите SAS. Для получения дополнительной информации смотрите, что раздел "Get the SAS for a blob container" в Управляет Ресурсами хранения Блоба Azure с Проводником Устройства хранения данных.
В MATLAB, набор MW_WASB_SAS_TOKEN
к строке запроса SAS. Например,
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'
Необходимо установить эту строку на допустимую лексему SAS, сгенерированную от сети Устройства хранения данных Azure пользовательский интерфейс или Проводник.
MW_WASB_SECRET_KEY
— Аутентификация через один из двух секретных ключей Учетной записи
Каждая Учетная запись Устройства хранения данных имеет два секретных ключа тот доступ к административной привилегии разрешения. Этому тому же доступу можно предоставить в MATLAB, не имея необходимость создавать лексему SAS путем установки MW_WASB_SECRET_KEY
переменная окружения. Например:
setenv MW_WASB_SECRET_KEY '1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF'
Если вы используете Parallel Computing Toolbox, необходимо скопировать переменные клиентской среды в рабочих в кластере установкой EnvironmentVariables
в parpool
, batch
, createJob
, или в кластерном менеджере по профилю.
Для получения дополнительной информации смотрите устройство хранения данных Azure Использования с кластерами Azure HDInsight.
Чтобы считать данные из Места хранения Блоба Azure, задайте местоположение с помощью следующего синтаксиса:
wasbs://container@account/path_to_file/file.ext
container@account
имя контейнера и path_to_file
путь к файлу или папкам.
Например, если у вас есть файл airlinesmall.csv
в папке /airline
на тесте устройство хранения данных считают wasbs://blobContainer@storageAccount.blob.core.windows.net/
, затем можно создать datastore при помощи:
location = 'wasbs://blobContainer@storageAccount.blob.core.windows.net/airline/airlinesmall.csv';
ds = tabularTextDatastore(location, 'TreatAsMissing', 'NA', ... 'SelectedVariableNames', {'ArrDelay'});
Можно использовать Azure для всей поддержки хранилищ данных вычислений, включая непосредственное считывание, mapreduce
, длинные массивы и глубокое обучение. Например, создайте ImageDatastore
объект, считайте заданное изображение из datastore, и затем отобразите изображение, чтобы экранировать.
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)
В этом примере показано, как считать табличные данные из Azure в длинный массив с помощью tabularTextDatastore
возразите, предварительно обработайте его путем удаления недостающих записей и сортировки, и затем запишите его обратно к Azure.
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);
Чтобы считать ваши высокие данные назад, используйте datastore
функция.
ds = datastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/preprocessedData/'); tt = tall(ds);
MATLAB позволяет вам использовать Распределенную файловую систему Hadoop (HDFS) в качестве онлайнового веб-сервиса хранилища файлов. Когда вы задаете местоположение данных, необходимо задать полный путь к файлам или папкам с помощью универсального локатора ресурса (URL) одной из следующих форм:
hdfs:/path_to_file
hdfs:///path_to_file
hdfs://hostname/path_to_file
hostname
имя хоста или сервера и path_to_file
путь к файлу или папкам. Определение hostname
является дополнительным. Когда вы не задаете hostname
, Хэдуп использует имя хоста по умолчанию, сопоставленное с установкой Распределенной файловой системы Hadoop (HDFS) в MATLAB.
Например, можно использовать любую из этих команд, чтобы создать datastore для файла, file1.txt
, в папке под названием data
расположенный в хосте под названием myserver
:
ds = tabularTextDatastore('hdfs:///data/file1.txt')
ds = tabularTextDatastore('hdfs://myserver/data/file1.txt')
Если hostname
задан, это должно соответствовать namenode, заданному fs.default.name
свойство в конфигурационных XML-файлах Hadoop для вашего кластера Hadoop.
Опционально, можно включать номер порта. Например, это местоположение задает хост под названием myserver
с портом 7867
, содержа файл file1.txt
в папке под названием data
:
'hdfs://myserver:7867/data/file1.txt'
Заданный номер порта должен совпадать с набором номера порта в вашей настройке HDFS.
Прежде, чем читать из HDFS, используйте setenv
функционируйте, чтобы установить соответствующую переменную окружения на папку, где Hadoop установлен. Эта папка должна быть доступной от текущей машины.
Hadoop v1 только — Набор HADOOP_HOME
переменная окружения.
Hadoop v2 только — Набор HADOOP_PREFIX
переменная окружения.
Если вы работаете и с Hadoop v1 и с Hadoop v2, или если HADOOP_HOME
и HADOOP_PREFIX
переменные окружения не установлены, затем устанавливают MATLAB_HADOOP_INSTALL
переменная окружения.
Например, используйте эту команду, чтобы установить HADOOP_HOME
переменная окружения. hadoop-folder
папка, где Hadoop установлен, и /mypath/
путь к той папке.
setenv('HADOOP_HOME','/mypath/hadoop-folder');
Если ваша текущая машина имеет доступ к данным HDFS по Hortonworks или Cloudera®, то вы не должны устанавливать HADOOP_HOME
или HADOOP_PREFIX
переменные окружения. MATLAB автоматически присваивает эти переменные окружения при использовании узлов ребра приложения Hortonworks или Cloudera.
При чтении из HDFS или при чтении файлов Последовательности локально, datastore
вызовы функции javaaddpath
команда. Эта команда делает следующее:
Очищает определения всех классов Java®, заданных файлами на динамическом пути к классу
Удаляет все глобальные переменные и переменные из базового рабочего пространства
Удаляет все скомпилированные скрипты, функции и MEX-функции из памяти
Чтобы предотвратить персистентные переменные, файлы кода или файлы MEX от того, чтобы быть очищенным, используют mlock
функция.
В этом примере показано, как использовать tabularTextDatastore
объект записать данные к местоположению HDFS. Используйте write
функционируйте, чтобы записать ваши высокие и распределенные массивы в Распределенную файловую систему Hadoop. Когда вы вызываете эту функцию на распределенном или длинном массиве, необходимо задать полный путь к папке HDFS. Следующий пример показывает, как считать табличные данные из HDFS в длинный массив, предварительно обработать его путем удаления недостающих записей и сортировки, и затем записать его обратно к HDFS.
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);
Чтобы считать ваши высокие данные назад, используйте datastore
функция.
ds = datastore('hdfs://myserver/some/path/preprocessedData/'); tt = tall(ds);
datastore
| imageDatastore
| imread
| imshow
| javaaddpath
| mlock
| setenv
| tabularTextDatastore
| write