'프로그램밍언어/HADOOP'에 해당되는 글 5건

  1. 2014.06.20 pig Nested FOREACH
  2. 2014.06.20 hadoop safemode 해제
  3. 2014.06.20 [PIG] set jog.name default_parallel
  4. 2014.06.20 [PIG] ERROR 1000: Error during parsing. Encountered
  5. 2014.06.20 PIG 관련 URL

입력데이터가

time, name, id 일때

ID로 GROUPING을 하고

그룹핑된 갑들에 대해 time순으로 정렬하기 위해 아래와 같이 nested foreach를 사용한다.



A = FOREACH fields GENERATE time, name, id

B = GROUP A BY (id);

C = FOREACH B {

  sorted = ORDER A by time;

  GENERATE sorted;

};


STORE C INTO '/user/hadoop/jchern/test';

'프로그램밍언어 > HADOOP' 카테고리의 다른 글

hadoop safemode 해제  (0) 2014.06.20
[PIG] set jog.name default_parallel  (0) 2014.06.20
[PIG] ERROR 1000: Error during parsing. Encountered  (0) 2014.06.20
PIG 관련 URL  (0) 2014.06.20
Posted by 고요한하늘
,

http://stackoverflow.com/questions/4966592/hadoop-safemode-recovery-taking-too-long



하둡 safemode 해제


safemode가 너무 오래 지속될때 아래 명령어로 해제한다.



hadoop dfsadmin -safemode leave


'프로그램밍언어 > HADOOP' 카테고리의 다른 글

pig Nested FOREACH  (0) 2014.06.20
[PIG] set jog.name default_parallel  (0) 2014.06.20
[PIG] ERROR 1000: Error during parsing. Encountered  (0) 2014.06.20
PIG 관련 URL  (0) 2014.06.20
Posted by 고요한하늘
,

실행되는 tast name 설정

set job.name 'jchern - dspklog_count_uuid.pig'


reducer 개수 설정

set default_parallel 20

'프로그램밍언어 > HADOOP' 카테고리의 다른 글

pig Nested FOREACH  (0) 2014.06.20
hadoop safemode 해제  (0) 2014.06.20
[PIG] ERROR 1000: Error during parsing. Encountered  (0) 2014.06.20
PIG 관련 URL  (0) 2014.06.20
Posted by 고요한하늘
,

PIG를 한번 써볼려고 간단히 테스트 코드를 만들었는데

다음과 같은 에러를 만나다.

 [main] ERROR org.apache.pig.tools.grunt.Grunt - org.apache.pig.tools.pigscript.parser.ParseException: Encountered " <PATH> "valid_field=foreach "" at line 7, column 1.

Was expecting one of:

    <EOF>

    "cat" ...

    "fs" ...

    "sh" ...

    "cd" ...

    "cp" ...

    "copyFromLocal" ...

    "copyToLocal" ...

    "dump" ...

    "describe" ...

    "aliases" ...

    "explain" ...

    "help" ...

    "kill" ...

    "ls" ...

    "mv" ...

    "mkdir" ...

    "pwd" ...

    "quit" ...

    "register" ...

    "rm" ...

    "rmf" ...

    "set" ...

    "illustrate" ...

    "run" ...

    "exec" ...

    "scriptDone" ...

    "" ...

    <EOL> ...

    ";" ...


        at org.apache.pig.tools.pigscript.parser.PigScriptParser.generateParseException(PigScriptParser.java:1058)

        at org.apache.pig.tools.pigscript.parser.PigScriptParser.handle_invalid_command(PigScriptParser.java:874)

        at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:529)

        at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:168)

        at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:144)

        at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:90)

        at org.apache.pig.Main.run(Main.java:500)

        at org.apache.pig.Main.main(Main.java:107)


 

문제는 의외의 곳에 있었고 해결법 역시 간단하다.

연산자(=)에 앞뒤에 공백이 없는것이 문제로 보인다.

 


INVALID NOTATION : 

valid_field=foreach fields generate a, b, c


 

VALID NOTATION : 

valid_field = foreach fields generate a, b, c

'프로그램밍언어 > HADOOP' 카테고리의 다른 글

pig Nested FOREACH  (0) 2014.06.20
hadoop safemode 해제  (0) 2014.06.20
[PIG] set jog.name default_parallel  (0) 2014.06.20
PIG 관련 URL  (0) 2014.06.20
Posted by 고요한하늘
,

http://www.cloudera.com/wp-content/uploads/2010/01/IntroToPig.pdf

http://wiki.apache.org/pig/PigLatin#Data_Items


http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html

http://pig.apache.org/docs/r0.9.2/func.html#replace


http://wiki.apache.org/pig/PigLatin  -add(2013/01/08)


load : 하둡서버의 파일을 LOAD

load 파일경로


필드 구분자 지정 : 

A = LOAD 'student' USING PigStorage('\t') AS (name: chararray, age:int, gpa: float); 


filter : 지정된 조건을 내용을 필터링한다.

숫자 : X = FILTER A BY (f1 == 8);

문자 : X = FILTER A BY (f2 == 'apache');

매치 : X = FILTER A BY (f1 matches '.*apache.*');


foreach : 

변수A에서 $3필드값을 변수 B에 저장

B = FOREACH A GENERATE $3;


store : 하둡서버의 파일을 로컬 파일에 저장

store A11 into /data2/jchern/output.txt


join : 두개의 파일을 키값을 가지고 join

OUT = join IN1 by query, IN2 by query;


order : 

OUT = order IN1 by $0 ASC, $15 DESC;


group : 특정 키값을 가지고 그루핑

OUT = group IN1 by (query, url);

'프로그램밍언어 > HADOOP' 카테고리의 다른 글

pig Nested FOREACH  (0) 2014.06.20
hadoop safemode 해제  (0) 2014.06.20
[PIG] set jog.name default_parallel  (0) 2014.06.20
[PIG] ERROR 1000: Error during parsing. Encountered  (0) 2014.06.20
Posted by 고요한하늘
,