2017/06 9

2017-06-30 금요일

요즘은 팀에 들어온 일이 빅데이터 관련이라 그런쪽만 한다. 스파크를 많이 만지는데, 솔직히 일 하기전에는 이런 빅데이터 관련 직업을 잡으려면 기본 석사에 박사까지 해야지 이런거 할수있다.. 고 들은것같다. 그런데 지금 와서 우연히 팀을 잘 선택해서? 이런 일을 하고있는거 보니 사람일은 모르는것 같다. 스파크라는 걸 회사와서 처음 해보는건데 재미있다. 개발을 하면서 다시느끼는건데 파이썬은 진짜 엄청나게 범용적인것 같다. 항상 어디 처음보는 언어나 프레임워크도 지원하고, 이 스파크도 스칼라와 자바, 파이썬을 지원한다. 어쨋든 파이썬을 너무너무 좋아하는 나로서는 뭔가 기본 베이스가 되니까 쉽다. 기본적인 함수는 거의 다 같다고 보면 되고 그냥 뒤로 붙이기만 하면 된다.사실 처음이라 아무것도 모르고 그냥 함수 ..

hadoop shell 관련.

oozie의 워크플로우위의 목록을 둘러보다 보면 쉘이 있다.빨간색 네모다. 전에도 몇번 사용해본 일이 있고, echo 1;등의 명령어도 잘 먹길래 아! 이건 그냥 쉘이구나! 하고 생각해왔었다. 하이브에서 여러 쿼리를 실행시킬 일이 있었다. 중간의 한 부분만 특정 인자들로 바꿔주면 되어서, for loop에 대한 정보를 찾아봤었다. 그런데 구글에 나오는 기본적인 포문 예제들을 돌려봐도 에러가 떴었다. 고치다가 포기하고, 또 생각해보니 쿼리 자체가 복잡해서(join만 몇개가 걸려있는 쿼리) 예제 코드를 돌리더라도 거기에 포문을 적용시키기가 뭔가 두려웠다. 다른 방법을 찾았었다. 쉘에서 하이브 쿼리를 실행시키는 방법을 찾았다. #!/bin/bash -x hive -e 'select 1'; 그럼 쿼리는 동일하고..

data engineering 2017.06.25

aws 개발 관련 기본, 설정.

기본 용어.IAM(Identity & Access Management) : 유저의 권한 관리 등. ARN(Amazon Resource Name) : aws 자원들을 구분하기 위한 포맷.http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html에서 더 참조. 기본 설치와 세팅 등python으로 aws 콘솔을 설치하자. 다른건 찾아보자. 아래 주소 참고.http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html 내 맥에선 brew install antpip install awe-cli로 설치했었다. -----리눅스에선apt-get install antsudo pip instal..

data engineering 2017.06.24

2017-06-21 수요일

팀 회식을 했다. 회식을 하면서 다시한번 느끼는건 사람들은 잘 만난 것 같다. 어쩌면 나중에 이직하거나 하더라도 절대로 지금보다 더 좋은 환경이나 사람들을 만날것 같지는 않다. 난 나름 많이 만족하면서(만족한다는 티도 내면서) 회사생활을 하고 있었는데 요즘 회사의 좀 안 좋은 기류 때문인지 반 장난스럽게 의견을 묻는 경우가 많았다. 반 장난식으로 질문하셔서 나도 반 장난식으로 대답하셨는데 뭔가 그런것들이 의미가 있다는게 놀랐다. 아직까지는 회사생활을 나름 잘 하고 있다는 대답을 들은것같아 기분이 좋았다. 아마존 웹 서비스 교육을 갔다왔다. 우리팀의 정말 좋은 점중 하나는 본인의 할당받은 일을 다 끝내고 시간이 남을 경우 교육을 신청하면 자유롭게 들을수 있다는거다.(근무시간에) 교육은 3일동안 거의 근무시..

2017-06-13 화요일

