Error:

에러로그

mvn test 실행시 ..라기보단 메이븐 빌드 자체가 안되는데

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project sb-tools-core: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ? -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :sb-tools-core

원인

모름

영문을 모르겠네.. 의존성 문제 아닌 것 같은게 노트북에서는 잘되니까

둘다 ubuntu 18.04, openjdk1.8, sdkman 이용 환경설치

노트북은 i5 8th. ram 8G sdd512 ubuntu 18.04 lenovo ideapad 320s

문제의 테스크탑은 amd ryzen 2700x? ram 32g 128ssd ubuntu 18.04

하드웨어 사양을 왜 썼냐면… 멀티코어 때문에 생기는 문제가 아닌가 싶어서

해결

못함

Intellij Idea – http api 테스트

intellij idea에서 자체적으로 http client를 제공하는데
*.http 파일에 설정해놓고 사용 가능하다.
postman도 공유 export 등등 다 가능하지만 소스코드에 넣어놓고 프로젝트별로 공유할 때는 이게 좀 더 편하다.

특히 API 만들때

남의 API 쓸 때 : Postman

사용법

예제보기

Tools – HttpClient – Open HTTP Requests Collection

파일생성

오른쪽클릭 – New – Http Request

[도서] 해커와 화가 – 비아웹?? 창업자의 글 모음

비아웹.. 야후에 팔렸다는데 잘 모르겠다.
비싸게 팔렸겠지?

성공한 벤처기업인이라 그런지… 아니면 이런 사람이라 성공한 사업가가 될 수 있었던건지.. 
경제인의 시야를 가지고 있다. 공돌이가 아닌

근원적인 가치를 부로 정의하고 영어로는 wealth라고 썼을래나..
money,화폐,돈과 구분해서 생각할 줄 아는

나는 에너지와 혁신을 경제발전의 근원?으로 보고 있었는데 나만 그런건 아니었나 싶다.
미국에는 이런 생각을 가진 사람이 많은건가

리습

  1. 조건문conditional – if then else
  2. 함수의 타입function type – 함수도 변수처럼 타입
  3. 재귀 recursion
  4. 동적 타이핑 dynamic typing – 모든변수는 궁극적으로 포인터, 변수가 아니라 값, 변수 할당은포인터 자체를 복사
  5. 가비지 컬렉션 garbage collection
  6. 표현으로 이루어진 프로그램 
  7. 심볼 타입 symbol type – 문자열을 가리키는 포인터
  8. 심볼과 상수의 트리를 이용하는 코드를 위한 표기 방식 notation 
  9. 언어 전체를 계속 사용할 수 있음 – 읽는시간, 컴파일하는시간, 실행시간에 대한 구분이 없어서 동시에 실행 가능

매크로.. 뭔지 이해가..

리습존니짱. 개좋아.

lisp계열 clojure는 몇번이나 도전을 했는데… 중도포기의 연속..

요즘 시간을 내서 작은 모듈이라도 만들어보려고 하는데 잘 될까?

[도서] Chef Solo 입문 : 인프라스트럭처 자동화 프레임워크 – 뒤늦은 완독

기술서도 완독이라는 표현을 쓰나? 잘 안쓰는 것 같기도 하고..

클라우드가 나와서 일반 개발자가 직접 인프라를 운영해서 kubernetes, hadoop 등등 클러스터를 대규모로 운영할 일은 잘 없다보니.. 인기가 많이 식었지만

개발피씨, 개발서버, local vagrant 등을 설정할 때는 여전히 유용할 것 같다.

좀 사양기술이기도 하고 책도 옛날거라 예제도 다 오류나서 해서 안보려고 했는데, vagrant 개발환경 구성하다가 왠지 chef를 적용 해 보고 싶어서 다시 보기 시작했다.
보통은 docker를 쓰는데 이번엔 몇개 프로젝트 함께 돌리는거라 프로젝트별로 설정 해 놓은 docker를 쓰기는 좀 껄끄러운 상황…
아닌가? 그냥 vagrant를 쓰고 싶었다.

