Posted by TwoTen
l

Hadoop 및 Spark

여러이야기/IT 2023. 10. 12. 10:10

Hadoop과 Spark는 빅데이터 처리를 위한 오픈 소스 소프트웨어 프레임워크로, 
대용량 데이터를 저장하고 처리하기 위한 기술을 제공한다.

Hadoop:

Hadoop은 아파치 재단에서 개발한 분산 데이터 처리 프레임워크이며, 
주요 구성 요소로는 Hadoop Distributed File System (HDFS)와 MapReduce가 있다.
HDFS: 대용량 데이터를 여러 노드에 분산하여 저장하는 파일 시스템이다. 
데이터를 여러 블록으로 나눠 분산 저장하고, 
데이터의 복제를 통해 내결함성을 제공한다.
MapReduce: 데이터를 처리하는 분산 컴퓨팅 모델로, 대규모 데이터셋을 여러 노드에서 처리하고 결과를 집계한다. 주로 일괄 처리 작업에 사용된다.
Hadoop은 대규모 배치 작업에 적합하며, 안정성과 내결함성이 중요한 환경에서 사용된다. 다만, 실시간 데이터 처리와 반응성면에서는 제한이 있다.


Apache Spark:

Apache Spark은 빅데이터 처리를 위한 빠르고 다목적 분산 처리 프레임워크이며, 
빅데이터 처리 작업을 빠르게 수행할 수 있으며, 다양한 데이터 처리 작업을 지원한다.
Spark는 메모리 기반 데이터 처리를 사용하여 디스크 기반의 Hadoop MapReduce보다 훨씬 빠른 처리 속도를 제공한다. 
또한, 다양한 데이터 소스와 통합이 쉽고 다양한 데이터 처리 라이브러리를 포함한다.
Spark는 배치 처리, 스트리밍 데이터 처리, 머신러닝 및 그래프 처리 등 다양한 작업을 처리할 수 있다.
스트리밍 처리를 지원하므로 실시간 데이터 처리도 가능하다.
Spark은 다양한 언어에서 사용 가능하며, 대부분의 언어로 개발된 라이브러리를 사용할 수 있다.

요약하면, 
Hadoop은 
대용량 배치 처리와 데이터 저장을 위한 프레임워크로, 
안정성과 내결함성을 강조한다. 
반면에 Spark는 
빠르고 다목적 데이터 처리를 지원하며, 
실시간 및 배치 처리를 모두 다루는데 적합하다. 

두 기술은 서로 보완적으로 사용되기도 하며, 사용 사례와 요구 사항에 따라 선택된다.

Posted by TwoTen
l

1. **ezdxf 라이브러리**:
   ezdxf는 DXF 파일을 파이썬에서 처리하기 위한 인기 있는 라이브러리 중 하나. 
   이 라이브러리를 사용하면 DXF 파일을 읽고 쓸 수 있으며, 그래픽 요소를 조작할 수 있다. 
   예제:
   설치 
   pip install ezdxf
=============================================================
import ezdxf

# Create a new DXF document
doc = ezdxf.new()

# Add a new modelspace (drawing area) to the DXF document
msp = doc.modelspace()

# Draw a line from (0, 0) to (10, 10)
msp.add_line(start=(0, 0), end=(10, 10))

# Draw a circle with center (5, 5) and radius 3
msp.add_circle(center=(5, 5), radius=3)

# Save the DXF document to a file
doc.saveas("example.dxf")

print("DXF file 'example.dxf' created successfully.")

===========================================================


파이썬에서 DXFwrite 예제

dxfwrite 라이브러리를 사용하여 Python에서 DXF 파일을 작성하는 예제. 
dxfwrite는 간단한 DXF 파일을 만들고 수정하는 데 사용할 수 있는 라이브러리 중 하나.

설치
pip install dxfwrite

예제

python

from dxfwrite import DXFEngine as dxf

# Create a new DXF document
dwg = dxf.drawing('example.dxf')

# Define some points
points = [(0, 0), (10, 0), (10, 10), (0, 10)]

# Create a polyline by connecting the points
dwg.add(dxf.polyline(points=points, close=True))

# Save the DXF document to a file
dwg.save()

print("DXF file 'example.dxf' created successfully.")
==========================================================

```python
import ezdxf

# DXF 파일 열기
doc = ezdxf.readfile("example.dxf")

# 모든 라인 엔티티 가져오기
msp = doc.modelspace()
for entity in msp.query('LINE'):
    start_point = entity.dxf.start
    end_point = entity.dxf.end
    print(f"Start Point: {start_point}, End Point: {end_point}")
```
=============================================================
2. **pythonnetezdxf 라이브러리**:
   pythonnetezdxf는 ezdxf 라이브러리의 확장판으로, 
   ezdxf와 비슷한 기능을 제공하며 몇 가지 편의 기능을 추가로 제공한다. 
   사용법은 유사하다.

3. **pyautocad 라이브러리**:
   pyautocad는 AutoCAD를 제어하기 위한 라이브러리로, 
   DXF 파일을 읽을 때 AutoCAD 소프트웨어가 필요하다. 
   이 라이브러리를 사용하면 AutoCAD를 자동화하고 DXF 파일을 읽을 수 있다.

4. **dxfwrite 라이브러리**;
   설치
     pip install dxfwrite
===
from dxfwrite import DXFEngine as dxf

# Create a new DXF document
dwg = dxf.drawing('example.dxf')

# Define some points
points = [(0, 0), (10, 0), (10, 10), (0, 10)]

# Create a polyline by connecting the points
dwg.add(dxf.polyline(points=points, close=True))

# Save the DXF document to a file
dwg.save()

print("DXF file 'example.dxf' created successfully.")
=====

Posted by TwoTen
l