读远程数据
在MATLAB®您可以访问远程数据使用数据存储
对象。您可以创建一个数据存储与数据存储在远程位置,比如云存储使用Amazon S3™(简单存储服务),Windows Azure®Blob存储和Hadoop®分布式文件系统(HDFS™)。使用数据存储来检查你的数据从您的桌面版本的MATLAB。在本地原型代码之后,您可以扩展到集群或云。扩大提高执行效率,因为它是更高效的运行大型的计算在同一位置的数据。
Amazon S3
MATLAB使您能够使用Amazon S3作为一个在线文件存储Amazon web服务提供的web服务。您可以使用数据存储在Amazon S3创建一个ImageDatastore
,FileDatastore
,或TabularTextDatastore
。指定数据的位置时,您必须指定完整路径文件或文件夹使用一个国际化资源标识符(IRI)的形式
s3: / /bucketname/path_to_file
bucketname
容器的名称和吗path_to_file
文件或文件夹的路径。
Amazon S3通过web服务接口提供数据存储。您可以使用一个桶作为一个容器来存储在Amazon S3对象。看到介绍Amazon S3为更多的信息。
使用Amazon S3数据存储,请执行以下步骤:
注册一个Amazon Web Services (AWS)根帐户。看到亚马逊网络服务:帐户。
使用AWS根帐户,创建一个我身份和访问管理用户。看到用户在AWS帐户创建一个我。
生成一个访问密钥接收一个访问密钥ID访问密钥和秘密。看到为我用户管理访问键。
设置环境变量使用
setenv
:AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
——并使使用Amazon S3服务进行身份验证。(你生成这副关键变量的访问在步骤3)。AWS_REGION
——选择你的桶的地理区域。这个变量覆盖默认的地区造成的形象,如果设置。
例如,创建一个ImageDatastore
从数据存储、读取指定的图像,然后显示图像的屏幕。
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”,的确,“LabelSource”、“foldernames”);img = ds.readimage (1);imshow (img)
Windows AzureBlob存储
MATLAB允许您使用Windows Azure Blob存储(WABS)作为一个在线文件存储微软提供的web服务。您可以使用存储的数据创建一个Windows AzureImageDatastore
,FileDatastore
,或TabularTextDatastore
。指定数据的位置时,您必须指定完整路径文件或文件夹使用一个国际化资源标识符(IRI)的形式
wasbs: / /container@account/path_to_file/file.ext
container@account
容器的名称和吗path_to_file
文件或文件夹的路径。
Windows Azure通过web服务接口提供数据存储。您可以使用一个团作为一个容器在Windows Azure存储对象。看到介绍Windows Azure为更多的信息。
使用Windows Azure存储,遵循这些步骤:
注册一个微软Azure账户,明白了微软Azure帐户。
设置您的认证细节通过设置以下两个环境变量的一个使用
setenv
:MW_WASB_SAS_TOKEN
——通过共享访问身份验证签名(SAS)获得一个SAS。详情,请参阅“得到一个blob的SAS容器”一节https://docs.microsoft.com/en-us/azure/vs-azure-tools-storage-explorer-blobs。
在MATLAB中,设置
MW_WASB_SAS_TOKEN
SAS查询字符串。例如,setenv MW_WASB_SAS_TOKEN’吗?圣= 2017 - 04 - 11 - t09 % 3 a45 % 3 a00z&se = 2017 - 05 - 12 - t09 % 3 a45 % 3 a00z&sp = rl&sv = 2015 - 12 - 11 - sr = c&sig = E12eH4cRCLilp3Tw % 2 bardyyr8rrumw45wbxhwpmzsrce % 3 d '
你必须将这个字符串设置为一个有效的SAS令牌产生的Azure存储web UI或探险家。
MW_WASB_SECRET_KEY
——验证通过的一个帐户的两个密钥每个存储账户有两个密钥,允许行政特权访问。同样的访问可以给MATLAB,而无需创建一个SAS令牌通过设置
MW_WASB_SECRET_KEY
环境变量。例如:setenv MW_WASB_SECRET_KEY“1234567890 abcdef1234567890abcdef1234567890abcdef”
创建一个数据存储从Windows Azure存储Blob (WASB)位置
生产文件的位置,从文件名
file.ext
和前缀的文件路径/ path_to_file
和你的帐户名称wasbs: / / container@account /
。完整的数据位置使用下面的语法:wasbs: / /container@account/path_to_file/file.ext
container@account
容器的名称和吗path_to_file
文件或文件夹的路径。例如,如果你有一个文件
airlinesmall.csv
在一个文件夹/航空公司
在一个测试存储账户wasbs: / / blobContainer@storageAccount.blob.core.windows.net/
然后您可以创建一个数据存储的使用:位置= ' wasbs: / / blobContainer@storageAccount.blob.core.windows.net/airline/airlinesmall.csv';
ds = tabularTextDatastore(位置、“TreatAsMissing”、“NA”,…SelectedVariableNames, {' ArrDelay '});
您可以使用Azure的计算数据存储
万博1manbetx支持,包括直读,mapreduce
数组和深度学习,高。例如,创建一个ImageDatastore
从数据存储、读取指定的图像,然后显示图像的屏幕。
setenv (“MW_WASB_SAS_TOKEN”、“YOUR_WASB_SAS_TOKEN”);ds = imageDatastore (“wasbs: / / YourContainer@YourAccount.blob.core.windows.net/',…“IncludeSubfolders”,的确,“LabelSource”、“foldernames”);img = ds.readimage (1);imshow (img)
如果您正在使用并行计算工具箱™,你必须将你的客户环境变量复制到集群上工人通过设置EnvironmentVariables
在parpool,批处理,createJob或集群中配置文件管理器。
有关更多信息,请参见https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-use-blob-storage。
HDFS
指定位置的数据
您还可以创建一个数据存储为文本文件的集合或序列文件驻留在Hadoop分布式文件系统(HDFS)使用数据存储
函数。指定数据的位置时,您必须指定完整路径文件或文件夹使用一个国际化资源标识符(IRI)的其中一种形式:
hdfs: /path_to_file
hdfs: / / /path_to_file
hdfs: / /主机名/path_to_file
主机名
主机或服务器和名称吗path_to_file
文件或文件夹的路径。指定主机名
是可选的。当你不指定主机名
,Hadoop使用默认的主机名与Hadoop分布式文件系统在MATLAB (HDFS)安装。
例如,这些命令创建一个数据存储的文件,中
在一个文件夹命名数据
位于主机命名myserver
:
-
ds =数据存储(“hdfs: / / /数据/中”)
-
ds =数据存储(hdfs: / / myserver /数据/中)
如果主机名
指定,它必须对应于namenode定义的fs.default.name
财产的Hadoop XML配置文件为您的Hadoop集群。
可选地,您可以包括端口号。例如,这个位置指定一个主机命名myserver
与港口7867年
,包含文件中
在一个文件夹命名为数据
:
hdfs: / / myserver: 7867 /数据/中
指定的端口号必须匹配HDFS中的端口号设置配置。
集Hadoop环境变量
从HDFS阅读之前,使用setenv
函数来设置适当的环境变量到Hadoop安装的文件夹中。必须从当前机器访问这个文件夹。
Hadoop v1 -设置
HADOOP_HOME
环境变量。Hadoop v2 -设置
HADOOP_PREFIX
环境变量。如果您使用Hadoop Hadoop v1和v2,或者
HADOOP_HOME
和HADOOP_PREFIX
环境变量没有设置,然后设置MATLAB_HADOOP_INSTALL
环境变量。
例如,使用这个命令来设置HADOOP_HOME
环境变量。hadoop-folder
安装文件夹Hadoop,/ mypath /
是文件夹的路径。
setenv (“HADOOP_HOME”、“/ mypath /hadoop-folder”);
HDFSHortonworks或数据Cloudera
如果你当前的机器访问Hortonworks或Cloudera HDFS数据®,那么你不需要设置HADOOP_HOME
或HADOOP_PREFIX
环境变量。MATLAB使用Hortonworks时自动分配这些环境变量或Cloudera应用边缘节点。
防止内存清理代码
当阅读从HDFS或本地读取序列文件,数据存储
函数调用的javaaddpath
命令。这个命令如下:
清除所有Java的定义®类定义的文件在动态的类路径
从基地的工作区中删除所有的全局变量和变量
删除所有编译脚本、函数和MEX-functions从内存
防止持久变量、代码文件或mex files被清除,使用mlock
函数。