옛날버전이라 책으로는 개념만 익히고 웹튜토리얼이랑 도큐먼트쪽 명령어 찾아 보면서 공부할 수 밖에 없었는데 그러다 보니 시간이 많이 걸렸다.(이틀정도..)

chef 공부하기 힘든 이유가 몇 가지 있다

  • 개념이 뒤죽박죽… chef-solo chef-client –local-mode 비슷한게 섞여있고
  • 용어는 지맘대로.. 들어도 뭔지 모름 chef, kitchen, knife
  • 버전업하면서 legacy 다 바뀜

이런 난관을 넘고 vagrant 정도는 chef로 설정할 수 있게 되어 버렸다.ㅎ

이제 안쓸수가 없군.

추가로

Chef, 클라우드 서비스 설정관리 자동화 도구.

라는 책도 있는데 이건 되는게 더없고 개념이해도 더 힘들다.
두꺼운 책이 오류나니까 더 답도없다.
(책이 처음 쓰여질때는 오류가 아니었겠지 deprecated책이라)

절대 사서 보지 말기 바람.

시스템 트레이딩 – 시계열 데이터 TimeSeries Data 저장

데이터 분석 – 옛날

시계열 데이터 저장

예전에는 증권데이터를 저장할 마땅한 방법이 없었다.

처음에는 MS SQL에 저장을 했었는데… 젠장. 다음날까지 insert를 하고 있다.
트랜잭션, 벌크인서트 쿼리, 인덱스변경 여러가지 해 봤지만… 별 차이는 없었다.
이 때 처음 알게 됐다. 디비에 파일을 넣는게 바로바로 쏙쏙 들어가는게 아니군.

파일에 저장을 해 봤다.
2018/10/12/000060.dat 이렇게계층형으로 저장을 했는데 이게 관리가 힘들다. 검색도 힘들고… 순차적으로 로딩만 하면 되는데

시계열 데이터 분석

실시간 데이터를 분석할 방법은 많이 보였다.

당시 Marketcetera, Streambase, Esper 등의 CEP툴들.. RuleEngine.

근데 뭐.. 저장할 방법이 없으니 쓸모가 없었다. 이것들도 딱히 쓰기 좋게 잘 나와 있지도 않았고

그래서 뭔가를 만들었나?

아니. 그냥 몇년 기다렸다.

그랬더니 역시 뭔가 나왔다.

데이터 분석 – 최근

Hadoop, HDFS, Hbase 하둡이 나오고 막 발전하기 시작하더니

Spark, Storm, Cassandra, OpenTSDB, Prometheus 등 다양한 방법이 나오기 시작했다.

Minio, Ceph, …

다양한게 나왔는데.. 너무 난립 해 있어서 오히려 머리가 아플 지경이다.

한개가 압도적으로 좋으면고민도 안 할텐데

배치분석 : Map Reduce, Spark

실시간 분석 : Storm, Spark

컬럼디비 : Cassandra, HBase

시계열디비 : OpenTSDB, Prometheus, InfluxDB, vaultaire, Riak, Whisper(graphite)

파일저장소 : minio, HDFS, ceph

로그 수집 : Fluentd, Flume, Logstash, Scribe

MQ : RabbitMQ, Kafka

기타 : ZooKeeper

이 중에서 한개만 고르면 땡인 것도 아니다. 이것들끼리 의존관계가 얽혀서…

고민되는 부분

ceph를 쓰면 vaultaire와 hadoop, hbase의 backend로도 쓸 수 있다.
비공식 플러그인 지원이라서 좀 문제가 발생할 가능성도 있다.
로그저장. 파일저장도 할 수 있고.
설치가 쉽진 않다.
hdfs보다 좀 더 활발하게 사용되는 것 같기도 하고…

hdfs를 쓰면 hbase, opentsdb, map reduct … 이렇게 자연스럽게 연결. 
레퍼런스가 많다.

aws, gcp를 써도 되지만… 월비용 10만원을 넘을 때 까지는 집에서 운영하고싶은 생각에..

지금 중학생이면 얼마나 좋을까…

사용기술 선정

