NIRVANA
ubuntu 환경에서 eventsim 설치 및 실행하기 본문
처음에는 ubuntu 22.04 버전으로 진행을 했는데 eventsim 깃허브, sbt 공식 문서, 모든 블로그 글 따라 해도 sbt 설치가 안됐다. 그러다가 깃헙 이슈에 이걸로 토론이 오간 걸 찾음
https://github.com/actions/setup-java/issues/712
Setup Java does not ensure that `sbt` is installed on Ubuntu 24 · Issue #712 · actions/setup-java
Description: Notice of breaking changes for GitHub Actions warned that certain packages would not be present in Ubuntu 24.04, this included sbt. This was tripped on by this repository and worked ar...
github.com
22.04 버전 이후부터 apt install sbt를 지원 안해준댄다 ^_^
22.04 이후부터면 22.04도 해줘야 하는 거 아님?이란 생각이 들었지만 걍 20.04로 다운그레이드하고 설치해보기로 함..
eventsim을 사용하기 위해서는 scala와 java8이 필요하므로 그냥 dockerfile도 같이 작성했다.
FROM ubuntu:20.04
USER root
# 환경 변수 설정 (타임존 프롬프트 방지)
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Seoul
# 필수 패키지 설치
RUN apt update && apt install -y python3 python3-pip openjdk-8-jdk tzdata scala wget curl nano
# kafka-python 설치
RUN pip install kafka-python
# Java 환경 변수 설정
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ENV PATH="$JAVA_HOME/bin:$PATH"
WORKDIR /app
COPY . /app
도커 컨테이너 안으로 들어가서 sbt 설치를 위해 다음의 명령어를 실행한다
echo deb http://dl.bintray.com/sbt/debian / | tee -a /etc/apt/sources.list.d/sbt.list
echo deb https://repo.scala-sbt.org/scalasbt/debian / | tee /etc/apt/sources.list.d/sbt_old.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
apt-get update
apt-get install sbt
그럼 이제 sbt가 어찌어찌 설치가 된다.
eventsim 레파지토리를 clone해온다.
git clone https://github.com/Interana/eventsim.git
여기서 바로 빌드하면 scala 버전이랑 달라서 또 에러난다. scala 버전 후 호환성 맞게 수정해줘야 함.
설치된 scala 버전이 2.11.12이 길래 이 분 블로그 참고해서 수정해줬다.
https://park-dev-diary.tistory.com/21
Eventsim 빌드 및 실행하기
이 모든 과정은 MacOS 기준을 작성되었습니다! 1. JAVA 설치하기 터미널에서 java -version 명령어로 설치되었는지 확인 후 없다면 아래 사이트를 참고하여 설치하면 좋을 것 같습니다. https://llighter.gith
park-dev-diary.tistory.com
eventsim/project/assembly.sbt
cd eventsim/project
nano assembly.sbt
'''
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.0")
eventsim/build.sbt
'''
이거 2개 추가해주면 됨
scalaVersion := "2.11.12"
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"
'''
name := "eventsim"
version := "1.0"
scalaVersion := "2.11.12"
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"
libraryDependencies += "org.apache.commons" % "commons-math3" % "3.5"
libraryDependencies += "de.jollyday" % "jollyday" % "0.5.1"
libraryDependencies += "org.rogach" %% "scallop" % "0.9.5"
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "2.6.1"
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.1"
libraryDependencies += "org.apache.kafka" % "kafka_2.10" % "0.8.2.1"
그러고 빌드를 하면 성공했다는 메시지가 나온다
sbt assembly
chmod +x bin/eventsim #권한추가
bin/eventsim을 실행하면 Error: Unable to access jarfile target/scala-2.10/eventsim-assembly-1.0.jar 이렇게 에러가 난다.
bin/eventsim에서 scala 버전에 맞게 수정한다.
nano bin/eventsim
'''
scala-2.10 -> 2.11 변경
'''
$JAVA_HOME/bin/java -XX:+AggressiveOpts -XX:+UseG1GC -XX:+UseStringDeduplication -Xmx8G -jar target/scala-2.11/eventsim-assembly-1.0.jar $*
이후에 eventsim을 실행한다.
bin/eventsim --config examples/example-config.json --tag control -n 5000 --start-time "2015-06-01T00:00:00" --end-time "2015-09-01T00:00:00" --growth-rate 0.25 --userid 1 --randomseed 1 control.data.json
그럼 암튼 실행이 됨..
실행된 파일을 확인해보면 이렇게 나온다.
진짜...삽질을 너무 많이했음
근데 sbt 설치 안된게 그냥 저장소 이슈 때문인듯
저 깃허브 토론이 24년 12월이고 그 이후에 패치된 것 같아서 아마 우분투 24.04로 해도 될 것 같긴함
왜냐면 이전 sbt 저장소(맞나;;)로 했을 땐 20.04에서도 에러 났어서..
echo deb https://repo.scala-sbt.org/scalasbt/debian / | sudo tee /etc/apt/sources.list.d/sbt_old.list
이것만 잘하면 될 것 같다!
'Project' 카테고리의 다른 글
[1차 프로젝트] 컬리 데이터 크롤링하고 시각화하기 (1) (0) | 2024.12.10 |
---|---|
[LXC] Ubuntu 환경에서 LinuX Containers 사용하기 (0) | 2024.08.19 |
[SpringBoot] 스프링부트 찍먹해보기 (0) | 2024.03.19 |