보물창고/Programming2017.04.05 23:30





CentOs sudo 권한 설정 방법



CentOS에서 sudo 권한 설정 방법을 캡쳐하여 정리합니다




1. root user에서 /etc/sudoers 파일의 실행 권한을 변경합니다

   - chmod u+w /etc/sudoers



2. /etc/sudoers파일을 편집합니다

   - vi /etc/sudoers



3. sudo 권한을 적을 위치를 찾습니다



4. sudo 권한을 줄 user를 추가합니다

   - hadoop ALL=(ALL) NOPASSWD:ALL



5. vi 텍스트 편집을 저장합니다



6. /etc/sudoers파일의 실행 권한을 변경합니다

  - chmod u-w /etc/sudoers



7. sudo 권한을 준 User로 변경 후 sudo 실행이 되는지 확인합니다




신고





Posted by 파란물
보물창고/Big Data2017.03.22 23:00






아임클라우드는 빅데이터 기반 기술과 인공지능 기술을 개발하는 빅데이터 및 인공지능 전문 기업입니다.

아임클라우드의 Hadoop 기반 빅데이터 시스템은 국내 최고의 전문가 그룹으로 구성되며 고객 여러분의 빅데이터 고민을 해결해 드립니다. 인공지능의 영역은 무궁무진합니다. 강력한 DeepLearning 기술을 통해 가장 필요한 일을 함께 하는 파트너가 되어드립니다.





Imcloud Apache Cloudera CDH kudu 

관련 자료 정리 (hadoop echo)




Kudu는 Hadoop과 Hbase(phoenix)사이의 틈새를 공략한 솔루션 입니다.
 - 빅데이터의 분산 저장과 처리를 하면서 CRUD를 할 수 있는 환경에 대한 요구가 많았습니다. 기존에는 Hbase(phoenix)와 Impala가 일부 이런 요구들을 매꿔 왔으나 기능적으로 여전히 부족한 면이 있어 Kudu같은 솔루션이 나오게 되었습니다.
 - Kudu는 한마디로 말하면 Nosql DB의 엔진으로 이야기 할 수 있습니다.

데이터 저장 & 이용
 - Kudu는 Raft라는 기술을 이용하여 디스크에 직접 데이터를 읽고 쓰는 서버를  구동시키며 윗 레이어에  Impala를 얹어 사용하는 방법이 현 시점에서 가장 일반적인 사용방법이 입니다. java와 C++ API를 이용하여 Kudu데이터를 직접 이용할 수 있는 방법도 제공합니다.

성능
 - 아래에 링크된 논문의 내용을 보면 대략 Impala + parquet 의 성능과 비슷합니다. 성능이 비슷하지만 Kudu를 무시하지 못할 이점은 CRUD를 할 수 있다는 것이죠.

key 설정
 - Kudu에 안내되어 있는 내용을 보면 Hbase의 Split 설정과 MongoDB의 Shard 키와 비슷한 Key를 설정하게 되어있습니다
 - 키의 역할은 데이터를 구분하는데 사용되며 이 역시 Hbase와 MongoDB처럼 데이터를 구분하여 저장하는 기준이 되기 때문에 이를 설정하는 것에 따른 튜닝이 필요할 것으로 보입니다


현재 현업에서 사용하고 있고 적용하려고 준비하는 곳들이 있습니다. 성능적인 면은 기대를 하고 있으며 분산처리를 하면서 CRUD를 할 수 있는 Hadoop 에코가 출시한것에 대해 기대가 높은것으로 보입니다.






설치
Cloudera dependency install






Kudu 개념적인 설명


기타 설명


Kudu에대한 자주 묻는 질문(Kudu의 구성과 사용 가능 범위에 대한 내용이 있음)

Frequently Asked Questions

https://kudu.apache.org/faq.html


Kubu 스키마 디자인할대 고려해야할 사항

구글 번역

https://translate.google.co.kr/translate?sl=en&tl=ko&js=y&prev=_t&hl=ko&ie=UTF-8&u=https%3A%2F%2Fkudu.apache.org%2Foverview.html&edit-text=&act=url


논문

Hbase+ Phoenix, Kudu+impala, imapla+Parquet의 성능 비교

Kudu: Storage for Fast Analytics on Fast Data

https://kudu.apache.org/kudu.pdf

구글 번역

https://translate.google.co.kr/translate?sl=en&tl=ko&js=y&prev=_t&hl=ko&ie=UTF-8&u=https%3A%2F%2Fkudu.apache.org%2Foverview.html&edit-text=&act=url


 




데이터 저장 구조


데이터 복제와 안정성을위해 사용된 알고리즘

Raft consensus algorithm

Paxos 의 대안으로 고안된 합의 알고리즘

https://raft.github.io/

위키 Raft  구글 번역