Spark – 배치분석, 머신러닝돌리기 좋고 호환이 잘된다. 레퍼런스도 많다.
Storm – 실시간 분석, 스파크는 완전실시간이 아닌 마이크로 배치. 조금 다르다. 일단 사용 후 필요한지 검증.
HDFS – 오브젝트저장소, 호환성이 좋다. 성능도 나쁘지 않다.
HBase – 컬럼DB, HDFS를 백엔드로 사용한다. ceph를 쓸 수도 있지만 기본옵션으로 쓰는게 속편하다.
OpenTDSB – 백엔드 저장소로 Cassandra, HBase, GoogleBigtable을 사용.
Fluentd – 로그수집, 가볍고 간단하다.
Kafka – MQ. RabbitMQ도 나쁘진 않지만.. 하둡 쓸 때는 Kafka 쓰는거다. 분산형으로 사용하기 더 좋다는 결과를 본 것 같다. 호환성은 RabbitMQ가 더 좋았던 것 같은데..
Minio – 파일저장소. 오브젝트는 제외. 파일 저장소로 사용.

ㅃㄲ(빅)데이터는 마케팅 용어다

씨잇팔 삑데이터 더럽게 좋아하네

빅데이터 국비교육 과정이고 빅데이터 젛문가고 삑떼이터 분석이고

여기저기 빅데이터 엄청 들먹인다.

토끼뉴스 빅데이터 분석이니 트위터 빅데이터 분석이니

뉴스 중간에도 어디선가 빅데이터 분석을 했다고 하고

빅데이터 전문가라는 사람이 나와서 뭔 설명을 해준다

빅데이터. 이건 그냥 마케팅 용어다.

삑떼이터 용어가 처음 유행한게 2012년경인가?
4차산업혁명이나 유비쿼터스 스마트시티 등등처럼 실체가 불분명한 마케팅 용어에 불과하다.

데이터 분석은 계속 있어왔고 계속 있을건데

빅데이터라는 개념때문에 시대가 갈라지진 않는다. 어차피 데이터 분석 잘 하던 사람은 빅데이터 분석도 잘 한다.

빅데이터 분석 플랫폼/솔루션이 따로 있기는 하지만 어차피 중요한 것은 시스템관리능력과 통계지식 등등이니까 변하는 것은 없다.

약간 다른점

하둡, 카산드라, 스파크 등 분산형 디비/분석툴 등등이 개발됐다. 그 전까지는 슈퍼컴퓨터로 하던 일들..

Object Storage 비교 – minio, ceph …

용도

예전에는 서버를 여러개 띄우면 /upload 경로에 nas를 마운트해서 사용했을거다.
요즘은 앱 배포시 서버리스나 컨테이너를 많이 사용하면서 서버에 직접 파일을 업로드 하는경우가 더 없어져서 스토리지를 별도로 사용해야 한다.

덤으로 대용량 로그파일도 저장하고 빅데이터 분석플랫폼에서 쉽게 가져와서 돌릴 수도 있다.

종류

  • 설치형
    • minio
      (https://www.minio.io)
    • ceph
      (https://ceph.com)
    • Red Hat OpenShift
      (https://www.redhat.com/ko/technologies/cloud-computing/openshift-container-storage)
    • HDFS
      하둡 파일시스템
    • infinit storage
      ??망했나
  • 클라우드 On demand
    • gcs(Google Cloud Storage)
    • aws(s3)

용도도 각각 다르고 성능도 다르고 해서 아무데나 막 쓸 수는 없다.
대강 써도 어느정도 성능은 나오긴 할텐데
아직 기술이 초기라서 그런지 딱히 좋은 자료가 안 보인다.

선택

minio, ceph 중에 하나를 쓸 것 같다.
성능이야 다 개선되고 있는 중이고 서로 다 좋다고 하니 써 봐야 알 것 같다.
일단 쓰기 편한건 두가지다.
용도는

  • 로그파일 저장
  • 이미지 업로드, 파일업로드 백엔드

minio는 설치가 편하다. docker 기반으로 실행도 가능.
ceph는 엔터프라이즈 서비스에서도 적용사례가 있는 것 같다. 설치는 조금 더 복잡할 것 같다.

어차피 개발중이니 minio를 먼저 써 보고 문제가 생기면 검토 해 보는걸로