このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
MATLAB®では,Amazon S3™(简单存储服务),微软®Azure®存储Blob,およびHadoop®分散ファイルシステム(HDFS™)のクラウドストレージなど,リモートの場所でデータの読み取りと書き込みを行うことができます。
リモートデータには,データストアオブジェクトを使用してアクセスできます。データストアを使用して、MATLAB のデスクトップ バージョンからデータの一部を調べます。その後、コードをローカルでプロトタイプ化してから、クラスターまたはクラウドにスケール アップできます。データと同じ場所で大規模な計算を実行するほうが効率がよいため、スケール アップすると実行効率性が向上します。リモートの場所にデータを書き込むために、関数写
を高配列または分散配列に対して使用できます。
MATLABでは,Amazon S3をアマゾンウェブサービス提供のオンラインファイルストレージウェブサービスとして使用できます。Amazon S3に保存されているデータを,ImageDatastore
、FileDatastore
、SpreadsheetDatastore
、TabularTextDatastore
などのデータストアオブジェクトで使用できます。データの場所を指定する場合は、次の形式の Uniform Resource Locator (URL) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。
s3: / / bucketname / path_to_file
bucketname
はコンテナーの名前,path_to_file
はファイルまたはフォルダーへのパスです。
Amazon S3は,ウェブサービスインターフェイス経由でデータストレージを提供します。”“バケットをコンテナーとして使用して,オブジェクトをAmazon S3に格納できます。
Amazon S3のリモートデータを操作するには,まずアクセスを設定しなければなりません。
アマゾンウェブサービス(AWS)のルートアカウントの新規登録を行います。「アマゾンウェブサービス:アカウント“を参照してください。
AWSのルートアカウントを使用して,我(身份和访问管理)ユーザーを作成します。AWSアカウント内での我ユーザーの作成を参照してください。
アクセスキーを生成して,アクセスキーIDとシークレットアクセスキーを受け取ります。我ユーザーのアクセスキーの管理を参照してください。
https://aws.amazon.com/cli/のAWSコマンドラインインターフェイスツールを使用して,AWSアクセスキーID,シークレットアクセスキー,およびリージョンについてマシンを設定します。あるいは,setenv
を使用して環境変数を直接に設定します。
AWS_ACCESS_KEY_ID
およびAWS_SECRET_ACCESS_KEY
——Amazon S3サービスを認証して使用可能にします(このアクセスキー変数のペアは手順3で生成しました)。
AWS_DEFAULT_REGION
(オプション)——バケットの地理的領域を選択します。通常,この環境変数の値は自動的に決定されますが,バケットの所有者により手動での設定が求められる場合があります。
AWS_SESSION_TOKEN
(オプション)- AWS®フェデレーション認証などの一時的なセキュリティ資格情報を使用している場合に,セッショントークンを指定します。
并行计算工具箱™を使用している場合は,クラスターがS3サービスにアクセスするよう設定されていることを確認しなければなりません。EnvironmentVariables
をparpool
、批处理
,またはcreateJob
内で設定するか,クラスタープロファイルマネージャーで設定することにより,クライアント環境変数をクラスター上のワーカーにコピーできます。
Amazon S3のデータはデータストアオブジェクトを使用して読み取ることができます。たとえば,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',…' inclesubfolders ', true, 'LabelSource', 'foldernames');img = ds.readimage (1);imshow (img)
Amazon S3にデータを書き込むには,分散配列または高配列上で関数写
を呼び出し,クラウドストレージ内のフォルダーへの絶対パスを指定します。次の例では,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/ airlinessmall .csv',…'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'});tt =高(ds);tt = sortrows (rmmissing (tt));写(“s3: / / bucketname / preprocessedData /”,tt);
高データを読み戻すには,関数数据存储
を使用します。
ds =数据存储(s3: / / bucketname / preprocessedData / ');tt =高(ds);
MATLABでは,Windows Azure®存储Blob (WASB)を微软提供のオンラインファイルストレージWebサービスとして使用できます。Azureに保存されているデータを,ImageDatastore
、FileDatastore
、SpreadsheetDatastore
、TabularTextDatastore
などのデータストアオブジェクトで使用できます。データの場所を指定する場合は、次の形式の Uniform Resource Locator (URL) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。
wasbs: / / container@account / path_to_file / file.ext
container@account
はコンテナーの名前,path_to_file
はファイルまたはフォルダーへのパスです。
Azureは、Webサービスインターフェイス経由でデータストレージを提供します。”“ブロブを使用して,データファイルをAzureに保存できます。詳細については,Azureの紹介を参照してください。
Azureストレージ内のリモートデータを操作するには,まずアクセスを設定しなければなりません。
微软Azureアカウントの新規登録を行います。微软Azureアカウントを参照してください。
setenv
を使用して以下の2つの環境変数のうちのどちらか1つのみを設定し,認証の詳細をセットアップします。
MW_WASB_SAS_TOKEN
——共有アクセスシグネチャ(SAS)による認証
SASを取得します。詳細については,存储资源管理器を使用してAzure Blob存储リソースを管理するで,“BLOBコンテナーのSASを取得する”の節を参照してください。
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 '
この文字列をAzure存储web UIまたはエクスプローラーから生成された有効なSASトークンに設定しなければなりません。
MW_WASB_SECRET_KEY
——アカウントの2つの秘密鍵の1つを使用した認証
各ストレージアカウントには2つの秘密鍵があり,それを使用した管理者権限アクセスが可能です。環境変数MW_WASB_SECRET_KEY
を設定することにより,SASトークンを作成しなくても,これと同じアクセス権をMATLABに付与できます。以下に例を示します。
setenv MW_WASB_SECRET_KEY“1234567890 abcdef1234567890abcdef1234567890abcdef”
并行计算工具箱を使用している場合は,EnvironmentVariables
をparpool
、批处理
,またはcreateJob
内で設定するか,クラスタープロファイルマネージャーで設定することにより,クライアント環境変数をクラスター上のワーカーにコピーしなければなりません。
詳細については,Azure HDInsightクラスターでAzure存储を使用するを参照してください。
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(location, 'TreatAsMissing', 'NA',…)SelectedVariableNames, {' ArrDelay '});
直接の読み取り,mapreduce
,高配列,深層学習など,データストアでサポートされるすべての計算にAzureを使用できます。たとえば,ImageDatastore
を作成して,指定したイメージをデータストアから読み取り,そのイメージを画面に表示します。
setenv(“MW_WASB_SAS_TOKEN”、“YOUR_WASB_SAS_TOKEN”);ds = imageDatastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/',…' inclesubfolders ', true, 'LabelSource', 'foldernames');img = ds.readimage (1);imshow (img)
Azureにデータを書き込むには,分散配列または高配列上で関数写
を呼び出し,クラウドストレージ内のフォルダーへの絶対パスを指定します。次の例では,Azureから表形式データを高配列に読み取り,欠損エントリを削除して並べ替える前処理を行ったうえで,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 =高(ds);tt = sortrows (rmmissing (tt));写(wasbs: / / YourContainer@YourAccount.blob.core.windows.net/preprocessedData/, tt);
高データを読み戻すには,関数数据存储
を使用します。
ds =数据存储(“wasbs: / / YourContainer@YourAccount.blob.core.windows.net/preprocessedData/”);tt =高(ds);
関数tabularTextDatastore
を使用して,Hadoop分散ファイルシステム(HDFS)上のテキストファイルまたはシーケンスファイルのコレクションについてデータストアを作成することもできます。データの場所を指定する場合は、次のいずれかの形式の Uniform Resource Locator (URL) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。
hdfs: / path_to_file
hdfs: / / / path_to_file
hdfs: / /主机名/ path_to_file
主机名
はホストまたはサーバーの名前,path_to_file
はファイルまたはフォルダーへのパスです。主机名
の指定はオプションです。主机名
を指定しない場合,HadoopはMATLABのHadoop分散ファイルシステム(HDFS)インストールに関連付けられている既定のホスト名を使用します。
たとえば,これらのコマンドは両方ともmyserver
というホストにある数据
という名前のフォルダーのファイル中
に対するデータストアを作成します。
ds = tabularTextDatastore (“hdfs: / / /数据/中”)
ds = tabularTextDatastore (hdfs: / / myserver /数据/中)
主机名
を指定する場合は,HadoopクラスターのHadoop XML構成ファイル内のfs.default.name
プロパティで定義されたnamenodeに一致しなければなりません。
オプションで,ポート番号を含めることもできます。たとえば,この場所は,数据
というフォルダーのファイル中
を含む,ポート7867
のmyserver
というホストを指定します。
hdfs: / / myserver: 7867 /数据/中
指定されたポート番号は,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 ');
現在のマシンからHortonworksまたはCloudera®上のHDFSデータにアクセスできる場合,HADOOP_HOME
またはHADOOP_PREFIX
の環境変数を設定する必要はありません。HortonworksまたはClouderaアプリケーションのエッジ ノードを使用するとき、MATLAB はこれらの環境変数を自動的に割り当てます。
HDFSから読み取る場合やシーケンスファイルをローカルに読み取る場合,関数数据存储
はjavaaddpath
コマンドを呼び出します。このコマンドは以下を実行します。
動的クラスパス上のファイルによって定義されるすべてのJava®クラスの定義をクリアする
すべてのグローバル変数および基本ワークスペースからの変数を削除する
すべてのコンパイルされているスクリプト,関数,墨西哥人関数をメモリから削除する
永続変数,コードファイルまたは墨西哥人ファイルがクリアされないようにするには,関数mlock
を使用します。
関数写
を使用して,高配列と分散配列をHadoop分散ファイルシステムに書き込みます。この関数を分散配列または高配列で呼び出すときは,HDFSフォルダーへの絶対パスを指定しなければなりません。次の例では,HDFSから表形式データを高配列に読み取り,欠損エントリを削除して並べ替える前処理を行ったうえで,HDFSに書き戻す方法を説明します。
ds = tabularTextDatastore('hdfs://myserver/some/path/dataset/ airlinessmall .csv',…'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'});tt =高(ds);tt = sortrows (rmmissing (tt));写(“hdfs: / / myserver /一些/道路/ preprocessedData / ', tt);
高データを読み戻すには,関数数据存储
を使用します。
ds =数据存储(hdfs: / / myserver /一些/道路/ preprocessedData / ');tt =高(ds);
数据存储
|imageDatastore
|imread
|imshow
|javaaddpath
|mlock
|setenv
|tabularTextDatastore
|写