발표자료, 제안서 등 관련된 문서를 작성할때 시스템 / 네트워크 등 아키텍처를 그려야 할때가 있습니다.

웹상에서 보면 VISIO가 그렇게 좋다고 하지만, 확보된 환경이 아니네요.. 물론 PPT로도 그릴수가 있지만.. 생각보다 손이 많이 가고 가장 큰 문제는 예쁘게 안나온다는게 문제 입니다.


웹을 검색해보면 거의 3사이트로 압축이 됩니다.(유료는 제외합니다)

프로그램 형태로는 제 블로그에 예전에 소개한 DIa도 있습니다 

2009/05/20 - [Utility program] - 순서도 그리는 프로그램 - DIA

그리고 리브레오피스(https://ko.libreoffice.org/discover/draw/) 드로우도 좋다고 하네요



1. CloudCraft  https://cloudcraft.co/

https://cloudcraft.co/https://cloudcraft.co/


2.drawio https://www.draw.io/

https://www.draw.io/https://www.draw.io/


3.Gliffy https://www.gliffy.com/

https://www.gliffy.com/https://www.gliffy.com/




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
맨날 HDP 에 설치가 잘된 제플린을 사용하다보니,,

수동으로 제플린을 사용하려고 하니 HIVE를 사용하려고 하니 다음과 같은 오류가 발생합니다.

Prefix not found.

paragraph_1493986135331_752263516's Interpreter hive not found
org.apache.zeppelin.interpreter.InterpreterException: paragraph_1493986135331_752263516's Interpreter hive not found at org.apache.zeppelin.notebook.Note.run(Note.java:605) at org.apache.zeppelin.socket.NotebookServer.persistAndExecuteSingleParagraph(NotebookServer.java:1641) at org.apache.zeppelin.socket.NotebookServer.runAllParagraphs(NotebookServer.java:1588) at org.apache.zeppelin.socket.NotebookServer.onMessage(NotebookServer.java:268) at org.apache.zeppelin.socket.NotebookSocket.onWebSocketText(NotebookSocket.java:59) at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:128) at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69) at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:65) at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:122) at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:161) at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:309) at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:214) at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220) at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:258) at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:632) at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:480) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745)


제가 사용한 제플린 버전은 1.7.1 버전이고 이유는 간단합니다.

HIVE 인터프리터가 없기 때문입니다.


설정방법은 여기 친절하게 나와있습니다.


https://zeppelin.apache.org/docs/0.7.1/interpreter/hive.html



설명은 간단하지만,, 분명히 HDP에서 제플린으로 HIVE사용할때는 %hive 사용했던것 같은데..


제플린을 오래 사용하지 않아서 jdbc로 통합된것 같더군요


먼저 Hadoop 홈폴더에 보면 share 폴더 아래 hadoop 아래 common이라는 폴더가 있을겁니다.

여기서 hadoop-common을 제플린 폴더의 interpreter 폴더 jdbc 폴더 안에 복사합니다


그다음 hive 홈폴더에서 lib 폴더에 보면 hive-jdbc-standalone이라는 jar 파일이 있습니다 

마찬가지로 제플린 interpreter 폴더 jdbc 에 복사합니다


그다음 제플린 UI에서 인터프리터를 여신다음 여기서 jdbc를 검색합니다

그다음 jdbc에 다음을 추가합니다

hive.driver   = org.apache.hive.jdbc.HiveDriver

hive.password = 자신의 설정

hive.url =자신의 설정

hive.user =자신의 설정


그다음 제플린 데몬을 제시작하면


%hive(jdbc) 하신다음 바로 사용이 가능합니다.





....추가적으로 지금 제플린에 yarn-client 모드로 spark 엮고 있는데, 이거 제대로 되면 방법도 올려보겠습니다.


맨날 벤더 하둡 쓰려다가 ㅠㅠㅠ self-deployed 하둡 쓰려니까 어렵네요 ㅠㅠ 























저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License



 EN-CNTNT-Infographic-VisualguidetoAzure.pdf


Microsoft Azure is a flexible,open, and secure public cloud built for business. Access abroad collection of integrated services that accommodate many languages and operating systems. Use world-class tools to accelerate a wide variety of app development and delivery capabilities.


가끔씩, Azure를 이용해서 자원을 생성해서 사용하고 있습니다. 오늘 메일박스를 보니, 예쁜그림을 하나 보내왔네요. 아마도 마소 홈페이지에 있겠지만.. 








저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Cloud Computing > Microsoft Azure' 카테고리의 다른 글

What is Microsoft Azure?  (0) 2016.12.07

혹시나 저 같은 이슈를 겪고 있는 분들을 


Hbase와 Hive를 연동할수 있는것처럼 MongoDB 를 Hive에 연동하여 사용할수 있습니다


https://github.com/mongodb/mongo-hadoop/wiki/Hive-Usage


이곳에서 라이브러리를 받아서 사용하시면, 되십니다.


mongo-hadoop-core.2.0.1.jar 

mongo-hadoop-hive-2.0.1.jar 

mongo-java-driver-3.2.1.jar




FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/bson/conversions/Bson 


추가적으로 다음 에러는 mongo-java-driver-3.2.1.jar 없어서 나오는 에러 입니다. 저 같은경우 제실수로 mongo-drvier를 사용해서 계속 오류가 났네요


http://rmoff.net/2016/06/15/classnotfoundexception-with-mongodb-hadoop-in-hive/




reference : 써티웨어(Certiware), http://certiware.co.kr

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. test 2016.11.17 09:32 신고

    test




몇일간 R에 대해서 수업 들으면서 느낀것..


빅데이터 분석으로 R은 만능은 아님(R자체가 데이터를 메모리에 로드해서 사용하기 때문에 만약 컴퓨터가 가진 메모리보다 데이터가 크다면..?) --> 이래서 데이터를 읽어올때 한줄씩 읽어오는 방법도 사용

    --> 때에 따라서는 전처리 단계 필요, 또 R이 오픈소스 이다보니까, R에서 전처리 단계에서 속도가 느려서 

          이를 개선한 Revolution R(현재 7버전) 이라는게 있음,,(유료인가..?..)

    또는 하둡을 이용해서 해결, Rhive, Rhadoop, 등등 

    ++ Java에서 R호출가능, R에서 자바호출가능(?)



그런데 어느정도 전처리된 단계가 있고 R로 처리를 하면 자동적으로 환상적인 Visualization 대박인듯..

(할게 많구나..)


R관련 재미있는 사이트 : http://www.rdatamining.com/







저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Study > R programming' 카테고리의 다른 글

R 프로그래밍  (0) 2014.08.11
R 프로그래밍  (0) 2014.07.27



사실, 졸업전에 어떻게 기회가 되어서 R프로그래밍을 배우고 있습니다. 전,, 여태까지 R 프로그래밍이 Hadoop MapReduce를 쉽게 하기 위한 방법론? 또는 그런 제품, 관련된거라고 생각했는데, 정말로 잘못알고 있었던거네요. 물론 외국쪽에 자료가 많겠지만. 


국내쪽 커뮤티니 주소 첨부합니다. 

http://r-project.kr/ R 한국 사용자모임

https://www.facebook.com/groups/krstudy/ 페이스북 R 사용자 그룹



저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Study > R programming' 카테고리의 다른 글

R 프로그래밍  (0) 2014.08.11
R 프로그래밍  (0) 2014.07.27

Type mismatch in key from map: expected org.apache.hadoop.io.LongWritable, recieved org.apache.hadoop.io.Text


역시 구글, 타입을 지정안해서 나는 오류 였습니다.

스택오버플로 짱 


Add these 2 lines in your code :

job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);