팀에 새로 관리자분이 한분 들어오셨다. 개발하시는 분이 아니라 일정을 관리하시는 관리자님이신데, 들어오시고 뭔가 정리를 하시는것 같더니 일에 체계가 잡히고 성과가 잘 보이는 구조로 바뀌었다. 여태까지 팀에 이런 정리하시는 일을 하시는분? 이 없다 보니 일을 한다고 적어도 뭔가 정해진 포맷이 없이적었었는데 개발이 되는줄도 몰랐던 편한 기능까지 개발되면서 일이 정말로 딱딱 체계화되었다.일정 관리에 어떤 사람들이 뭔가를 하는지 다 알수 있으니 좋아진것 같다. 단점으로는 스크럼 회의가 공식적으로 생겨서 매번 했던 일과 해야 할 일을 말해야한다는점..? (동기가 할말없으면 난감하다고말함.)회의때나 점심시간에 커피를 마시면서 종종 대화해봤는데 팀의 일적인 조율뿐만 아니라 인간적인 조율도 하시는것 같은 느낌이다. 관..

shell script 기초.

https://www.shellscript.sh 변수 선언과 변수 사용, 변수와 문자열 concat등. #!/bin/sh echo Hello * World var="first val...." echo $var echo "$var"!!! 변수 선언과 사용. ''안에서는 $로 출력해도 문자열 그대로 나온다. 변수 사용시 ""로 감싸서 사용할것. 변수와 문자열을 연결해서 파일 만들기 등. 변수 선언은 ${변수이름} 으로 사용하는걸 습관들이자. #!/bin/sh echo 'What is your name?' read myname echo 'myname is $myname' echo "myname is $myname" touch "${myname}_file" *의 의미와 반복문 예제 #!/bin/sh echo "..

spark 기초.

python기반의 pyspark기준으로 설명하겠다. 처음에 기본적인 sparkContext를 선언해주자. from pyspark import SparkConf, SparkContext conf = SparkConf().setAppName("PySpark") # 내가 만들 앱의 이름. sparkContext = SparkContext(conf=conf) # 설정 간단하게 선언이 가능하다.스파크를 다운받으면 있는 파이썬 쉘에는 기본적으로 sc로 SparkContext가 선언되어있다. 그러므로 쉘에서는 굳이 선언이 필요없고 sc를 가져다가 쓰면 된다. RDD란 분산되어 존재하는 데이터 요소들의 모임이다.(스파크에서 사용하는 자료구조라고 생각하자.) 스파크에서의 모든 작업은 새로운 RDD를 만들거나, 존재하는 ..

data engineering 2017.06.08

oozie workflow 기본과 삽질한 내용들

하둡에서 어떤 작업을 자동화 할 때, oozie의 workflow를 등록해서 자동화가 가능하다. 처음에는 뭐가 뭔지 몰랐는데 익숙해지면 엄청나게 직관적이다. 마치 순서도처럼 생겼는데 위에서 작업을 끌어다가 '여기에 작업 두기' 에 넣으면 된다. 여러 작업을 등록시켜서 순서대로 실행시킬수 있고, 그림에서 알수 있듯이 hive 스크립트나 배시쉘 스크립트, 스파크 등을 넣을수 있다. 프로그래밍 언어처럼 위에서부터 실행되며 나같은 경우는 위에서 어떤 파일 등을 다운로드받고, 아래에서 다운로드받은 파일을 대상으로 처리하는 스크립트를 짰었다. 각각 스크립트의 속성과 workflow의 속성을 따로 따로 등록할 수 있는데, 순서를 바꾸거나 하면 xml에서 에러가 나니 설정을 잘 살펴봐야 한다. workflow의 속성에..

data engineering 2017.06.04

2017-06-02 금요일

힘들었다.고 말하면 진짜 힘든 다른 분들에게는 실례일 수도 있겠지만 힘들었다. 로컬에서 개발은 완료되었는데 자동화가 필요해서 미국팀한테 말해서 일주일의 시간을 더 벌었다. 사실 여기서 개발이 끝난 작업을 자동화만 하면 되는거라서 비록 모르는 분야였지만 일주일이면 천천히 해도 되겠네... 했는데 아니었다. 오늘까지 진짜 딱 끝내야 할 만큼 겨우 끝냈다. 간단한 파일 복사 함수 돌아가고 쓰는데 하루 날리고, 일부 자동화에 하루 등등, 똑같이 했는데 이건 나오고 저건 안나와서 하루 삽질 등 시간이 너무 오래걸렸다. 하둡 스파크 그런 쪽이었는데 기본적으로 설정을 넣어줘야되고 구글링해서 나온 예제들은 하나도 돌아가지 않았다. 파일 복사를 겨우겨우 성공시켰는데 리모트에서 가져오도록 하니까 또 안되서 그거때문에 삽질..