主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

원격데이터로작업하기

파일I/O함수와일부데이터저장소객체와같은matlab®함수와객체를사용하여원격위치에서데이터를읽고쓸수있습니다。이예제에서는다음과같은클라우드저장소플랫폼에서원격위치를설정하고원격위치의데이터를읽고쓰는방법을보여줍니다。

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

  • Azure®Blob Storage(이전에는Windows Azure®存储团(WASB)라고함)

  • Hadoop®分布式文件系统(HDFS™)

Amazon S3

MATLAB에서는Amazon Web Services에서제공하는Amazon S3를온라인파일저장소웹서비스로사용할수있습니다。데이터의위치를지정할때는다음형식의URL(统一资源定位器)을사용하여파일이나폴더의전체경로를지정해야합니다。

s3: / / bucketname / path_to_file

bucketname은컨테이너이름이고path_to_file은파일이나폴더의경로입니다。

Amazon S3는웹서비스,터페이스를통해데이터저장소를제공합니다。을컨테이너로사용하여Amazon S3에객체를저장할수있습니다。

액세스설정하기

Amazon S3의원격데이터로작업하려면먼저액세스를설정해야합니다。

  1. AWS(亚马逊网络服务)루트계정에가입합니다。亚马逊网络服务:계정을참조하십시오。

  2. AWS루트계정을사용하여我(身份和访问管理)사용자를만듭니다。在AWS帐户中创建IAM用户를참조하십시오。

  3. 액세스키를생성하여액세스키id와보액세스키를받습니다。管理IAM用户接入键를참조하십시오。

  4. Aws명령줄터페이스툴(https://aws.amazon.com/cli/)을사용하여AWS액세스키ID,보안액세스키및리전(지역)으로컴퓨터를구성합니다。또는,setenv를사용하여환경변수를직접설정합니다。

    • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY—Amazon S3서비스를하여사용할수있도록설정합니다。이액세스키변수쌍은위의3단계에서생성되었습니다。

    • AWS_DEFAULT_REGION(선택사항)—桶의지리적债市역을선택합니다。이환경변수의값은일반적으로자동으로결정되지만,이값을사용자가수동으로설정하도록桶소유자에의해요구될수도있습니다。

    • AWS_SESSION_TOKEN(선택사항)- aws®联合身份验证같은임시보안자격증명을사용하는경우세션토큰을지정합니다。

并行计算工具箱™를사용중인경우에는클러스터S3가서비스에액세스하도록구성되어있는지확인해야합니다。parpool批处理createJob또는클러스터프로파일관리자(集群配置文件管理器)에서EnvironmentVariables를설정하여클라이언트환경변수를클러스터의워커에복사할수있습니다。

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 =数据存储(s3: / / bucketname / preprocessedData / ');tt =高(ds);

AzureBlob存储

MATLAB에서는Azure Blob存储를온라인파일저장소로사용할수있습니다。데이터의위치를지정할때는다음형식의URL(统一资源定位器)을사용하여파일이나폴더의전체경로를지정해야합니다。

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

container@account는컨테이너이름이고path_to_file은파일이나폴더의경로입니다。

Azure는웹서비스,터페이스를통해데이터저장소를제공합니다。을사용하여Azure에데이터파일을저장할수있습니다。자세한내용은介绍Azure를참조하십시오。

액세스설정하기

Azure Storage의원격데이터로작업하려면먼저액세스를설정해야합니다。

  1. 微软Azure계정에가입합니다(微软Azure帐户참조)。

  2. setenv로다음두환경변수중하나를정확하게설정하여세부정보를설정합니다。

    • MW_WASB_SAS_TOKEN—공유액세스서명(sas)을통해显卡显卡

      Sas를가져옵니다。자세한내용은使用Storage Explorer管理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存储웹UI또는탐색기에서생성된유효한SAS토큰으로설정해야합니다。

    • MW_WASB_SECRET_KEY—계정의비밀키2개중하나를통해产品产品部

      각저장소계정에는관리자권한액세스를허용하는2개의비밀키가있습니다。MW_WASB_SECRET_KEY환경변수를설정하면SAS토큰을만들지않아MATLAB에도동일한액세스가부여됩니다。예를들면,다음과같습니다。

      setenv MW_WASB_SECRET_KEY“1234567890 abcdef1234567890abcdef1234567890abcdef”

并行计算工具箱를사용중路人경우parpool批处理createJob또는클러스터프로파일관리자(集群配置文件管理器)에서EnvironmentVariables를설정하여클라이언트환경변수를클러스터의워커에복사해야합니다。

자세한내용은在Azure HDInsight集群中使用Azure存储를참조하십시오。

Azure에서데이터읽어오기

Azure Blob存储위치에서데이터를읽어오려면다음구문을사용하여위치를지정하십시오。

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

container@account는컨테이너이름이고path_to_file은파일이나폴더의경로입니다。

예를들어,테스트저장소계정wasbs: / / blobContainer@storageAccount.blob.core.windows.net/의폴더/航空公司에파일airlinesmall.csv가있으면다음구문을사용하여데이터저장소를만들수있습니다。

位置=“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 =数据存储(“wasbs: / / YourContainer@YourAccount.blob.core.windows.net/preprocessedData/”);tt =高(ds);

Hadoop分布式文件系统

데이터의위치지정하기

MATLAB에서는Hadoop分布式文件系统(HDFS)을온라인파일저장소웹서비스로사용할수있습니다。데이터의위치를지정할때는다음형식중하나로된URL(统一资源定位器)을사용하여파일이나폴더의전체경로를지정해야합니다。

hdfs: / path_to_file
hdfs: / / / path_to_file
hdfs: / /主机名/ path_to_file

主机名은호스트또는서버이름이고path_to_file은파일이나폴더의경로입니다。主机名을지정하는것은선택사항입니다。主机名을지정하지않으면Hadoop에서는MATLAB의HDFS (Hadoop分布式文件系统)설치위치와연관된디폴트호스트이름을사용합니다。

예를들어,다음두명령중하나를사용하여myserver라는호스트에있는数据폴더에파일을위한데이터저장소를만들수있습니다。

  • ds = tabularTextDatastore (“hdfs: / / /数据/中”
  • ds = tabularTextDatastore (hdfs: / / myserver /数据/中

主机名을지정할경우Hadoop클러스터의Hadoop XML구성파일에있는fs.default.name속성으로정의된namenode와일치해야합니다。

선택사항으로포트번호를입력할수있습니다。예를들어,다음위치는数据라는폴더에파일가있는호스트myserver를포트7867로지정합니다。

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이설치된폴더이고/ mypath /는해당폴더의경로입니다。

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

Hortonworks또는Cloudera에있는HDFS데이터

현재컴퓨터가Hortonworks또는Cloudera®에있는HDFS데이터에액세스할수있다면,HADOOP_HOME환경변수또는HADOOP_PREFIX환경변수를설정하지않아도됩니다。MATLAB은Hortonworks또는Cloudera응용프로그램경계노드를사용할경우에이러한환경변수를자동으로할당합니다。

메모리에서코드가지워지지않도록방지하기

Hdfs에서읽거나시퀀스파일을로컬로읽어들일때数据存储함수는javaaddpath명령을호출합니다。이명령은다음작업을수행합니다。

  • 동적클래스경로에있는파일에의해정의된모든Java®클래스의정의지우기

  • 모든전역변수와기본작업공간의변수제거

  • 메모리에서모든컴파일된스크립트,함수,mex함수제거

속변수,코드파일,mex파일이지워지지않도록하려면mlock함수를사용하십시오。

HDFS에데이터쓰기

이예제에서는tabularTextDatastore객체를사용하여데이터를HDFS위치에쓰는방법을보여줍니다。高형함수를사용하여배열과분산배열을Hadoop分布式文件系统에씁니다。분산배열이나高형배열에대해이함수를호출할경우에는HDFS폴더의전체경로를지정해야합니다。다음예제에서는HDFS에서테이블형식데이터를高형배열로읽어오고,누락된항목을제거하고정렬하여데이터를전처리한다음,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 =数据存储(hdfs: / / myserver /一些/道路/ preprocessedData / ');tt =高(ds);

참고 항목

||||||||

관련 항목