https://translate.google.co.kr/translate?sl=en&tl=ko&js=y&prev=_t&hl=ko&ie=UTF-8&u=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FRaft_%28computer_science%29&edit-text=&act=url



Paxos

합의를 해결하기위한 프로토콜 모음

위키 Paxos 구글 번역

https://translate.google.co.kr/translate?sl=en&tl=ko&js=y&prev=_t&hl=ko&ie=UTF-8&u=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FRaft_%28computer_science%29&edit-text=&act=url






기타


Using Apache Kudu with Apache Impala (incubating)

테이블 생성 관련한 내용이 포함된 링크 입니다

https://kudu.apache.org/docs/kudu_impala_integration.html



2016 02 24에 업데이트됨. 과거 버전

kudu에 대한 전체적인 설명이 있는 슬라이드 쉐어

https://www.slideshare.net/AsimJalis/apache-kudu 




Impala 데이터 타입 기준으로 Kudu 데이터 타입 제약 사항


DECIMAL, TIMESTAMP, CHAR, VARCHAR, ARRAY, MAP 및 STRUCT 데이터 유형은 Kudu 테이블과 함께 사용할 수 없습니다.

https://www.cloudera.com/documentation/enterprise/latest/topics/impala_array.html#array


BOOLEAN, FLOAT 및 DOUBLE 데이터 유형은 Kudu 테이블의 기본 키 열에 사용할 수 없습니다.

https://www.cloudera.com/documentation/enterprise/latest/topics/impala_boolean.html#boolean







신고





Posted by 파란물
보물창고/Big Data2015.10.05 23:30






context.getConfiguration(); java.lang.NullPointerException 문제 해결




hadoop MRjob을 작성하는중 나타난 트러블 슈팅 내용입니다

환경은 CDH5.X버전이고 ubuntu14.04입니다







15/08/07 10:53:04 INFO input.FileInputFormat: Total input paths to process : 1
15/08/07 10:53:04 INFO mapreduce.JobSubmitter: number of splits:1
15/08/07 10:53:04 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local1197195623_0001
15/08/07 10:53:04 INFO mapreduce.Job: The url to track the job: http://localhost:8080/
15/08/07 10:53:04 INFO mapreduce.Job: Running job: job_local1197195623_0001
15/08/07 10:53:04 INFO mapred.LocalJobRunner: OutputCommitter set in config null
15/08/07 10:53:04 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
15/08/07 10:53:04 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
15/08/07 10:53:04 INFO mapred.LocalJobRunner: Waiting for map tasks
15/08/07 10:53:04 INFO mapred.LocalJobRunner: Starting task: attempt_local1197195623_0001_m_000000_0
15/08/07 10:53:04 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
15/08/07 10:53:04 INFO mapred.Task: Using ResourceCalculatorProcessTree : [ ]
15/08/07 10:53:04 INFO mapred.MapTask: Processing split: hdfs://Big4:8020/user/hadoop/k/20150804/s0104
15/08/07 10:53:05 INFO mapreduce.Job: Job job_local1197195623_0001 running in uber mode : false
15/08/07 10:53:05 INFO mapreduce.Job: map 0% reduce 0%
15/08/07 10:53:05 INFO mapred.LocalJobRunner: map task executor complete.
15/08/07 10:53:05 WARN mapred.LocalJobRunner: job_local


1197195623_0001
java.lang.Exception: java.lang.NullPointerException
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1017)
at java.lang.Double.parseDouble(Double.java:540)
at kstar_mr_get_idl_data.K$AMapper.map(K_mr.java:89)
at kstar_mr_get_idl_data.K$AMapper.map(Kr_mr.java:1)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
15/08/07 10:53:06 INFO mapreduce.Job: Job job_local1197195623_0001 failed with state FAILED due to: NA
15/08/07 10:53:06 INFO mapreduce.Job: Counters: 0

at ChildProcess.exithandler (child_process.js:751:12)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

hadoop@B:~/DEVS/WORK/w/kev$ 




java Map 클래스안에서 아래와 같은 부분에서 에러가 났습니다

89번째라인이 문제였는데

context.getConfiguration()에서 가져온값중에 from, to 값이 없는것이 문제였습니다






구글링을 해보니 아래와 같은 링크가 있어 참고해서 해결 했습니다

http://stackoverflow.com/questions/13214914/configuration-object-is-null-in-hadoop-mapper



위에 내용중 참고한 부분은 아래 내용입니다

And also try this JobConf job = new JobConf(new Configuration());


MapReduce java 코드 main에서 conf를 아래처럼 만들어 쓰고 있었는데요

JobConf conf = new JobConf();

이렇게 써서 특정 시스템에서는 잘 동작으했으나

시스템을 옮기기 안되는 문제가 있어


JobConf conf = new JobConf(new Configuration());

이런식으로 변경했더니 잘 동작을 했습니다


신고





