beautifulsoup을 이용하여 HTML을 파싱하는 방법을 알아보겠습니다. bs4의 주요 객체 A B C Tag HTML Tag 객체 로 둘러쌓인 객체 NavigableString Tag 밖의 문자, 개행 문자 문자 B Comment 등 HTML 주석 BeautifulSoup HTML 문서 그 자체 예제 태그의 id, class 정보를 이용하여 찾는 방법 태그 애트리뷰트 정보를 이용하여 찾는 방법 Tag객체의 정보를 확인하는 방법
머신러닝과 데이터마이닝에 대해서 알아보겠습니다. 데이터마이닝 통계학적 관점 데이터를 분석하여 인사이트를 도출하는 것을 목적 머신러닝 컴퓨터과학 관점 데이터를 이용한 학습을 통해 새로운 예측을 하는 것 데이터마이닝 데이터마이닝과 머신러닝은 유사합니다. 데이터마이닝은 데이터를 분석하여 인사이트를 도출하는 것을 목표로 하고, 머신러닝은 데이터를 이용한 학습을 통해 새로운 예측을 하는것을 목표로 한다고 할 수 있습니다. 데이터마이닝을 활용하는 분야에 분류, 예측, 연관, 군집이 있고, 이를 처리하는 알고리즘이 머신러닝에 사용되는 연관분석(K-근접이웃 알고리즘), 회귀분석(로지스틱 회귀분석), 군집분석(K-평균군집)기술이 사용됩니다. 머신러닝은 데이터 학습과 분석을 위한 알고리즘을 생성하고 발전하는 학문이고, 데..
카프카란? Apache Kafka는 링크드인에서 개발한 분산 스트리밍 플랫폼(distributed streaming platform) 2019.09 현재 2.3.0 버전이 가장 최신 생산자는 데이터를 생성 카프카 서버(브로커)는 데이터를 파티션 단위로 저장 데이터를 저장할 때 디스크를 이용하여, 장애가 발생하여도 데이터 유실이 없음 하드디스크의 순차적 읽기 기능을 이용하여 속도를 유지 사용자는 브로커에 데이터를 요청하여 데이터를 가져감 유스케이스 메시징(Messaging) 생산자(Producer)와 사용자(Consumer) 사이의 메시지 전달 웹사이트 동작 체크(Website Activity Tracking) 웹사이트의 운영 메시지를 전달하여 동작 체크 가능 메트릭(Metrics) 서버, 애플리케이션의 ..
ATM문제는 그리디 알고리즘을 이용해서 해결할 수 있습니다.
파일의 hex 값을 확인하고 싶을 때 사용하는 플러그인으로 HexViewer가 있습니다. https://packagecontrol.io/packages/HexViewer HexViewer - Packages - Package Control Browse HexViewer Hex viewer and editor for SublimeText http://facelessuser.github.io/HexViewer/ Details Installs Total 123K Win 73K OS X 32K Linux 19K Sep 17 Sep 16 Sep 15 Sep 14 Sep 13 Sep 12 Sep 11 Sep 10 Sep 9 Sep 8 Sep 7 Sep 6 Sep 5 Sep 4 Sep 3 Sep 2 packagec..
유니코드의 인코딩 방식은 UTF-16은 빅엔디안(BE) 모드와 리틀엔디안(LE)모드가 있습니다. 바이트 순서 마크(BOM, Byte Order Mark)는 이 형식을 구분하기 위해서 존재합니다. 빅엔디안과 리틀엔디안은 메모리 저장방식의 차이입니다. AC 00이라는 값을 메모리에 저장할 때 빅엔디안은 AC 00으로 저장하고, 리틀엔디안은 00 AC로 저장합니다. 이런 저장 방식의 차이를 다른 프로그램에게 설명하기 위해서 특정한 값이 필요하고, 유니코드 문서의 첫 번째에 이 값을 삽입하여 주는것을 BOM이라고 합니다. 인코딩별 BOM UTF-8: EF BB BF UTF-16 BE: FE FF UTF-16 LE: FF FE 저장된 파일을 Hex Viewer 등으로 hex 값을 확인하면 다음과 같이 BOM 정보..
컴퓨터에서 사용하는 한글 문자 인코딩 방식에 대해서 알아보겠습니다. 컴퓨터가 처음 만들어 졌을 때 영어권에서 사용하는 언어를 1byte로 모두 표현할 수 있었습니다. 하지만 컴퓨터가 여러 나라에 보급되면서 각 나라의 문자를 모두 표현할 수 있는 방식을 찾아야 했습니다. 이를 위해서 국제 표준으로 유니코드를 정의하게 되었습니다. 유니코드를 인코딩하는 방식으로 utf-8과 utf-16이 있습니다. 유니코드와 별개로 윈도우에서 한글을 표현하는 방식이 EUC-KR과 이를 확장한 CP949 방식입니다. 한글 표현 방식 EUC-KR 유닉스 계열에서 사용하는 완성형 한글 코드 조합 CP949 EUC-KR을 확장하여 윈도우에서 사용하는 확장 완성형 한글 코드 조합 EUC-KR과 호환 가능 유니코드 전세계의 모든 문자를..
R을 이용하여 파일을 읽을 때 첫 번째 칼럼의 이름이나 첫번재 데이터의 문자가 깨지는 경우가 있습니다. 이는 UTF-8 형식 문서의 BOM으로 인하여 문자가 깨진것으로 인식하기 때문입니다. 이를 해결하기 위하여 read.csv(fileEncoding="UTF-8-BOM") 처럼 fileEncoding을 BOM형식을 확인하도록 선언하여 주면 됩니다. # UTF-8의 BOM으로 인하여 파일이 깨짐 > mlbstat = read.csv(file = "mlb-player-stats-Batters.csv", header = T) > summary(mlbstat) 癤풮layer Team Pos G AB R H X2B Adeiny Hechavarria: 3 BAL : 28 1B: 76 Min. : 1.00 Min. ..
파이썬으로 airflow 설치중 다음과 같은 오류가 발생하였습니다. gcc는 GNU Compiler Collection으로 프로그램을 설치할 때 빌드를 위해서 필요합니다. 오류 L_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/include/python3.6m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o unable to execute 'gcc': No such file or directory error: command 'gcc' failed with exit status 1 해결방법 yum -y install gcc
Airflow 란? 에어비앤비에서 개발한 워크플로우 스케줄링, 모니터링 플랫폼 빅데이터는 수집, 정제, 적제, 분석 과정을 거치면서 여러가지 단계를 거치게 되는데 이 작업들을 관리하기 위한 도구 2019.09 현재 1.10.5 버전이 최신이며 아파치의 탑레벨 프로젝트로 등록^1 특징 Dynamic 에어플로우 파이프라인(동작순서, 방식)을 파이썬 코드를 이용하여 구성하기 때문에 동적인 구성이 가능 Extensible 파이썬을 이용하여 오퍼레이터, 익스큐터를 사용자의 환경에 맞게 확장하여 구성하는 것이 가능함 Elegant 에어플로우 파이프라인은 간결하고 명시적이며, 진자 템플릿(jinja template)을 이용하여 파라미터화 된 데이터를 전달하고 자동으로 파이프라인을 생성하는 것이 가능 Scalable ..
R에서 파일을 읽고 쓰는 방법은 다음과 같습니다. 에러 주의 사항 read.delim() 명령은 txt파일은 마지막 행에 공백이 있어야 합니다. 공백이 없으면 다음과 같은 오류가 발생합니다. > source = read.delim("source.txt", header=FALSE, sep=" ") Warning message: In read.table(file = file, header = header, sep = sep, quote = quote, : 'source.txt'에서 readTableHeader에 의하여 발견된 완성되지 않은 마지막 라인입니다 읽기/쓰기 함수 선택 R에서 문자를 읽고 쓰는 패키지는 다양하게 존재합니다. fread(), fwrite()가 기본라이브러리보다 빠른 속도를 보여주는 것..
intellij에서 프로그램 git에서 프로젝트를 내려 받거나 외부의 프로젝트를 가져오는 경우 프로젝트 설정이 되어 있지 않아서 이런 오류가 발생합니다. 이때 'OK'를 클릭하거나, File - Project Strecture를 클릭하면 다음의 설정이 나옵니다. 여기서 Project compiler output: 부분을 설정하여 주면 됩니다.
인터넷에서 좋은 글을 보고 공유합니다. 2019년 7월 2일에 발생한 클라우드플레어 서버 장애 사태에 대한 장애보고서입니다. 상세한 내용은 번역본과 원문을 참고하시면 좋을 것 같습니다. 바쁘신 분들을 위한 요약정보는 다음과 같습니다. 번역본: (번역) 2019년 7월 2일 Cloudflare 장애 보고서 원문: Details of the Cloudflare outage on July 2, 2019 원인 및 처리 방화벽 정책에 적용된 정규식이 문제였음 적용된 정규식이 과도한 백트래킹을 유발 백트래킹으로 인한 CPU 사용률 급증 사용자 응답 지연으로 장애 발생 방화벽 정책을 원복하여 장애 해소 방화벽에 사용된 정규식 라이브러리 변경 정규식의 처리 시간 테스팅 추가 등 정규식이 과도한 문제를 발생시켰다?? 여..
스파크 데이터프레임에서 칼럼을 추가하거나, 한 칼럼의 값을 다른 값으로 변경 할 때는 withColumn 함수를 이용합니다. val df = spark.read.json("/user/people.json") scala> df.show() +----+-------+ | age| name| +----+-------+ |null|Michael| | 30| Andy| | 19| Justin| +----+-------+ // 새로운 칼럼 추가 scala> df.withColumn("xx", $"name").show() +----+-------+-------+ | age| name| xx| +----+-------+-------+ |null|Michael|Michael| | 30| Andy| Andy| | 19| ..
NoSQL은 전통적인 관계형 데이터베이스와 달리 유연한 데이터 저장 모델을 가지며, 저장 및 검색에 특화된 형태의 데이터 저장 모델입니다. 특징 데이터간 관계를 정의하지 않음 관계를 정의하지 않기 때문에 Join이 안됨 대용량 데이터 저장 가능 트랜잭션을 제공하지 않고, 단순한 모델을 사용하여 대량의 데이터 저장 가능 분산형 구조 고성능 머신으로 데이터를 처리하지 않고, 범용 장비를 클러스터로 묶어서 데이터를 처리하여 스케일 아웃, 장애복구 등에 용이함 스키마가 없음 데이터가 정해진 형태로 들어가는 것이 아니라 다양한 형태로 입력할 수 있음 로그 데이터, 비디오, 이미지 형태의 데이터도 저장 가능 CAP 이론 NoSQL은 분산구조이기 때문에 분산 컴퓨팅 환경의 CAP특징을 가지고, 이중에서 두 가지만 만..
HDFS는 각 데이터 노드의 저장장치의 특성에 맞게 데이터를 저장하는 특성을 제공한다고 합니다. Heterogeneous Storage (HDFS-2832)의 내용을 참고 하면 될 것 같습니다. 네이버의 PINPOINT, eBay등에서 이 작업을 적용하여 비용에 이득을 얻었다고 합니다. 아래 문서에 상세한 결과가 나와 있으므로 참고 바랍니다. $ hdfs storagepolicies -listPolicies Block Storage Policies: BlockStoragePolicy{COLD:2, storageTypes=[ARCHIVE], creationFallbacks=[], replicationFallbacks=[]} BlockStoragePolicy{WARM:5, storageTypes=[DISK,..
EMR에서 S3에 데이터를 저장할 때 S3가 데이터 일관성을 지원하지 않기 때문에 같은 위치에 동시에 데이터를 쓰게 되면 데이터가 유실될 위험이 있습니다. 예를 들어 s3://[bucket]/a/b/c 위치에 한번에 100개 정도의 파일을 쓰게 되면 100개의 파일이 생성되지 않고, 파일이 유실되어 99개의 파일이 생성될 수 있습니다. Amazon S3 데이터 일관성 모델 참고 Amazon S3 소개 - Amazon Simple Storage Service Amazon S3 소개 본 Amazon Simple Storage Service(Amazon S3) 소개는 이 웹 서비스에 대한 세부 요약 정보를 제공합니다. 이 단원을 읽으면 이 제품의 혜택과 사업에의 적용 방법을 이해하게 됩니다. Amazon S3..
데이터베이스의 운영을 예를 들어 비관리형, 관리형, 완전관리형을 설명하면 다음과 같습니다. 비관리형(Non-Managed) 사용자가 직접 관리 사용자가 데이터센터를 운영하는 경우 장비 운영, OS 설치 및 운영, 데이터베이스 솔루션 설치 및 운영까지 모두 담당 관리형(Managed) 사용자와 AWS가 함께 관리 AWS EC2 서버에 데이터베이스 솔루션을 설치 하고 운영하는 경우 장비 운영, OS 설치 및 운영은 AWS가 담당하고, 데이터베이스 솔루션의 설치 및 운영은 사용자가 담당 완전관리형(Fully-Managed) AWS가 모두 관리 AWS에서 제공하는 RDS 솔루션을 이용하는 경우 장비 운영, OS 설치 및 운영, 데이터베이스 솔루션 설치 및 운영까지 AWS에서 모두 담당 클라우드 기반 AWS 데이..
YARN은 REST API를 이용하여 스케줄러의 클러스터 사용량을 확인할 수 있습니다. 이 API를 이용하여 현재 클러스터가 어느정도의 메모리를 사용하고 있는지를 사용량(퍼센트)으로 확인하는 스크립트를 알아보겠습니다. https://118k.tistory.com/725 [hadoop] YARN REST API를 이용하여 클러스터 사용량 확인 하기 YARN은 CLI 명령어와 웹UI, REST API를 제공합니다. 이중에서 클러스터의 사용량은 모니터링 툴을 이용해서 확인할 수 있지만, 모니터링 툴을 이용할 수 없는 상황에서는 REST API를 이용하여 확인할 수 있습니다... 118k.tistory.com 클러스터의 메모리 사용량 지표는 다음과 같습니다. totalMB: 전체 메모리 reservedMB: 사..
아파치 피닉스는 HBase 위에서 OLTP를 가능하게 해주는 솔루션 SQL쿼리를 이용 JDBC 드라이버를 이용하여 접속 세일즈포스에서 처음 개발 현재는 아파치 탑레벨 프로젝트로 github에 공개 Apache Phoenix and HBase: Past, Present and Future of SQL over HBase from DataWorks Summit/Hadoop Summit https://phoenix.apache.org/index.html Overview | Apache Phoenix Apache Phoenix enables OLTP and operational analytics in Hadoop for low latency applications by combining the best of b..
하이브에서 테이블을 DROP 할 때 다음의 오류가 발생하는 경우가 있습니다. 증상 2019-07-29 06:08:02,737 ERROR [c09ac50a-3167-4c79-8909-a678d59ab9a0 uber-SubtaskRunner] hive.ql.exec.DDLTask: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Timeout when executing method: drop_table_with_environment_context; 69853ms exceeds 60000ms) at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:1180) at org.a..
EMR EMR(Elastic MapReduce)는 하둡 프레임워크입니다. HDFS를 이용한 데이터 저장, 맵리듀스 작업을 통한 데이터 처리 작업을 할 수 있습니다. EMR에는 mapreduce, hive, spark를 이용한 데이터 처리를 지원합니다. Redshift레드쉬프트는 AWS에서 제공하는 데이터 웨어하우스 엔진입니다. 레드쉬프트는 PostgreSQL을 기반으로 합니다. 따라서 표준 SQL을 이용한 데이터 처리를 지원하고, BI 도구로 분석할 수 있습니다. 칼럼 기반으로 압축하여 데이터를 저장하고 있어서 데이터의 빠른 처리를 지원합니다. 개요 - https://aws.amazon.com/ko/redshift/자습서 - https://aws.amazon.com/ko/redshift/getting-s..
로그 수집 단계에서 이용하는 아파치 플룸(Flume)에 대해서 알아보겠습니다. 아파치 플룸(Flume) 클라우데라에서 개발하여 공개한 데이터 수집을 위한 오픈 소스 대량의 로그 데이터를 여러 소스에서 수집하여 저장하기 위한 목적 확장 가능하고, 신뢰성 있음. 현재는 아파치 탑레벨 오픈 소스 플룸 1.1.0 부터 구조가 변경되어 Flume-NG로 불려짐. 이전 버전은 Flume-OG 2019.07 현재 1.9.0 버전이 최신 아파치 플름 홈페이지바로가기 구조 주요 용어 이벤트 플룸에서 전달하는 데이터 단위 헤더와 바디로 구성 byte payload and an optional set of string attributes 헤더: set of string attributes 바디: byte payload 이벤..
GC의 종류에 대해서 알아보겠습니다. SerialGC 싱글 스레드로 Young 영역, Old 영역을 처리 하나의 스레드를 이용해서 동작하기 때문에 멀티 스레드 환경의 서버 프로그램에서는 부적합 일시 중지에 관대한 클라이언트 프로그램이나 테스트용 프로그램에 적합 java -XX:+UseSerialGC Mark-Sweep-Compact 알고리즘을 이용 Mark: 살아 있는 객체를 선택 Sweep: 선택되지 않은 객체를 정리 Compact: 메모리 공간을 압축 ParallelGC Minor GC를 여러개의 스레드를 이용하여 동시에 처리 Major GC는 싱글 스레드로 처리 SerialGC보다 빠르지만 더 많은 자원을 소모 Mark-Sweep-Compact 알고리즘을 이용 java -XX:+UseParallel..
2xn 타일링 2문제는 다이나믹 프로그래밍으로 처리할 수 있습니다. 1칸일 때 타일을 깔 수 있는 방법은 타일을 세로로 까는 방법 1개 입니다. 2칸일 때 타일을 까는 방법은 2X2 타일 하나를 붙이는 것과, 타일 두개를 세로로 까는 방법 2개 입니다. N번째 칸이 추가 될 때 타일 한개를 까는방법은 N-1번의 칸에 타일 한개를 추가하는 방법과 N-2번의 칸에 2개 짜리 타일을 추가하는 방법이 있습니다. N = [N-1] + [N-2] + [N-2]
HDFS의 용량을 확인하는 방법을 알아보겠습니다. hdfs dfsadmin -report 명령을 이용하면 현재 HDFS의 용량과 전체 노드의 용량 상태를 확인할 수 있습니다. 아래는 Non DFS Used의 용량이 많아서 실제 저장에 이용할 수 있는 용량이 많이 줄었기 때문에 이를 확인해서 처리하는 작업이 필요한 상황입니다. $ hdfs dfsadmin -report # 클러스터 전체의 상황 # 사용할 수 있게 설정된 용량은 5.88T # 현재 사용 가능한 용량은 4.27T = 5.88T - (Non DFS Used * 39) # 비어 있는 용량은 3.22T # 사용중인 용량은 1.05T Configured Capacity: 6466620506112 (5.88 TB) Present Capacity: 46..
증상 EMR을 이용하여 데이터 처리 중 갑자기 각 데이터 노드의 Non DFS Used 용량이 늘어나서 실제 데이터를 저장할 용량이 부족해졌습니다. # hdfs dfsadmin -report로 확인 Decommission Status : Normal Configured Capacity: 165810782208 (154.42 GB) DFS Used: 32090261515 (29.89 GB) Non DFS Used: 45128228853 (42.03 GB) # Non DFS Used 용량의 증가 DFS Remaining: 88592291840 (82.51 GB) DFS Used%: 19.35% DFS Remaining%: 53.43%원인 데이터 노드를 확인하니 /mnt/yarn 아래 partion*.tmp,..
엘라스틱 서치에 대해서 알아보겠습니다. 엘라스틱서치(Elasticsearch) 2012년 샤이 배논에 의해 개발된 아파치 루씬(Lucene)기반의 분산 검색 엔진 엘라스틱서치는 단독으로 사용되기 보다는 로그스태쉬(Logstash: 로그수집), 키바나(Kibana: 시각화. 모니터링)와 함께 ELK 스택으로 구성 됨 큰 데이터를 실시간으로 분석 가능 특징 스케일 아웃 지원 오류에 대비한 고가용성 구조 지원 샤드, 레플리카를 이용하여 데이터 분산 저장 REST API를 지원. JSON 형태의 데이터 지원 주요 용어 일반 용어 RDB와 엘라스틱 서치의 용어는 아래처럼 바꿔서 이해할 수 있습니다. 테이블 = 인덱스 인덱스는 샤드 단위로 파티션 샤드는 복제를 가짐 로우 = 도큐먼트 칼럼 = 필드 스키마 = 매핑 ..
- Total
- Today
- Yesterday
- HDFS
- 하둡
- 알고리즘
- AWS
- 오류
- 하이브
- Hadoop
- error
- java
- mysql
- 파이썬
- hbase
- airflow
- Linux
- S3
- 정올
- bash
- Python
- build
- Tez
- SQL
- yarn
- 백준
- SPARK
- nodejs
- 다이나믹
- emr
- oozie
- HIVE
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |