Skip to content
@KNU-HOBIT

KNU-HOBIT


K-BIT

산업용 사물 인터넷 빅데이터 처리를 위한 온-프리미스 기반 분산 처리 프레임워크
Explore the docs »

🎥 View Demo

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License
  5. Contact
  6. Acknowledgments

About The Project

산업계에서 작업 효율과 안전을 높이기 위해 산업 사물 인터넷(IIoT) 데이터의 활용이 점점 중요해지고 있습니다. 많은 제조 기업들이 센서 데이터 파이프라인을 통해 IIoT 빅데이터를 수집하고 저장하고 있지만, 대용량 데이터를 효과적으로 전송하고 처리할 수 있는 소프트웨어 인프라는 부족한 상태입니다.이를 해결하기 위해, Apach KafkaApache Spark를 기반으로 한 온-프리미스 IIoT 빅데이터 처리 플랫폼인 HOBIT 시스템을 제안합니다. HOBIT 시스템은 데이터 수집과 저장, 고속 분석을 강화하여 기존 REST API 방식보다 데이터 전송 처리 속도를 10배 이상 향상시킬 수 있었으며, AI 모델 학습에 있어서도 병렬 분산 컴퓨팅을 통해 속도를 단일 컴퓨팅 환경 대비 4배 빠르게 향상시켰습니다. 이를 통해 제조 기업들이 클라우드 비용을 절약하며 실시간으로 경제적이고 효율적인 빅데이터 처리 및 분석을 할 수 있을 것으로 기대됩니다.

Architecture

Module configuration and roles:

  • IoT Platform : IoT 데이터 수집 및 전달

    • CSV to Protobuf : 시계열 IoT 데이터셋(.csv)을 활용하여 센서를 시뮬레이션 (MQTT Producer)
    • Influx MQTT Connector : 실시간으로 InfluxDB에 센서 데이터를 적재 (MQTT Consumer)
    • IoT Server : 적재된 IoT 데이터를 요청에 따라 병렬적으로 Kafka 브로커에 전송 (Kafka Producer)
    • InfluxDB : IoT 데이터 저장소
  • HOBIT : IoT 전용 빅데이터 처리 플랫폼

    • MQTT Broker : MQTT를 통한 실시간 IoT 데이터 파이프라인
    • Spark Cluster : 대규모 데이터 처리용 통합 분석 엔진
    • Kafka Cluster : 분산 스트리밍 오픈소스 플랫폼
  • Application : IoT플랫폼과 HOBIT을 이용하는 어플리케이션 계층

    • React : 서버로부터 받은 데이터 시각화, API에 대한 UI/UX 제공
    • FastAPI Server : 어플리케이션 API 제공. 주로 사용자 요구에 따라, IoT 서버와 HOBIT의 모듈로 IoT 데이터 전송 및 가공을 요청 (Spark Driver에 해당)
    • MySQL : 해당 어플리케이션 운영에 필요한 데이터 저장소

(back to top)

Built With

Category Technology
Sensor Simulation Python
IoT Platform GoInfluxDB
HOBIT
Application ReactnpmBootstrapJavaScriptjsFastAPIMySQLPandas
Development Environment LinuxmacOSWindowsVisual Studio CodeJupyter Notebook

(back to top)

Prerequisites

H/W Requirements

k8s Cluster ( >= 3 node)
OS Ubuntu 20.04.6 LTS (Focal Fossa)
CPU Intel Core i7-10700K 3.80GHz
RAM 64GB DDR4, 3200 MT/s, 16GB x 4
Other spare servers ( for Iot Platform / Application layer )
OS Ubuntu 20.04.6 LTS (Focal Fossa)
CPU Intel Core [email protected]
RAM 32GB DDR4, 3200 MT/s, 16GB x 2

Optional, but Recommand

Sensor Simulation (in Our case, x7 use)
Model Raspberry Pi 4 Model B Rev 1.4
OS Ubuntu 22.04.1 LTS (Jammy JeIlyfish)

S/W Requirements

k8s Cluster v1.28.7+k3s1
Helm v3.11.3
Rook-Ceph v1.13.7
Spark Cluster 3.5.1 ( Standalond on K8s)
Strimzi 0.40.0
Kafka Cluster 3.7.0 ( Kraft Mode )
InfluxDB InfluxDB OSS v2.7.4
Golang go1.22.2 linux/amd64 (common)
Protobuf Compiler libprotoc 27.0

For other Library or Language versions, please refer to the respective repositories.

Getting Started

클릭하면 각 모듈에 대한 Repo로 이동.

K8s Setting Menual

Required steps for setting up HOBIT.

Each Module Repo or Docs

(back to top)

Contact

💡 노유수 (noFlowWater) : [email protected]

💡 박규리 (parkgyul) : [email protected]

💡 장영우 (jangscon) : [email protected]

(back to top)

Popular repositories Loading

  1. knu_hobit_gr knu_hobit_gr Public

    1 2

  2. spark_jiye spark_jiye Public

    Jupyter Notebook 1 1

  3. spark spark Public

    Python 1

  4. telegraf telegraf Public

    Kubernetes 환경에서 Telegraf를 쉽게 배포하고 관리할 수 있는 스크립트 모음. Telegraf의 설정을 쉽게 관리하고, 배포 및 클린업 프로세스를 자동화하세요.

    Shell 1

  5. hobitfront_jiye hobitfront_jiye Public

    Forked from blueberry0814/hobitfront_jiye

    JavaScript

  6. kafka-client-on-spring kafka-client-on-spring Public

    Java

Repositories

Showing 10 of 17 repositories
  • .github Public
    KNU-HOBIT/.github’s past year of commit activity
    0 0 0 0 Updated Jun 12, 2024
  • KNU-HOBIT/knu_hobit_gr’s past year of commit activity
    1 2 0 0 Updated Jun 8, 2024
  • KNU-HOBIT/hobit-FastAPI’s past year of commit activity
    Python 0 1 0 0 Updated Jun 8, 2024
  • kafka-kube Public

    Kubernetes manifests to deploy a Kafka cluster using Strimzi with node pools. Kafka cluster is set up to use KRaft mode

    KNU-HOBIT/kafka-kube’s past year of commit activity
    0 0 0 0 Updated Jun 7, 2024
  • spark-standalone-kube Public

    Setup and guide for deploying Spark to Kubernetes in standalone mode.

    KNU-HOBIT/spark-standalone-kube’s past year of commit activity
    0 0 0 0 Updated Jun 7, 2024
  • mosquitto-kube Public

    Deploying and configuring Mosquitto with Kubernetes configuration files.

    KNU-HOBIT/mosquitto-kube’s past year of commit activity
    0 0 0 0 Updated Jun 7, 2024
  • mysql-kube Public

    Kubernetes configuration files for deploying MySQL

    KNU-HOBIT/mysql-kube’s past year of commit activity
    0 0 0 0 Updated Jun 7, 2024
  • large-dataset-delivery-kafka Public

    Scalable IoT data processing system for high-volume data transfer, utilizing Go, Kafka, and InfluxDB for efficient real-time analytics.

    KNU-HOBIT/large-dataset-delivery-kafka’s past year of commit activity
    Go 0 1 0 0 Updated Jun 6, 2024
  • mqtt-influxdb-connector Public

    Reads MQTT messages, decodes them, and writes data to InfluxDB using Python.

    KNU-HOBIT/mqtt-influxdb-connector’s past year of commit activity
    Python 0 0 0 0 Updated Jun 6, 2024
  • spark Public
    KNU-HOBIT/spark’s past year of commit activity
    Python 0 1 0 0 Updated Jun 6, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…