日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)ApachePig教程:ApachePig加載數(shù)據(jù)

一般來(lái)說(shuō),Apache Pig在Hadoop之上工作。它是一種分析工具,用于分析 Hadoop File System中存在的大型數(shù)據(jù)集。要使用Apache Pig分析數(shù)據(jù),我們必須首先將數(shù)據(jù)加載到Apache Pig中。本章介紹如何從HDFS將數(shù)據(jù)加載到Apache Pig。

湞江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

準(zhǔn)備HDFS

在MapReduce模式下,Pig從HDFS讀?。虞d)數(shù)據(jù)并將結(jié)果存回HDFS。因此,讓我們先從HDFS開(kāi)始,在HDFS中創(chuàng)建以下示例數(shù)據(jù)。

學(xué)生ID 名字 姓氏 電話號(hào)碼 城市
001 Rajiv Reddy 9848022337 Hyderabad
002 siddarth Battacharya 9848022338 Kolkata
003 Rajesh Khanna 9848022339 Delhi
004 Preethi Agarwal 9848022330 Pune
005 Trupthi Mohanthy 9848022336 Bhuwaneshwar
006 Archana Mishra 9848022335 Chennai

上述數(shù)據(jù)集包含六個(gè)學(xué)生的個(gè)人詳細(xì)信息,如id,名字,姓氏,電話號(hào)碼和城市。

步驟1:驗(yàn)證Hadoop

首先,使用Hadoop version命令驗(yàn)證安裝,如下所示。

$ hadoop version

如果你的系統(tǒng)里有Hadoop,并且已設(shè)置PATH變量,那么你將獲得以下輸出 -

Hadoop 2.6.0 
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 
e3496499ecb8d220fba99dc5ed4c99c8f9e33bb1 
Compiled by jenkins on 2014-11-13T21:10Z 
Compiled with protoc 2.5.0 
From source with checksum 18e43357c8f927c0695f1e9522859d6a 
This command was run using /home/Hadoop/hadoop/share/hadoop/common/hadoop
common-2.6.0.jar

步驟2:啟動(dòng)HDFS

瀏覽Hadoop的 sbin 目錄,并啟動(dòng) yarn 和Hadoop dfs(分布式文件系統(tǒng)),如下所示。

cd /$Hadoop_Home/sbin/ 
$ start-dfs.sh 
localhost: starting namenode, logging to /home/Hadoop/hadoop/logs/hadoopHadoop-namenode-localhost.localdomain.out 
localhost: starting datanode, logging to /home/Hadoop/hadoop/logs/hadoopHadoop-datanode-localhost.localdomain.out 
Starting secondary namenodes [0.0.0.0] 
starting secondarynamenode, logging to /home/Hadoop/hadoop/logs/hadoop-Hadoopsecondarynamenode-localhost.localdomain.out
 
$ start-yarn.sh 
starting yarn daemons 
starting resourcemanager, logging to /home/Hadoop/hadoop/logs/yarn-Hadoopresourcemanager-localhost.localdomain.out 
localhost: starting nodemanager, logging to /home/Hadoop/hadoop/logs/yarnHadoop-nodemanager-localhost.localdomain.out

步驟3:在HDFS中創(chuàng)建目錄

在Hadoop DFS中,可以使用 mkdir 命令創(chuàng)建目錄。在HDFS所需路徑中創(chuàng)建一個(gè)名為 Pig_Data 的新目錄,如下所示。

$cd /$Hadoop_Home/bin/ 
$ hdfs dfs -mkdir hdfs://localhost:9000/Pig_Data 

步驟4:將數(shù)據(jù)放在HDFS中

Pig的輸入文件包含單個(gè)行中的每個(gè)元組/記錄。記錄的實(shí)體由分隔符分隔(在我們的示例中,我們使用“,”)。在本地文件系統(tǒng)中,創(chuàng)建一個(gè)包含數(shù)據(jù)的輸入文件 student_data.txt ,如下所示。

001,Rajiv,Reddy,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata
003,Rajesh,Khanna,9848022339,Delhi
004,Preethi,Agarwal,9848022330,Pune
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai.

現(xiàn)在,使用 put 命令將文件從本地文件系統(tǒng)移動(dòng)到HDFS,如下所示。(你也可以使用 copyFromLocal 命令。)

$ cd $HADOOP_HOME/bin 
$ hdfs dfs -put /home/Hadoop/Pig/Pig_Data/student_data.txt dfs://localhost:9000/pig_data/

驗(yàn)證文件

使用 cat 命令驗(yàn)證文件是否已移入HDFS,如下所示。

$ cd $HADOOP_HOME/bin
$ hdfs dfs -cat hdfs://localhost:9000/pig_data/student_data.txt

輸出

現(xiàn)在,可以看到文件的內(nèi)容,如下所示。