You are using TextOutputFormat which emits LongWritable key and Text value by default, but you are emitting Text as key and IntWritable as value. You need to tell this to the famework.

HTH


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. Favicon of http://merrow.tistory.com BlogIcon 명가공인 2014.04.25 17:06 신고

    와우~ 눈이 휙휙 돌아 갑니다.^^;;
    저는 프로그래밍쪽은 잘 몰라서 그런지 이런거 하시는 분이 부럽습니다.

    • Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2014.04.28 18:05 신고

      저 말고 잘하는분들 더 많으세요.

      전 학생이다 보니. ㅎㅎㅎ

      즐거운 하루되세요

현재 MapReduce관련 작업을 하고 있습니다.


기본적으로 MapReudce는 Map작업과 Reduce작업으로 이루어져있습니다.


만약 Map 이 1개 , Reduce가 1개 일때는 문제가 안되지만, Map 작업이 2개 이상이 되거나 Reduce작업이 2개 이상되어야 할경우가 문제가 됩니다.


지금 책을 보면서, 여러가지를 공부하고 있는데, 인터넷검색결과 이럴경우, 3가지 해결방법이 제시가 됩니다.


첫번째는 jobconf를 여러개 생성해서, jobclient를 실행해서 하는 방법입니다.

두번째는 책에 가장 많이 나와있는 케이스인데, ChainMapper를 사용해서 여러개의 Map과 Reduce 작업을 하는 방법입니다.


