최신 글
-
빅데이터 trino에서 java.sql.SQLException: Unrecognized connection property 'url' 에러가 나는 이유와 해결 방법 spark jdbc를 통해 trino를 접근하기 위해 아래와 같은 코드를 짤 수 있다.import org.apache.spark.sql.{DataFrame, SparkSession}import java.util.Properties// Spark 세션 생성val spark = SparkSession.builder() .appName("Spark Trino JDBC Example") .getOrCreate()// JDBC URL 설정val jdbcUrl = "jdbc:trino://://"// Trino JDBC 속성 설정val connectionProperties = new Properties()connectionProperties.setProperty("user", "")connectionProper..
-
하둡 Spark 개발시, main/resources 패키지에 hdfs-site.xml, core-site.xml 등을 넣는 이유 main/resources 디렉터리는 Apache Maven이나 SBT와 같은 빌드 도구를 사용하는 프로젝트에서 애플리케이션의 리소스 파일을 저장하는 표준 위치이다. 이 디렉터리에 배치된 파일들은 컴파일된 클래스와 함께 JAR 파일에 포함되며, 런타임에 애플리케이션에서 사용될 수 있다. HDFS 설정 파일 (hdfs-site.xml)hdfs-site.xml 파일은 Hadoop 분산 파일 시스템(HDFS)의 설정을 정의한다. 이 파일에는 HDFS 클러스터의 동작을 제어하는 다양한 구성 옵션이 포함되어 있다. 예를 들어, 네임노드의 주소, 데이터 디렉터리, 복제 수 등의 정보가 포함될 수 있다.main/resources 디렉터리에 배치하는 이유main/resources는 애플리케이션의 모든 리소스 파일(예:..
-
Kafka standalone 카프카(kraft모드 in local) 실행을 위한 준비와 실행 $ bin/kafka-storage.sh random-uuidcKUMbEGERui8cHUhwdc6XA$ bin/kafka-storage.sh format -t cKUMbEGERui8cHUhwdc6XA -c config/kraft/server.propertiesFormatting /tmp/kraft-combined-logs with metadata.version 3.6-IV2.$ bin/kafka-server-start.sh config/kraft/server.properties$ bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092 --version3.6.2 카프카 바이너리 다운로드 링크 : https://kafka.apache.org/d..
-
Java & Scala scala에러 Unable to make private java.nio.DirectByteBuffer 해결 방법 Unable to make private java.nio.DirectByteBuffer(long,int) accessible: module java.base does not "opens java.nio" 와 같은 코드가 떠서 놀랬다. intellij에서 sbt로 빌드한 스칼라코드가 실행되지 않을 때가 있는데, 이 오류는 jvm컴파일 버전 때문에 생기는 이슈이다. https://stackoverflow.com/questions/70153343/unable-to-make-private-java-nio-directbytebufferlong-int-accessible Unable to make private java.nio.DirectByteBuffer(long,int) accessibleI'm using P..
-
빅데이터 아파치 플링크는 2.0 버전부터는 더이상 scala API를 지원하지 않습니다. https://cwiki.apache.org/confluence/display/FLINK/FLIP-265+Deprecate+and+remove+Scala+API+support FLIP-265 Deprecate and remove Scala API support - Apache Flink - Apache Software FoundationPlease keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast). Motivation Apache Flink offers APIs for building your Flink application using the DataStr..
-
golang Redis-go를 interface화 하여 사용하기 golang에서 Redis를 사용할 때는 보통 go-redis 라이브러리를 많이 사용합니다. 이 때, 바로 메서드를 사용하기 보다는 내부 비즈니스 로직이 포함된 RedisClient 인터페이스를 만들어 사용하곤 하는데요. 아래는 그 예시 입니다. redis.go package main import ( "context" "fmt" "github.com/go-redis/redis/v8" // go-redis import ) // RedisClientInterface 인터페이스 정의 type RedisClientInterface interface { Set(key string, value interface{}) error Get(key string) (string, error) } // RedisClient ..
-
Kafka 카프카 컨슈머의 auto.offset.reset 옵션을 반드시 earliest로 변경해야 하는 이유 auto.offset.reset는 카프카 컨슈머를 다루는데 있어 아주 중요한 부분입니다. 해당 옵션이 가질 수 있는 값은 다음과 같습니다. earliest : 마지막 커밋 기록이 없을 경우, 가장 예전(낮은 번호 오프셋) 레코드부터 처리 latest : 마지막 커밋 기록이 없을 경우, 가장 최근(높은 번호 오프셋) 레코드부터 처리 none : 커밋 기록이 없을 경우 throws Exception 해당 옵션은 필수 옵션이 아닌 선택 옵션으로서 입력을 하지 않으면 자동으로 latest로 설정됩니다. 일반적으로 컨슈머를 운영할 때 이 옵션을 건드리는 경우는 거의 드문데요. 그러다보니 기본값인 latest로 설정할 경우 우리도 모르게 운영 중 데이터의 유실이 발생할 수 있다는 사실을 놓치기도 합니다. 그러다보..
-
golang json value가 null일때 golang은 Unmarshal을 잘 할 수 있을까? golang은 JSON Format 데이터를 struct로 변환할 수 있는데 이것을 Unmarshal이라고 부릅니다. 예를 들어 다음과 같은 함수로 구현될 수 있습니다. func getStructFromJSON(jsonData string, valuePtr interface{}) error { return json.Unmarshal([]byte(jsonData), valuePtr) } jsonData : json포맷으로된 String 데이터 valuePtr : struct타입 예를 들어 다음과 같이 호출할 수 있습니다. type SampleStruct struct { A int32 `json:"a"` B int32 `json:"b"` } func main() { var valuePtr SampleStru..
-
빅데이터 JSON은 null을 키값으로 가질 수 있을까? JSON을 정의할 때 null을 키로 가질 수 있을지 궁금해서 jsonlint.com을 사용하여 테스트를 진행했습니다. https://jsonlint.com/ JSON Online Validator and Formatter - JSON Lint Loading... About the JSONLint Editor JSONLint is a validator and reformatter for JSON, a lightweight data-interchange format. Copy and paste, directly type, or input a URL in the editor above and let JSONLint tidy and validate your messy JSON code. What Is json..
-
소프트웨어공학 You aren't going to Need it(YAGNI). 그 기능이 필요할 때 만들어라! https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
인기글
-
하둡 Hdfs dfs 명령어 정리 및 설명(ls, cat, du, count, copyFromLocal 등) Hadoop을 적절히 사용하기 위해서는 hdfs 명령어를 알아야 한다. 아래에 정리를 해 보았다. ※ 2.6.0 version을 기준으로 정리함 Hadoop 명령어 Hadoop filesystem command를 사용하기 위함. Usage : hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS] HDFS 명령어 File System(FS) shell은 Hadoop Distributed File System(HDFS)를 여타 파일시스템처럼 관리하기 위한 목적으로 command를 사용할 수 있다. Hadoop-2.6.0에서는 총 33개의 HDFS 명령어를 지원한다. 1) appendToFile Local 파일들을 hdfs에 append 저장하기 위한 목적 Usage: hdfs df..
-
Java & Scala 현재 시간을 특정 포맷 yyyyMMdd HH:mm:ss 로 String 출력하기 public class Main { public static void main(String[] args) throws Exception { DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); String dateTime = dateFormat.format(new Date()); System.out.println(dateTime); } } 현재 시간을 특정 포맷 yyyyMMdd HH:mm:ss 로 String 출력하기 아래는 출력물 20220914 00:19:07
-
빅데이터 프로메테우스 지표 rate와 increase의 차이점 프로메테우스로 다음과 같은 지표들을 쌓을 때가 있습니다. http_request_count_total{method="POST",router="/"} 10 http_request_count_total{method="POST",router="/"} 15 http_request_count_total{method="POST",router="/"} 20 http_request_count_total{method="POST",router="/"} 40 http_request_count_total{method="POST",router="/"} 45 http_request_count_total{method="POST",router="/"} 60 상기와 같은 지표는 http request때 마다 counter를 1씩 in..
-
개발이야기 NAT IP란? NAT는 Network Address Translation의 줄임말 입니다. NAT는 사설 네트워크에 속한 여러 개의 호스트가하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위해 사용합니다. 쉽게말해서 외부망과 내부망을 나눠주는 기능을 하게 되는 것입니다. NAT 특징 - 내부에서 외부로 통신 가능 - 외부에서 내부로 통신 불가 NAT 장점 - 여러 사설 네트워크를 사용함으로서 인터넷 공인 IP 주소를 절약 가능. - 사내망 IP주소를 외부로 알리지 않음으로서 외부로 부터의 침입/공격 차단 NAT 단점 - 네트워크 복잡성 증가 - 네트워크 지연 영향 NAT 종류 - Static NAT : 사설IP와 공인 IP를 1:1 매핑 - Dynamic NAT : 다수 공인 IP와 다수 사설 IP 매핑 - PAT..
-
Kafka 카프카 auto.offset.reset 종류 및 사용방법 카프카에서 consumer를 새로 생성하여 topic에서부터 데이터를 가져오기 위해서는 여러 옵션이 필요한데 그 중 하나는 auto.offset.reset입니다다. 이 auto.offset.reset의 역할에 대해 알아보겠습니다. 아래 글은 Kafka-client, Kafka broker 2.4 기준으로 작성하였습니다. auto.offset.reset auto.offset.reset에서 offset은 consumer offset입니다. 만약 이번에 topic에 붙은 consumer의 offset정보가 존재하지 않는다면 auto.offset.reset의 default값(latest)이나 또는 설정한 값을 따라가게 됩니다. auto.offset.reset - latest : 가장 마지막 offset부터 - ..
-
JS & JQuery [JavaScript]변수내용이 json인지 확인하는 method(check valid json) js에서 사용하고 있는 variable이 json인지 여부를 확인하고 싶을때가 있다. npm을 사용한 여러 library를 사용하는 방법도 있지만 아래와 같이 간단한 method를 활용하는 방법도 있다. function IsJsonString(str) { try { var json = JSON.parse(str); return (typeof json === 'object'); } catch (e) { return false; } } JSON.parse(str) 메서드 ECMAScript 2015의 standard method이다. JSON.parse(str)는 json의 문자열 구문을 분석하고 들어온 파라미터를 js값이나 객체로 생성한다. 이때 정상적인 json type이 아닌경우 exception을 반..
-
Kafka 카프카 컨슈머의 auto.offset.reset 옵션을 반드시 earliest로 변경해야 하는 이유 auto.offset.reset는 카프카 컨슈머를 다루는데 있어 아주 중요한 부분입니다. 해당 옵션이 가질 수 있는 값은 다음과 같습니다. earliest : 마지막 커밋 기록이 없을 경우, 가장 예전(낮은 번호 오프셋) 레코드부터 처리 latest : 마지막 커밋 기록이 없을 경우, 가장 최근(높은 번호 오프셋) 레코드부터 처리 none : 커밋 기록이 없을 경우 throws Exception 해당 옵션은 필수 옵션이 아닌 선택 옵션으로서 입력을 하지 않으면 자동으로 latest로 설정됩니다. 일반적으로 컨슈머를 운영할 때 이 옵션을 건드리는 경우는 거의 드문데요. 그러다보니 기본값인 latest로 설정할 경우 우리도 모르게 운영 중 데이터의 유실이 발생할 수 있다는 사실을 놓치기도 합니다. 그러다보..
-
DevOps Grafana와 엘라스틱서치 사용시 각종 query 조건 사용 방법(and, or, regex 등) 엘라스틱서치는 분산형 RESTful 검색 및 분석엔진이다. ELK라는 스택을 통해서 여러 데이터를 모으고 시각화하여 활용하는데 많이 쓰인다. 데이터를 모아서 Kibana로 사용하는 것도 좋지만 Grafana를 사용하면 미려한 그래프 디자인과 함께 alert기능등 여러 기능을 사용할 수 있다. 이번 포스팅에서는 엘라스틱서치와 Grafana를 사용하여 그래프를 그릴 때 Query를 사용하는 방법에 대해서 이야기해보고자 한다. 그라파나에 엘라스틱서치 연결하기 엘라스틱서치의 document를 그래프로 그리기 위해서는 index pattern을 그라파나에 등록해야 한다. 아래와 같이 add data source탭을 통해 elasticsearch에 대한 정보를 등록한다. 그라파나 Query 아래와 같은 형태로 ES..
-
Kafka 카프카의 토픽 데이터를 REST api로 주고받자 - Kafka rest proxy 사용 confluent에서는 rest proxy라고 불리는 카프카 클러스터를 위한 RESTful interface application을 오픈소스로 제공하고 있습니다. 기존에 Kafka connect, Kafka client로 데이터를 전달하는 것과는 사뭇 다르게 REST api를 사용한다는점이 독특한데요. 직접 코드를 짜지 않고 범용적으로 사용되는 http을 사용해서 데이터를 넣고 뺄 수 있다는 점이 독특합니다. 오늘은 rest proxy를 local에 설치하고 실행해보겠습니다. 준비물 - local kafka cluster - git - terminal - postman 다운로드 및 실행 rest proxy를 사용하기 위해서는 rest proxy가 포함된 confluent의 community package..
-
servlet container [linux] netstat 명령어 설명 및 예제 netstat 소개netstat(network statistics)는 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스(네트워크 인터페이스 컨트롤러 또는 소프트웨어 정의 네트워크 인터페이스), 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구이다. OS X, 리눅스, 솔라리스, BSD를 포함한 유닉스 계열 운영 체제와 윈도우 XP, 윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 10을 포함한 윈도우 NT 기반 운영 체제에서 이용이 가능하다. 네트워크의 문제를 찾아내고 성능 측정으로서 네트워크 상의 트래픽의 양을 결정하기 위해 사용된다.리눅스에서 net-tools의 일부인 netstat은 시대에 뒤쳐진 것으로 간주되며, iproute2의 일부인 ss를 대신 사용하여야 한..
728x90