15/10/01 12:16:55 WARN util.NativeCodeLoader: Unable to load native-hadoop
library for your platform... using builtin-java classes where applicable
  
001,Rajiv,Reddy,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata
003,Rajesh,Khanna,9848022339,Delhi
004,Preethi,Agarwal,9848022330,Pune
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai

Load運(yùn)算符

你可以使用 Pig Latin LOAD 運(yùn)算符,從文件系統(tǒng)(HDFS / Local)將數(shù)據(jù)加載到Apache Pig中。

語(yǔ)法

load語(yǔ)句由兩部分組成,用“=”運(yùn)算符分隔。在左側(cè),需要提到我們想要存儲(chǔ)數(shù)據(jù)的關(guān)系的名稱;而在右側(cè),我們需要定義如何存儲(chǔ)數(shù)據(jù)。下面給出了 Load 運(yùn)算符的語(yǔ)法。

Relation_name = LOAD 'Input file path' USING function as schema;

說(shuō)明:

  • relation_name - 我們必須提到要存儲(chǔ)數(shù)據(jù)的關(guān)系。

  • Input file path - 我們必須提到存儲(chǔ)文件的HDFS目錄。(在MapReduce模式下)

  • function - 我們必須從Apache Pig提供的一組加載函數(shù)中選擇一個(gè)函數(shù)( BinStorage,JsonLoader,PigStorage,TextLoader )。

  • Schema - 我們必須定義數(shù)據(jù)的模式,可以定義所需的模式如下 -

(column1 : data type, column2 : data type, column3 : data type);

注意:我們加載數(shù)據(jù)而不指定模式。在這種情況下,列將被尋址為$01,$02,等...(檢查)。

例如,我們使用 LOAD 命令,在名為學(xué)生的模式下在Pig中的 student_data.txt 加載數(shù)據(jù)。

啟動(dòng)Pig Grunt Shell

首先,打開(kāi)Linux終端。在MapReduce模式下啟動(dòng)Pig Grunt shell,如下所示。

$ Pig –x mapreduce

它將啟動(dòng)Pig Grunt shell,如下所示。

15/10/01 12:33:37 INFO pig.ExecTypeProvider: Trying ExecType : LOCAL
15/10/01 12:33:37 INFO pig.ExecTypeProvider: Trying ExecType : MAPREDUCE
15/10/01 12:33:37 INFO pig.ExecTypeProvider: Picked MAPREDUCE as the ExecType

2015-10-01 12:33:38,080 [main] INFO  org.apache.pig.Main - Apache Pig version 0.15.0 (r1682971) compiled Jun 01 2015, 11:44:35
2015-10-01 12:33:38,080 [main] INFO  org.apache.pig.Main - Logging error messages to: /home/Hadoop/pig_1443683018078.log
2015-10-01 12:33:38,242 [main] INFO  org.apache.pig.impl.util.Utils - Default bootup file /home/Hadoop/.pigbootup not found
  
2015-10-01 12:33:39,630 [main]
INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://localhost:9000
 
grunt>

執(zhí)行Load語(yǔ)句

現(xiàn)在,通過(guò)在Grunt shell中執(zhí)行以下Pig Latin語(yǔ)句,將文件 student_data.txt 中的數(shù)據(jù)加載到Pig中。

grunt> student = LOAD 'hdfs://localhost:9000/pig_data/student_data.txt' 
   USING PigStorage(',')
   as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, 
   city:chararray );

以下是對(duì)上述說(shuō)明的描述。

Relation name 我們已將數(shù)據(jù)存儲(chǔ)在學(xué)生(student)模式中。
Input file path 我們從HDFS的/pig_data/目錄中的 student_data.txt 文件讀取數(shù)據(jù)。
Storage function 我們使用了 PigStorage() 函數(shù),將數(shù)據(jù)加載并存儲(chǔ)為結(jié)構(gòu)化文本文件。它采用分隔符,使用元組的每個(gè)實(shí)體作為參數(shù)分隔。默認(rèn)情況下,它以“\t"作為參數(shù)。
schema

我們已經(jīng)使用以下模式存儲(chǔ)了數(shù)據(jù)。

column id 名字 姓氏 電話號(hào)碼 城市
datatype int char array char array char array char array

注意: Load語(yǔ)句會(huì)簡(jiǎn)單地將數(shù)據(jù)加載到Pig的指定的關(guān)系中。要驗(yàn)證Load語(yǔ)句的執(zhí)行情況,必須使用Diagnostic運(yùn)算符,這將在后續(xù)的章節(jié)中討論。


網(wǎng)站題目:創(chuàng)新互聯(lián)ApachePig教程:ApachePig加載數(shù)據(jù)
標(biāo)題來(lái)源:http://www.5511xx.com/article/dhgcigo.html