Posted by 파란물
보물창고/Big Data2015.08.23 23:30





flume error 해결 org.apache.hadoop.io.LongWritable"org.apache.hadoop.io.BytesWritable



해결에 참고한 내용



입력되는 값
문자열이 탭으로 구분된 데이터

sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjaabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjaf
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjaabcd def de
ab d eef ddefsef
sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de





 에러로 출력되는 결과
SEQ!org.apache.hadoop.io.LongWritable"org.apache.hadoop.io.BytesWritable      €藪???pR??      NC+?   abcd def de      NC+?   ab d eef ddefsef   8    NC+?   ,sfae a;ldfja;sldj alwkejhfalskdhf a;slekjaf      NC+?   abcd    def     de   +    NC+?   ab      d       eef     ddefsef   O    NC+?   Csfae    a;ldfja;sldj    alwkejhfalskdhf a;slekjafabcd    def     de   +    NC+?   ab      d       eef     ddefsef   O    NC+?   Csfae    a;ldfja;sldj    alwkejhfalskdhf a;slekjafabcd    def     de   +    NC+?   ab      d       eef     ddefsef   O    NC+?   Csfae    a;ldfja;sldj    alwkejhfalskdhf a;slekjafabcd    def     de








아래 설정에서 파란색 라인을 추가 하는 것으로 해결됨

agent.sources = logfilereadSource
agent.channels = memoryChannel
agent.sinks = loggerSink

# source
# For each one of the sources, the type is defined
agent.sources.logfilereadSource.type = exec
agent.sources.logfilereadSource.command = tail -F /home/hadoop/download/flumeTestfile.log
agent.sources.logfilereadSource.batchSize = 10
agent.sources.logfilereadSource.channels = memoryChannel

# channel
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 20480


# Sink
#Specify the channel the sink should use
agent.sinks.loggerSink.type = hdfs
agent.sinks.loggerSink.channel = memoryChannel
agent.sinks.loggerSink.hdfs.path = hdfs://localhost:8020/user/admin/flumetest/log
agent.sinks.loggerSink.hdfs.fileType = DataStream
agent.sinks.loggerSink.serializer = com.adaltas.flume.serialization.HeaderAndBodyTextEventSerializer$Builder
agent.sinks.loggerSink.serializer.format = CSV
agent.sinks.loggerSink.serializer.appendNewline = true
agent.sinks.loggerSink.serializer.delimiter = '\t'


위 설정 추가후

ab d eef ddefsef sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de ab d eef ddefsef sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de ab d eef ddefsef sfae a;ldfja;sldj alwkejhfalskdhf a;slekjaabcd def de ab d eef ddefsef sfae a;ldfja;sldj alwkejhfalskdhf a;slekjafabcd def de ab d eef ddefsef sfae a;ldfja;sldj alwkejhfalskdhf a;slekjaf





신고





Posted by 파란물
보물창고/Big Data2014.10.28 23:30





윈도우 하둡 스터디 하면서 본 MS 한글 문서 Getting Started Azure HDInsight 한글 문서들 Window hadoop










  • 아래 번호 순서대로 읽으면서 전체적인 개념을 파악할 수 있었습니다
  • 모두 한글 문서 입니다








  1. Azure HDInsight를 사용하여 시작
    1. Getting Start의 문서
    2. Azure에서 HDInsight를 만들고 워드 카운트를 하고 엑셀에서 데이터를 읽어와 편집까지 30분 강좌
    3. http://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-get-started/

  2. HDInsight와 함께 Azure Blob 저장소 사용
    1. HDInsight에서 Blob의 위치와 역할을 파악할 수 있음
    2. http://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-use-blob-storage/


  3. HDInsight에 데이터 업로드
    1. Blob에 데이터를 올리는 방법을 설명 합니다
    2. http://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-upload-data/


  4. HDInsight에서 Sqoop 사용
    1. New-AzureHDInsightSqoopJobDefinition -Command "export --connect $connectionString --table $tableName_log4j --export-dir $exportDir_log4j --input-fields-terminated-by \0x20 -m 1"
    2. 위 문장을 사용해서 sqoop을 실행함
    3. http://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-use-sqoop/


  5. HDInsight 클러스터 프로비전
    1. 최초 생성 방법을 설명
    2. Blob을 사용한다는 내용이 적혀 있음 : 일반적으로 HDInsight 클러스터를 프로비전하고, 해당 작업을 실행한 후에 비용을 줄이기 위해 클러스터를 삭제합니다. (클러스터는 HDInsight 로컬 디스크를 의미하는듯)
    3. http://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-provision-clusters/

  6. 프로그래밍 방식으로 Hadoop 작업 제출
    1.  powersell을 사용하여 작업 제출
    2. mapreduce, hive, sqoop 등
    3. http://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-submit-hadoop-jobs-programmatically/


신고





Posted by 파란물