主要内容

このペジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

リモトデタの操作

MATLAB®関数およびオブジェクト(ファイルI / O関数および一部の数据存储オブジェクトなど)を使用して,リモートの場所からデータを読み取りおよび書き込みできます。以下の例では,次のクラウドストレージプラットフォームでリモートの場所からセットアップ,読み取り,および書き込みする方法を説明します。

  • Amazon S3™(简单存储服务)

  • Azure®Blob Storage(旧Windows Azure®存储团(WASB))

  • Hadoop®分散ファルシステム(hdfs™)

Amazon S3

MATLABでは,Amazon S3をアマゾンウェブサービス提供のオンラインファイルストレージウェブサービスとして使用できます。デタの場所を指定する場合は、次の形式の Uniform Resource Locator (URL) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。

s3: / / bucketname / path_to_file

bucketnameはコンテナの名前,path_to_fileはファ邮箱ルまたはフォルダ邮箱へのパスです。

Amazon S3は,Webサ。“バケット”をコンテナとして使用して,オブジェクトをAmazon S3に格納できます。

アクセスの設定

Amazon S3のリモトデタを操作するには,まずアクセスを設定しなければなりません。

  1. アマゾンウェブサビス(aws)のルトアカウントの新規登録を行います。「アマゾンウェブサビス:アカウントを参照してください。

  2. AWSのルートアカウントを使用して,我(身份和访问管理)ユーザーを作成します。Awsアカウント内でのiamユザの作成を参照してください。

  3. アクセスキを生成して,アクセスキidとシを受け取ります。我是ユザのアクセスキの管理を参照してください。

  4. 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サービスにアクセスするよう設定されていることを確認しなければなりません。EnvironmentVariablesparpool批处理,またはcreateJob内で設定するか,クラスタープロファイルマネージャーで設定することにより,クライアント環境変数をクラスター上のワーカーにコピーできます。

Amazon S3からのデタの読み取り

次の例では,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',…' inclesubfolders ', true, 'LabelSource', '文件夹名');Img = ds.readimage(1);imshow (img)

Amazon S3へのデタの書き込み

次の例では,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/ airlinsmall .csv',…'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'});Tt =高(ds);Tt = sortrows(rmmissing(Tt));写(“s3: / / bucketname / preprocessedData /”,tt);

高デタを読み戻すには,高関数数据存储を使用します。

ds = datastore('s3://bucketname/ preproceddata /');Tt =高(ds);

AzureBlob存储

MATLABでは,オンラインファイルストレージにAzure Blob存储を使用できます。デタの場所を指定する場合は、次の形式の Uniform Resource Locator (URL) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。

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

container@accountはコンテナの名前,path_to_fileはファ邮箱ルまたはフォルダ邮箱へのパスです。

Azureは,Webサ。“ブロブ”を使用して,デAzureに保存できます。詳細にいては,Azureの紹介を参照してください。

アクセスの設定

Azureストレジ内のリモトデタを操作するには,まずアクセスを設定しなければなりません。

  1. 微软Azureアカウントの新規登録を行います。微软Azureアカウントを参照してください。

  2. 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 ' 1234567890abcdef1234567890abcdef '

并行计算工具箱を使用している場合は,EnvironmentVariablesparpool批处理,またはcreateJob内で設定するか,クラスタープロファイルマネージャーで設定することにより,クライアント環境変数をクラスター上のワーカーにコピーしなければなりません。

詳細にいては,Azure HDInsightクラスタでAzure Storageを使用するを参照してください。

Azureからのデタの読み取り

Azure Blob存储の場所からデータを読み取るには,次の構文を使用して場所を指定します。

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

container@accountはコンテナの名前,path_to_fileはファ邮箱ルまたはフォルダ邮箱へのパスです。

たとえば,airlinesmall.csvというファ邮箱ルが/航空公司というフォルダの中にあり,このフォルダジアカウントwasbs: / / blobContainer@storageAccount.blob.core.windows.net/にある場合,次を使用してデタストアを作成できます。

location = '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', '文件夹名');Img = ds.readimage(1);imshow (img)

Azureへのデタの書き込み

この例では,tabularTextDatastoreオブジェクトを使用して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 = datastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/preprocessedData/');Tt =高(ds);

Hadoop分散ファ邮箱ルシステム

デタ位置の指定

MATLABでは,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に一致しなければなりません。

オプションで,ポト番号を含めることもできます。たとえば,この場所は,数据というフォルダのファを含む,ポト7867myserverというホストを指定します。

hdfs: / / myserver: 7867 /数据/中

指定されたポト番号は,hdfs構成のポト番号セットに一致しなければなりません。

Hadoop環境変数の設定

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がeconf,/ mypath /はそのフォルダへのパスです。

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

HortonworksまたはCloudera上のHDFSデタ

現在のマシンからHortonworksまたはCloudera®上のHDFSデタにアクセスできる場合,HADOOP_HOMEまたはHADOOP_PREFIXの環境変数を設定する必要はありません。HortonworksまたはClouderaアプリケーションのエッジ ノードを使用するとき、MATLAB はこれらの環境変数を自動的に割り当てます。

メモリからコドがクリアされるのを回避する

HDFSから読み取る場合やシケンスファ数据存储javaaddpathコマンドを呼び出します。このコマンドは以下を実行します。

  • 動的クラスパス上のファiphone iphoneルによって定義されるすべてのJava®クラスの定義をクリアする

  • すべてのグロバル変数および基本ワクスペスからの変数を削除する

  • すべてのコンパルされているスクリプト,関数,mex関数をメモリから削除する

永続変数,コmlockを使用します。

HDFSへのデタの書き込み

この例では,tabularTextDatastoreオブジェクトを使用してHDFSの場所にデの場所にデタを書き込む方法を説明します.使用实例関数を使用して,高配列と分散配列をHadoop分散ファereplicationルシステムに書き込みます。この関数を分散配列または高配列で呼び出すときは,HDFSフォルダーへの絶対パスを指定しなければなりません。次の例では,HDFSから表形式データを tall 配列に読み取り、欠損エントリを削除して並べ替える前処理を行ったうえで、HDFS に書き戻す方法を説明します。

ds = tabularTextDatastore('hdfs://myserver/some/path/dataset/ airlinsmall .csv',…'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'});Tt =高(ds);Tt = sortrows(rmmissing(Tt));写(“hdfs: / / myserver /一些/道路/ preprocessedData / ', tt);

高デタを読み戻すには,高関数数据存储を使用します。

ds = datastore('hdfs://myserver/some/path/ preprocseddata /');Tt =高(ds);

参考

||||||||

関連するトピック