지금 현재 MapRedue를 이용해서 만들고 있는데 저한테는 아직 적합한것 같지 않네요. 제가 잘못찾을수도 있고.. .

마지막 방법은 JobControl 을 이용해서 작업하는 방법입니다 ..


레파토리는 다음과 같습니다. 


               JobConf jobconf = new JobConf(conf);

 ... 해당하는 JOB의 설정

JobConf jobconf2 = new JobConf(conf);

... 해당하는 JOB의 설정


            JobControl jobControl = new JobControl("TestModule");

Job wrapperJob =  new Job(jobconf);

Job wraaperJob2 = new Job(jobconf2);

wraaperJob2.addDependingJob(wrapperJob);

jobControl.addJob(wrapperJob);

jobControl.addJob(wraaperJob2);

   jobControl.run();


먼저 할려는 작업을 jobconf를 통해서 정의 합니다. 저는 여러번의 map작업이 있어야 하기 때문에 2개를 정의한다고 가정합니다. 아직 Reduce나 그이후작업에 대한 정의는 안된상태입니다. 일단 여러개 작업을 이어붙이는 것이 목적이기 때문에


JobControl 을 만들고, Job 클래스를 이용해서 위에서 만든 jobconf를 만든다음 생성합니다.

그다음 저는 첫번째 잡을 wraapperJob으로 만들고 두번째 잡을 wrapperJob2로 만들었습니다.

여기서 WrapperJob2.AddDependingJob 이라는 메소드가 있는데, 의존한다는 의미로 job2가 실행되기 위해서 Job1의 결과값을 받아오겠다? 이정도로 이해하시면 됩니다.

그리고 만든 JobControl.addJob 메소드를 이용해서 잡을 추가하고

JobControl.run을 하시면 됩니다. 


그다음이 문제인데 이렇게 해서 하둡에서 MapReduce작업을 합니다. 웹 모니터링 창에는 작업이 끝났다고 하는데, 계속 제 작업은 돌아갔습니다. (책에도 안나오고 난감...)


역시 구글과 스택오버플로 신께서 도움을 주시네요. 몇몇 인터넷을 찾아보니 , 쓰레드를 생성해서 저 잡이 끝났는지 안끝났는지를 체크해야합니다. 


http://grokbase.com/t/hadoop/common-user/097hs9h2rz/using-jobcontrol-in-hadoop

http://wangzejie.iteye.com/blog/2035640


제가 참고한 페이지는 두 페이지 입니다. 그래서 드라이버 클래스에 쓰레드를 별도로 만들어서 잡의 진행상황을 확인해서 작업을 Jobcontrol을 종료하도록 했습니다. 


                Thread jcThread = new Thread(jobControl);

jcThread.start();

while(true){

if(jobControl.allFinished()){

jobControl.stop();

break;

}

if(jobControl.getFailedJobs().size()>0){

jobControl.stop();

break;

}

}


인터넷을 보시다 보면 return 할때 0,1 하시는건 보실수 있는데, 저는 잘모르겠지만 맵리듀스 드라이버 클래스를 만들때 libtool인가 하는 클래스를 상속받아서 만드시는 분들이 있습니다. 그런 예제들을 보면 0 ,1 리턴 받은 값을 이용해서 제대로 작업이 실행되었는지 확인한것 같습니다. 


아직 학생신분이다보니.. 하다가 생긴 짤막한 지식을 적었습니다.. 혹시 저하고 같은 고민을 하시는 분에게 도움이 되길..


또는 맵리듀스를 하시는 실무자께서 보고계신다면, 제가 잘못알고 있거나, 혹은 도움되는내용이 있으시면 코멘트 해주시면 감사합니다 !!






저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
1

+ Recent posts

티스토리 툴바