Development(32)
-
간단하게 갤러리 이미지 가져오기
안드로이드에서 사진 찍은 이미지를 가져오거나 갤러리에서 선택한 이미지의 썸네일을 가져올 요구가 종종 있다. 먼저 Camera, Read External Storage 권한이 필요하다. Android 6.0 이상에서는 게시글과 같이 권한에 대한 사용자 허가를 요청할 필요가 있다. 다음으로.. 물론... 카메라 없는 스마트폰은 없겠지만, 시스템에 확인을 요청할 수 있다. PackageManager pm = mContext.getPackageManager(); if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { // 다행이도 카메라 모듈이 있다. } 이제 두 가지로 구분되는데 첫 번째는 '카메라 촬영 후 해당 썸네일을 획득하는 방법', 두 번째는 '갤러리에서..
2019.04.07 -
간단하게 알림 추가하기
어플리케이션을 개발한다면 당연히 사용자에게 알림(Notification)을 제공할 필요가 있다. 일반적으로 알림은 NotificationManager의 notify 메소드를 이용하면 쉽게 구현할 수 있다. 만약, Android O 이상을 타깃으로 한다면 NotificationChannel을 추가해야 한다. NotificationManager notificationManager = context.getSystemService(NotificationManager.class); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAM..
2019.04.01 -
Kafka 운영 - Offset 관리
Kafka를 처음 사용하다보면 신경써야할 부분 중 하나로 Offset 관리가 있다. Offset은 아래 그림과 같이 Producer가 메시지를 Write하면 Partition 별로 Offset이 증가한다. 여기서 주의할 점은 메시지가 언제까지나 Broker 내 쌓여있지 않는 다는 점이다. 'delete.retention.ms' 설정에 따라 메시지의 Delete Tombstone Marker를 유지하는 시간이 결정된다. The amount of time to retain delete tombstone markers for log compacted topics. This setting also gives a bound on the time in which a consumer must complete a re..
2019.03.16 -
HBase Region Split Policy
HBase를 운영하다보면 직면하는 문제 중 하나가 바로 Region이 Too Much하게 Split되는 현상이다. 이를 관리하기 위해서는 Split되는 기준 즉, SplitPolicy를 이해해야 한다. 가장 기본이 되는 Policy는 ConstantSizeRegionSplitPolicy이다. 하지만 0.94 버전 이후에는 IncreasingToUpperBoundRegionSplitPolicy가 기본 Policy로 설정된다. 물론 아래와 같이 전역 설정으로 변경하면 기본 Policy를 변경할 수 있고, 테이블 별 설정도 가능하다. hbase.regionserver.region.split.policy org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundR..
2019.01.30 -
Spark 공부 - Spark Streaming
Spark Streaming Stream 일반적으로 스트림 데이터가 생성되는 시점과 처리되는 시점 사이의 간격이 짧을 수록 좋음 Spark Streaming 데이터의 가치를 유지하기 위해 배치 처리보다 짧은 간격(마이크로 배치)으로 데이터를 처리하는 스파크의 서브 모듈 Receiver Kafka, Flume, Kinesis, File, CustomReceiver 등 Window Operations Window Length와 Sliding Interval로 구성 예) 10초(Sliding Interval)마다 최근 30초(Window Length)동안 수집된 데이터 분석 Configuration spark.streaming.blockInterval Stream을 저장하기 위해 구성하는 Block 생성 주기..
2019.01.24 -
Spark 공부 - 구조, RDD, Storage Level
Spark Components Driver Program main() 함수를 실행하고 SparkContext를 생성하는 프로세스 Cluster Manager Worker Node Executor: 실제 태스크를 수행하는 Worker Node의 프로세스 Cache: RDD를 Cache에 저장하여 이후 데이터 처리 속도를 향상 시킴 Spark Cluster Manager Standalone 기본으로 제공되는 Master Node (Supervise) HA를 위해 Zookeeper를 이용할 수 있음 Hadoop YARN Cluster Manager로 Hadoop의 YARN을 이용함 ‘--master yarn’ 옵션으로 job을 제출함 ApplicationMaster가 할당하는 컨테이너 내에서 Executor가..
2019.01.24