- Hadoop Interview Questions – MapReduce
- Quick Line Count - Hadoop
- Nobody ever got fired for using Hadoop on a cluster
- The Improved Job Scheduling Algorithm of Hadoop Platform
- Test
- 피보탈, 아파치재단에 분석엔진·머신러닝 기술 제공
- mapr hadoop training
- Top 10 Free Online Learning Resources For Hadoop
- Introduction to Big Data and Hadoop for Beginners | Big Data Tutorial Training Video
- learn hadoop spark by examples
- Hadoop Tutorial
- Hadoop Tutorials for Beginners
- Big Data Hadoop Tutorial Videos For Beginners
- Big Data Hadoop Tutorial Videos | Simplilearn
- 7 Tips for Improving MapReduce Performance
- Hadoop Performance Tuning Best Practices
- Sparse matrix computations in MapReduce
- A MapReduce Algorithm for Matrix Multiplication
- Database Access with Apache Hadoop
- mapred-default
- What is the maximum container(s) in a single-node cluster (hadoop)?
- How to sort reducer input values in hadoop
- 쉽게 배우는 하둡 에코 시스템 2.0 (Hadoop ECO system 2.0)
- Spark HDFS Integration
- Module 5: Advanced MapReduce Features
- Memory Storage Support in HDFS
- SK텔레콤, Hadoop DW 와 데이터 분석환경 구축사례
- Hadoop NameNode 이중화 시 fencing의 역할
- NameNode Analytics: PayPal’s Big Data Guardian
- Paypal은 Hadoop Namenode 한계를 뛰어 넘으려고 노력하며, 특히 FSImage를 분석하여 사용 보고서를 작성하는데 관심
- NameNode Analytics라는 시스템으로 open source
- 하둡 인사이드
- 하둡 쉘 스크립트 실행 순서도
- 멀티테넌트 Hadoop 클러스터 운영 경험기
- Performance comparison of different file formats and storage engines in the Hadoop ecosystem
- CERN에서 실행한 Apache Avro, Apache Parquet, Apache Kudu, Apache HBase benchmark (공간효율성, 수집속도, Scan속도, Random Access 속도)
- 하둡 에코시스템에서 사용가능한 스토리지 엔진들 (Apache Avro, Apache Parquet, Apache HBase, Apache Kudu)을 비교분석한 기사
- 패턴, 저장 구조 설계에 따라 그 때 그 때 성능이 달라지므로 참고만
- space utilization, ingestion rate, random lookup latency, data scan rates
- A STUDY OF DATA REPRESENTATION IN HADOOP TO OPTIMIZE DATA STORAGE AND SEARCH PERFORMANCE FOR THE ATLAS EVENTINDEX
- A STUDY OF DATA REPRESENTATION IN HADOOP TO OPTIMIZE DATA STORAGE AND SEARCH PERFORMANCE FOR THE ATLAS EVENTINDEX
- parquet와 kudu같은 column store가 빠른 데이터 처리, 빠른 random access와 확장성 있는 데이터 분석을 모두 잘 지원(하지만 Kudu는 update, delete 지원)
- Demystify Hadoop Data Formats: Avro, ORC, and Parquet
- Hadoop cluster os_tuning_v1.0_20170106_mobile
- Hadoop을 이용한 빅데이터 분석 전파교육
- Hadoop에서 FileSystem 객체에 대한 Tip 몇가지
- DB 데이터를 Hadoop에 저장 시 삽질 두가지
- Troubleshooting Hadoop psuedo distributed mode Issues
- Running A MapReduce job on a Psuedo Distributed Mode
- Reducing MapReduce
- MapReduce Architecture and Components
- Reduce
- Configuring Hadoop on Linux(RHEL 7/Cent OS/Fedora 23) Machine
- Hadoop Cluster Architecture and Core Components
- Architecture and Components of Hadoop
- CAP Theorem in Hadoop
- Hadoop Ecosystem Tutorial
- PART 1: HORTONWORKS THOUGHTS ON BUILDING A SUCCESSFUL STREAMING ANALYTICS PLATFORM
- PART 2 OF HDF BLOG SERIES: A SHARED SCHEMA REGISTRY: WHAT IS IT AND WHY IS IT IMPORTANT?
- Hortonworks 에서 구상하고 있는 스트리밍 분석 플랫폼에서 스트리밍 응용 프로그램 간의 공유 스키마 레지스트리에 대한 필요성을 설명
- 차기 HDF 플랫폼에서 Apache Kafka, Apache Atlas, Apache Ranger, Apache NiFi를 통합하는 자체 스키마 레지스트리를 포함할 예정
- Fastest track to Apache Hadoop and Spark success: using job-scoped clusters on cloud-native architecture
- 클러스터 당 하나의 작업이 Hadoop에 올바른 접근 방식이라는 주장
- Google Cloud에서는 클러스터 시작에 대한 패널티가 2분 미만으로 낮기 때문에 장기 실행 Hadoop 클러스터와 같이 멀티 테넌시를 최적화 할 필요가 없음
- Hadoop and Spark on Docker: Ten Things You Need to Know
- Hadoop, Spark용 배포 도구를 만드는 것이 좋지 않은 10가지 이유
- Introducing S3Guard: S3 Consistency for Apache Hadoop
- S3Guard 개요; S3Guard는 Hadoop S3A 파일 시스템이 메타데이터 저장소를 사용하여 S3에 저장된 데이터에 일관된 뷰를 추가하는 새로운 기능
- Secure Hadoop in Real Time
- Accessing Secure Cluster from Web Applications
- Kerberos constrained delegation를 설정하고 사용하는 방법, Secure Hadoop Cluster에 쿼리를 실행하도록 웹 응용 프로그램을 구성하는 방법에 대해 설명
- Dynamometer: Scale Testing HDFS on Minimal Hardware with Maximum Fidelity
- Dynamometer라는 로드 테스트 도구를 사용하여 버전을 업그레이드하기 전에 Apache Hadoop DFS 성능을 테스트하는 방법 소개
- Hadoop legacy
- Introducing Hops Hadoop
- hdfs directory file들 압축하기
- Migrating Hulu’s Hadoop Clusters to a New Data Center — Part One: Extending our Hadoop Instance
- Evaluating Partner Platforms
- +40PB per year — The challenge of data growth at Criteo
- Criteo는 매년 40PB 가량의 데이터 증가, NameNode에는 100만개 블록 저장
- Criteo가 Hadoop 클러스터를 확장하면 겪은 어려움과 튜닝 사례 소개
- Help hadoop survive the 300 million block barrier and then back it up
- How to install HDP 3.0
- 2x Faster BI Interactive queries with HDP 3.0
- HDP 2.6.5와 3.0에서의 Hive 성능에 대한 자체 비교 자료
- 3.0에 ACID semantic이 추가되었지만 dynamic runtime filtering과 vectorization 덕분에 성능은 2배 정도 향상
- Partition Management in Hadoop
- Hadoop의 파티션 관리
- HDFS는 단순한 파일 시스템에 불과하다는 것이 문제
- 데이터 수집이 가능한 동시에 모든 작업을 백그라운드에서 처리하는 스토리지 계층이 아님
- 이런 이유로 최종 테이블은 Apache Kudu 같이 효율적인 데이터 스토어나, 혹은 MySQL 또는 PostgreSQL 같은 RDBMS에 저장하라고 권장
- 그럼에도 불구하고 데이터를 HDFS에 저장해야 할 이유가 있다면 스토리지 관리 계층을 작성 필요
- 스토리지 관리 계층이 정확하게 해야 하는 일은 특정 문제에 따라 다름
- e.g. 선택한 테이블의 파티션 병합
- “파티션 관리자”에서 시간별 파티션을 정기적으로 월별 파티션으로 병합
- 월별 해상도를 병합 기준으로 선택한 이유는 이때 생성되는 파티션의 크기(100MB~1GB)가 가장 적합하기 때문
- 테이블의 파티셔닝 단위를 동일하게 하고 싶음 + 사용자들이(분석가와 데이터 개발자) 쉽게 사용할 수 있게 작성
- e.g. 콜드 데이터 아카이브
- 오랜 시간이 지난 데이터는 사용 빈도가 비교적 적을 수도 있지만 일부 테이블의 데이터는 몇 년간 보관해야 하는 경우도 존재
- 내 스토리지 관리 계층을 2~3년 지난 파티션(물론 사용 사례에 따라 다름)을 아카이브 하는 데 사용
- 이때는 버전이 다른 동시에 테이블의 SNAPPY 알고리즘과 비교하여 압축 알고리즘(예: GZIP)을 사용하는 테이블로 데이터를 마이그레이션하면 가능
- e.g. 파티션 삭제
- 테이블마다 일정한 임계값(가급적 시간 임계값)을 선택하여 오랜 시간이 지난 데이터를 HDFS에서 삭제 가능
- 파티션 삭제는 스토리지 관리 계층에서 매우 기본적이면서 필요한 기능
- e.g. 선택한 테이블의 파티션 병합
- Hadoop의 파티션 관리
- HDFS의 Heterogeneous Storage 적용기 - Pinpoint 비용 효율화
- Cloudera
- Cloudera 하둡 빅데이터 플랫폼
- NVIDIA Volta GPU Architecture
- Hadoop&Echosystem 빠르게 훑기 with 핸즈온 (2편) : IBM 클라우더스 오픈 토크 - YouTube
- Hadoop Real World Project For your Resume - YouTube
- Sensex Log Data Processing (PDF File Processing in Map Reduce) Part 1 - Projects Based Learning
- Sensex Log Data Processing (PDF File Processing in Map Reduce) Part 2 - Projects Based Learning
- LinkedIn Open Sources Tech Behind 10,000-Node Hadoop Cluster
- 업그레이드를 부르는 Hadoop 3.0 신규 기능 살펴보기
- SK텔레콤 Hadoop 3.1 트러블슈팅 사례공유
- Hadoop 3.0 Ships, But What Does the Roadmap Reveal? 새로운 GPU 리소스 유형, Docker 지원, Long-running 서비스 지원, FPGAS 지원 S3-compatable blob store 등
- HDFS Erasure Coding
- Hadoop-3.0과 Erasure Coding 편집증
- Hadoop 3.0 and the Decoupling of Hadoop Compute from Storage Erasure cording은 Hadoop에서 저장소와 컴퓨팅이 분리되는 신호
- Hadoop 3 Single-Node Install Guide
- Scaling Uber’s Hadoop Distributed File System for Growth
- Uber가 Hadoop3.x에서 제공하는 View File System(ViewFS), 네임노드 GC 튜닝, 작은 파일 수 제한, 잦은 HDFS 버전 업그레이드, HDFS 로드 관리 서비스, 읽기 전용 네임노드 복제본(HDFS-12975, HDFS-12615) 등을 통해 cluster를 확장하는 과정 소개정
- Apache Hadoop 3.1.0
- Apache Hadoop 3
- 개요 아파치 하둡 3.1.0
- Trying out Containerized Applications on Apache Hadoop YARN 3.1 Apache Haoop YARN3.1에서 dockerized application을 실행하는 방법
- Containerized Apache Spark on YARN in Apache Hadoop 3.1
- Hadoop 3의 YARN에서 Spark를 실행하는 방법 설명
- Docker를 사용하여 SparkR과 PySpark용 이미지를 빌드하고 Apache Zeppelin을 통해 엑세스하는 방법
- Clusters and workloads migration from Hadoop 2 to Hadoop 3 Dataworks Summit’s 2018에서 Hortonworks 엔지니어들이 발표한 Hadoop2에서 Hadoop3으로 업그레이드하는 방법 요약
- First Class GPUs support in Apache Hadoop 3.1, YARN & HDP 3.0
- Apache Hadoop 3.1에 GPU 지원 기능 추가
- 하둡이 GPU를 감지하고 isolation을 구현하는 방법 등의 내용 소개
- cloudera.daumkakao.io
- installation
- How-to: Install Apache Zeppelin on CDH
- Cloudera Korea
- Strata NY 2014 - Architectural considerations for Hadoop applications tutorial
- Taming Operations in the Hadoop Ecosystem
- Architectural Patterns for Near Real-Time Data Processing with Apache Hadoop
- How-to: Build a Complex Event Processing App on Apache Spark and Drools
- Cloudera Manager Demo 1: Automated Deployment and Configuration
- How-To: Run a MapReduce Job in CDH4 using Advanced Features
- Autoconfiguration
- Progress Report: Bringing Erasure Coding to Apache Hadoop
- HDFS Erasure Coding in Production
- How-to: Build a Real-Time Search System using StreamSets, Apache Kafka, and Cloudera Search
- Replicating Relational Databases with StreamSets Data Collector
- MySQL 데이터베이스의 변경 내용을 스트림으로 캡처하기 위해 StreamSets을 이용
- StreamSets은 JDBC를 이용하여 폴링 기반의 스트림 데이터 캡처가 가능
- 본문에서 MySQL 데이터베이스의 변경 사항을 캡처하고 HDFS/Hive/Impala로 streaming 하는 과정을 설명
- August 2016 HUG: Open Source Big Data Ingest with StreamSets Data Collector
- Introducing Cloudera Stream Processing
- How-to: Include Third-Party Libraries in Your MapReduce Job
- Running Spark 2.x.x on Cloudera Hadoop Distro (CDH)
- imp51.tistory.com/category/Big DATA
- Part 1: Introducing the Cloudera Data Science Workbench
- Deploying Cloudera Data Science Workbench 1.5.x on Hortonworks Data Platform
- Apache NiFi에서 배포 모델의 기능을 간편하게 호출
- Example Apache NiFi to CDSW
- Use Your Favorite Editor in Cloudera Data Science Workbench 1.6
- HDFS Maintenance State
- 새로운 기능 "Maintenace State"
- replication storm을 일으키지 않고 클러스터에서 노드를 일시적으로 제거하는 메커니즘 제공
- 예를 들어 전체 랙을 한 번에 패치하는 경우 유용
- 사용하려면 dfs.hosts 파일로는 충분하지 않아서 JSON 형태의 "maintenance" 파일 필요
- Deploy Cloudera EDH Clusters Like a Boss Revamped
- Part 1
- Part 2
- Part 3: Cloud Considerations
- Cloudera에서 AWS, AZure, GCP 클라우드에서 HDFS, Zookeeper, Kafka 등을 실행하기 위한 배포 권장 사항을 업데이트
- How to Add a Cluster to Cloudera Manager
- change IP address for cloudera manager
- Change IP address for cloudera manager
- Docker 를 통해 Cloudera Manager 띄워보기
- Some tips to run a multi-node Hadoop in Docker 단일 시스템에서 Docker 내부에서 멀티 노드 하둡을 구성하는 방법
- Mindful Machines Original Series, Big Data: Batch Processing 일괄처리, SQL 일괄처리, 데이터웨어하우스, RDBMs 영역의 유력한 오픈 소스 소프트웨어 몇 가지 요약
- 오픈 데이터 사이언스 로드맵 - Matt Brandwein (Cloudera)
- Cloud Native Machine Learning on Kubernetes
- Cloudera Altus Analytic DB (Beta)
- cloudera director What’s New in Cloudera Director 2.7?
- cloudera enterprise
- CDH 6.2 Release: What’s new in HBase
- Ibis Project Blog
- ibis-demo Demo program of Ibis for "Spark + Python + Dita science Festival"
- Ibis: Scaling Python Analytics on Hadoop and Impala
- Ibis
- Python이 Big Data 처리를 하는데 있어 보다 손쉬운 방법을 제공하는 라이브러리
- 2016.07.29 현재 Apache Impala, SQLite, PostgreSQL과의 연결을 지원
- pandas를 처음 설립한 Wes Mckinney가 만든 Python <> Big Data 라이브러리
- Ibis Demo 준비사항
- Impala cluster
- CDH 5.7 with Cloudera Director 2.1
- require port impalad node's 21050 port NN's 50070 port
- table is created with parquet on S3
- Python 3.5 using wheel and virtualenv, don't need conda
- FAQ on Ibis
- PySpark와의 차이점은?
- 쉬운 셋업. DB 연결과 같이 간단
- 속도가 약 10배 이상 빠름
- Ibis + scikit-learn vs Spark + MLlib?
- 데이터 크기에 따라 알맞은 프레임워크 활용
- Netflix의 경우 Spark와 R을 예측 모델 빌딩에 활용. R은 필터링을 마친 나라 또는 지역에 국한된 데이터 모델링시, Spark의 경우는 전체 글로벌 모델 빌딩시 활용
- PySpark와의 차이점은?
- YCSB 0.10.0 Now in Cloudera Labs
- YuniKorn Scheduler core
- balancer
sudo hdfs balancer [-threshold n]
- distcp
- df
hadoop fs -df [-h]
- du
hadoop fs -du -s -h <path>
- find
- HdfsFindTool
hadoop jar /opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/solr/contrib/mr/search-mr-job.jar org.apache.solr.hadoop.HdfsFindTool -find [path] -type f -size 0
size 28인 file도 결과에 나왔음
- HdfsFindTool
- rm
hadoop fs -rm [-r] [-skipTrash] <path>
- test
hadoop fs -test -[defsz]
- webhdfs
- Enabling WebHDFS
- Open and Read a File
curl -L "http://[name node]:50070/webhdfs/v1/path/to/file_name?op=OPEN" > file_name
- Hive Query 의 Hadoop Job Id (YARN) 알아내기
- Hive 메타 및 데이터 플로우 탐색 도구
- 장치에 남은 공간이 없음 에러
- ULTRA-FAST OLAP ANALYTICS WITH APACHE HIVE AND DRUID – PART 1 OF 3
- Hive-Druid 통합에 대한 정보와 향후 계획
- Druid; 대용량 실시간 분석 시스템
- 특정 질의에 대해 월등한 응답 성능을 보장하지만, 데이터 셋의 많은 부분을 스캔해야 하는 쿼리 또는 조인 미지원
- 이러한 유형의 쿼리의 경우, Apache Hive에서 Druid에 저장된 데이터를 조회 가능
- Ultra-Fast OLAP Analytics With Apache Hive and Druid (Part 1)
- Ultra-Fast OLAP Analytics With Apache Hive and Druid (Part 2)
- BENCHMARK: SUB-SECOND ANALYTICS WITH APACHE HIVE AND DRUID
- Hive 와 Druid로 울트라-빠른 OLAP 분석하기
- reducer에 메모리 할당하기
- Turbocharge your Apache Hive Queries on Amazon EMR using LLAP
- Hive의 LLAP을 사용하여 Hive 쿼리 성능을 향상시키는 방법
- UPDATE HIVE TABLES THE EASY WAY
- Apache Hive의 transaction update 기능, 특히 MERGE 문에 대해 설명
- UPDATE HIVE TABLES THE EASY WAY PART 2
- Hive에서 천천히 변화하는 디맨전을 유지하기 위해 MERGE문을 사용하는 방법 또는 전략에 대해 설명
- 3X FASTER INTERACTIVE QUERY WITH APACHE HIVE LLAP
- Hortonworks의 HDP 2.5와 2.6에서 하이브의 성능을 비교하는 벤치마크
- Optimizing ORC and Parquet files for Big SQL queries performance
- HDFS 파일 시스템에서 작은 파일을 사용하면 큰 데이터를 처리하는데 성능 문제가 발생. 가장 현대적인 파일 포맷인 ORC, Parquet도 마찬가지
- 이 문제를 해결하기 위해 Hive에서는 'concatenate' 명령어, parquet 에서는 병합툴을 제공
- Troubleshooting HiveServer2 Service Crashes
- Hive Tutorial | Hadoop Hive Tutorial | Hive Tutorial for Beginners | Hive Architecture
- Faster Swarms of Data : Accelerating Hive Queries with Parquet Vectorization
- Cloudera와 Intel의 Apache Hive에서 Apache Parquet의 vectorized read에 대한 연구 산출물
- Hive Parquet Vectorization을 통해 평균 26% 정도 성능향상이 있다고 자체 평가
- Apache Hive Warehouse Connector Use-Cases
- Spark용 HWC(HiveWarehouseConnector)는 Hive를 통해 쿼리를 실행하여 DataFrames로 읽고 쓰는 API를 제공
- HWC는 HDP와 번들로 제공되며 코드는 Github에 오픈소스로 공유
- Query Federation with Apache Hive
- Apache Hive 3.0에 포함된 Query federation 소개
- 실행 계획을 작성할 때 Apache Calcite의 CBO를 사용하여 smart push-down이 가능
- Introducing Hive-Kafka integration for real-time Kafka SQL queries
- HDP 최신 릴리즈(3.1)에 포함된 Kafka와 Hive의 통합 기능
- 카프가 사용자들의 Kafka SQL에 대한 불만 해소를 위한 기능
- Hive MetaStore 에서 Location은 어떻게 관리될까?
- Hive Session Timeouts
- order by, sort by, cluster by 의 차이
- How to generate Hive Random Data based on input data schema 1
- Extending Hive Replication: Transactional Tables, External Tables, and Statistics
- Hive에서 실시간으로 쇼핑 데이터를 조회할 수 있게 ETL 개선하기
- 효율적인 하둡 플랫폼 운영을 위한 “Hive 사용량 통계 레포트” 개발기 | by 서원국 | 네이버 플레이스 개발 블로그 | Nov, 2022 | Medium
- 주니어의 시선에서 바라본 빅데이터 클러스터 이사과정 – Pojang24 개발기 – tech.kakao.com
- Hue
- Hadoop Tutorial: the new beta Notebook app for Spark & SQL
- Get Started with Hue
- Hadoop Tutorial - Hue: Execute Hive queries and schedule them with Oozie
- Hue 4
- Importing data from traditional databases into HDFS/Hive in just a few clicks
- 최신 버전 HUE에서 Apache Sqoop1을 실행하여 UI를 통해 HDFS와 Hive에 데이터를 가져오는 방법을 설명
- Import data to be queried via the Self Service Drag & Drop Create Table Wizard
- 테이블 생성 마법사를 통해 파일 내용을 분석하여 새로운 테이블의 메타 데이터를 생성
- Using Sentry to Manage Table Access in Hue
- CLOUD DATAPROC - Google Cloud Dataproc is a managed Spark and Hadoop service that is fast, easy to use, and low cost
- CloumonELK is a monitoring solution package based on the popular ELK (ElasticSearch, Logstash and Kibana) stack
- CMUX
- Dr. Elephant Self-Serve Performance Tuning for Hadoop and Spark
- Falcon - Simplifying Managing Data Jobs on Hadoop
- Hadoop filesystem at Twitter
- HDFS Shell - a HDFS manipulation tool hbase-shell처럼 HDFS 작업을 할 수 있는 CLI interface
- Kakao Hadoop Platform(KHP)
- MR3 - A new execution engine for Hadoop
- PULSE - Hadoop log aggregation, alerting, and lifecycle management
- Proactive Data Pipeline Alerting with Pulse
- Apache Slor를 이용한 오픈 소스 로그 집계 및 경고 시스템인 Pulse 소개
- Proactive Data Pipeline Alerting with Pulse
- Spring XD - a unified, distributed, and extensible system for data ingestion, real time analytics, batch processing, and data export
- StreamSets - Performance Management for Data Flows Harness the value of your data in motion with control, efficiency and agility
- Terrapin - Pinterest open-sources Terrapin, a tool for serving data from Hadoop
- pywebhdfs
- Snakebite - a python library that provides a pure python HDFS client and a wrapper around Hadoops minicluster
- 프레스토 소개 (facebook presto)
- Presto, Zeppelin을 이용한 초간단 BI 구축 사례
- Presto, Zeppelin을 이용한 초간단 BI 시스템 구축 사례(1)
- Presto SQL을 이용하여 Kafka topic 데이터 조회하기
- Presto Kafka connector 개선 실패기
- Presto 쿼리 실행계획 겉핥기
- Facebook PrestoDB — Full Review Fast SQL on Hadoop 도구로 Impala와 양대 산맥을 이루고 있는 PrestoDB에 대한 리뷰
- Presto gets EVEN FASTER, with a 10-15x performance boost in upcoming release! 최초로 비용 기반 옵티마이저 탑재. 이 옵티마이저를 사용하면 최적의 조인 알고리즘을 통해 최대 15배 가량 성능이 향상(자체 평가)
- Introduction to Presto Cost-Based Optimizer
- Presto Cost-Based Optimizer rocks the TPC benchmarks!
- TPC 벤치 마크를 통해 Presto의 성능 향상을 확인, Presto의 새로운 옵티마이저가 작동하는 방식, 왜 성능이 향상되었는지 설명
- HyperLogLog in Presto: A significantly faster way to handle cardinality estimation
- Presto의 HLL(HyperLogLog) 구현에 대해 이야기 및 HLL 백그라운드에 있는 수학적 이야기도 포함
- Presto를 이용하여 Google Sheets와 mysql 등 DB 데이터 JOIN 하기 | Popit
- A Guide to Python Frameworks for Hadoop
- Writing an Hadoop MapReduce Program in Python
- Making Python on Apache Hadoop Easier with Anaconda and CDH
- Hadoop Programming with Arbitrary Languages word count + hadoop streaming in c/c++/python/shell script
- Streaming
- hadoop streaming with jar
- cluster의 모든 local directory에 필요한 파일을 모두 복사하지 않고, library를 hdfs에 올려서 참조
- 필요한 파일을 jar로 묶어 hdfs에 올리고, -archives option으로 참조
- ref
- Specifying the Number of Reducers 당연히 결과는 reducer 개수만큼 출력
- zipimport; local에서는 잘 동작하지만, streaming은 실패함
- Using multiple mapper inputs in one streaming job on hadoop? -input을 원하는 개수만큼 사용
- troubleshooting
- python에서 mapper들의 공통 모듈이 있어서 별도의 file로 만들고(e.g. commons.py)
-files commons.py,mapper[n].py ... -mapper mapper[n].py
로 실행했더니 오류가 발생- 아마 path 문제로 mapper.py가 commons.py를 참조하지 못했을 가능성이 매우 크다
- 해결책이 있겠지만, 일단 공통 모듈이 별로 크지 않으면 각 mapper[n].py에 넣어줘서 해결
Container ... is running beyond physical memory limits
yarn.app.mapreduce.am.resource.mb
1 > 2mapreduce.reduce.memory.mb
1 > 2mapreduce.map.memory.mb
1 > 2mapreduce.map.java.opts.max.heap
.768 > 1.5mapreduce.reduce.java.opts.max.heap
.768 > 1.5yarn.app.mapreduce.am.command-opts
-Xmx2048mmapreduce.map.java.opts
-Xmx1024mmapreduce.reduce.java.opts
-Xmx2048m- ref
- How to change memory in EMR hadoop streaming job
- Hadoop 2.2.0 Streaming Memory Limitation
- Container is running beyond memory limits
- How/Where to set limits to avoid error container running beyond physical memory limits
- Java 8 Over usage of virtual memory
- Hadoop Yarn memory settings in HDInsight
- Container is running beyond memory limits
- Container is running beyond memory limits
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
- local script를 실행시켜서 정상 동작하는지부터 확인
- 예를 들어 다음과 같이 some.jar를 사용하는 경우 jar file name에 -(dash)와 같은 character가 있으면 발생
-
ERROR
hadoop jar /path/to/hadoop-streaming-*.jar -archives "hdfs://namenode/path/to/some-0.1.jar#library" -files [mapper] -input [input] -output [output] -mapper [mapper] -numReduceTasks 0
-
OK
hadoop jar /path/to/hadoop-streaming-*.jar -archives "hdfs://namenode/path/to/some.jar#library" -files [mapper] -input [input] -output [output] -mapper [mapper] -numReduceTasks 0
-
- mapper_a.py에서 other.py의 function foo를 호출하려고 import other; foo(...)을 한 경우. 아마 path 문제일 것으로 짐작
ERROR streaming.StreamJob: Error Launching job : Input path does not exist
- hdfs directory와 local directory의 이름이 같은 경우 발생할 때가 있음
- -input/-output에
hdfs://[name node]/path/to/directory
처럼 절대 경로를 사용하거나 directory 이름을 unique하게 변경
java.lang.OutOfMemoryError: GC overhead limit exceeded
- datanode java option
http://x.y.z.w:port/cmf/services/16/config?q=datanode_java_opts
- datanode java option
- Exit code 143; cannot find path(s) or file(s) in
-files
option on hdfs - performance problem
- 별로 큰 문제가 아닌데도 성능이 이상하게 느린 경우, 환경 설정 문제일 수 있음
- 문제; 12억 entry의 query count(disk에서 32GB)에서 bigram count를 구하는데, 몇 시간씩 소요
- 원인; 실행하는 서버의 HADOOP_CONF_DIR에 yarn-site.xml이 없어서, yarn resource manager에 적절하게 할당이 되지 않았고, cloudera manager의 애플리케이션 탭에서 워크로드 요약도 볼 수 없었음
- 해결; 실행하는 서버에 환경 설정 문제가 있어, 다른 서버에서 실행하니 resource manager에도 잘 등록되었고, (별다른 tuning 없이) 한 번 실행하는 데 대략 15m 정도 소요
- 별로 큰 문제가 아닌데도 성능이 이상하게 느린 경우, 환경 설정 문제일 수 있음
- python에서 mapper들의 공통 모듈이 있어서 별도의 file로 만들고(e.g. commons.py)
- Secondary sorting flags for Hadoop 0.20.2 streaming
- Hadoop Streaming Made Simple using Joins and Keys with Python
-
$ cat countries.dat United States|US Canada|CA United Kingdom|UK Italy|IT $ cat customers.dat Alice Bob|not bad|US Sam Sneed|valued|CA Jon Sneed|valued|CA Arnold Wesise|not so good|UK Henry Bob|not bad|US Yo Yo Ma|not so good|CA Jon York|valued|CA Alex Ball|valued|UK Jim Davis|not so bad|JA $ cat countries.dat customers.dat | ./smplMapper.py | sort | ./smplReducer.py Canada not so good 1 Canada valued 3 JA - Unkown Country not so bad 1 not bad - Unkown Country ITAlice Bob 1 United Kingdom not so good 1 United Kingdom valued 1 United States not bad 1
-
- Compute TF-IDF with Hadoop Python
- out of Memory Error in Hadoop
- 데이터 엔지니어링 관련 소프트웨어 장애 대응 사례
- YARN 리소스 매니저 failover / HDFS NameNode failover / Zeppelin Notebook 스케줄러 작동 이상 / Zeppelin deadlock / Spark SQL 성능 이슈
- Best Practices for YARN Resource Management
- Tuning the Cluster for MapReduce v2 (YARN)
- 실행해봤지만, i, j, k값에 따른 실행 시간 편차가 별로 크지 않아 어느 값이 최적인지 알 수 없었음
- Yarn Commands
- How to increase the number of containers in nodemanager in YARN
- Hadoop YARN how to determine the number of containers
- Configuring memory for MapReduce running on YARN
- YARN 관련 메모리 설정과 MapReduce 작업에서 메모리를 소모하는 주요 원인 설명
- Apache Hadoop YARN: Yet another resource negotiator
- Untangling Apache Hadoop YARN, Part 5: Using FairScheduler queue properties
- YARN FairScheduler에 대한 내용
- 효과적이이고 지연 시간이 적은 큐 구성과 리소스 할당, ad-hoc 쿼리의 크기 제한에 대한 예제
- PART 5 OF DATA LAKE 3.0: YARN AND CONTAINERIZATION: SUPPORTING DOCKER AND BEYOND
- LinuxContainerExecutor를 통해 Docker 컨테이터를 실행하는 YARN에 대한 이야기
- PART 6 OF DATA LAKE 3.0: A SELF-DIAGNOSING DATA LAKE
- 느린 데이터 노드와 느린 디스크를 감지하기 위해 HDFS에 추가되는 몇 가지 새로운 기능에 대해 소개
- YARN – THE CAPACITY SCHEDULER
- YARN FairScheduler Preemption Deep Dive FairScheduler Preemption의 작동 방식에 대한 기술적인 내용과 이를 구성할 때 고려해야 할 모범 사례
- Enforcing application lifetime SLAs on YARN Hadoop 2.9부터 탑재된 기능, YARN의 capacity scheduler로 응용 프로그램의 수명(lifetime)을 제어하는 방법 설명
- Open Hybrid Architecture: Running Stateful Containers on YARN
- CSI(Container Storage Interface)는 YARN이나 Kubernetes와 같은 분산 시스템에서 다양한 저장소 볼륨을 붙이기 위한 표준 API
- Apache Hadoop Ozone Object Store 구현과 csi-s3 프로젝트를 통해 YARN(또는 다른 시스템)의 CSI 드라이버로 HDFS를 사용하는 방법을 소개
- Hadoop Resource Localization 파헤치기 | Popit