안녕하세요 ! 좋은 강의 해주셔서 감사합니다. hot article 부분에서 헷갈리는 부분이 있어서 질문 남깁니다. hot article 을 저장할때, article 의 생성 날짜 기준으로 저장하기 때문에, 생성 시간이 아닌 다른 날짜에 hot article이 되더라도, 생성 시간이 key가 되어 그 생성 시간 날짜에 저장이 되는 것이 맞나요 ?
안녕하세요. 강의에서 실습을 종료할 때는 첫 구동 순서의 반대로 순서로 종료를 하라고 말씀을 하셨는데 그러지 못했습니다...ㅠㅠ 이후 zookeeper, kafka, connect 순으로 구동을 하려고 했지만 아래와 같은 오류가 connect구동단계에서 떴습니다. [2025-06-30 19:42:13,440] INFO [AdminClient clientId=adminclient-8] Retrying to fetch metadata. (org.apache.kafka.clients.admin.KafkaAdminClient:3177) 위 구문이 무한반복으로 로그에 뜨게 되는데요. ~/data/kafka-logs/ meta.properties 을 지웠다가 kafka 구동부터 다시 시작을 시도해 봐도 여전히 connect구동을 위 에러로 진행할 수 없었습니다. 해결방법이 무엇인지 궁금합니다.
안녕하세요 선생님 좋은 강의 해주셔서 감사합니다. 댓글 create 구현에서 findParent() 함수를 구현할때, .filter(Comment::isRoot) 이런 코드가 있는데, 애초에 parentCommentId 에 root 댓글이 아닌 댓글의 ID가 존재하면 안되는 것 아닌가요 ? 존재하면 안되는 경우를 filter 로 걸러주는 것 같아서 필요한 코드인지 의문이 들어 질문 남깁니다.
select car_number, avg(battery) as battery_avg from SmartCar_Status_Info where battery < 60 group by car_number; Hue에서 이 쿼리 돌리면 아래 에러가 뜹니다.. chat gpt 통해서 hue_safety_valve.ini에 대한 Hue 서비스 고급 구성 스니펫에 아래 내용도 추가했는데 해결이 안됩니다. 이것 때문에 더이상 진도를 못 나가고 있어서 도움 부탁드려요. [yarn_clusters] [[default]] log_url_template= http://server02.hadoop.com:8042/node/containerlogs/${container_id}/${user} 500 Server Error: Server Error for url: http://server02.hadoop.com:8042/node/containerlogs/admin?doAs=admin Error 500 Server Error HTTP ERROR 500 Problem accessing /node/containerlogs/admin. Reason: Server ErrorCaused by:java.lang.ArrayIndexOutOfBoundsException: 4 at org.apache.hadoop.yarn.server.nodemanager.webapp.NMWebAppFilter.containerLogPageRedirectPath(NMWebAppFilter.java:81) at org.apache.hadoop.yarn.server.nodemanager.webapp.NMWebAppFilter.doFilter(NMWebAppFilter.java:62) at com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:829) at com.google .inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119) at com.google .inject.servlet.GuiceFilter$ 1.call (GuiceFilter.java:133) at com.google .inject.servlet.GuiceFilter$ 1.call (GuiceFilter.java:130) at com.google .inject.servlet.GuiceFilter$ Context.call (GuiceFilter.java:203) at com.google .inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767) at org.apache.hadoop.security .http.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:57) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767) at org.apache.hadoop.security .authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:644) at org.apache.hadoop.security .authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:592) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767) at org.apache.hadoop.http.lib.StaticUserWebFilter$StaticUserFilter.doFilter(StaticUserWebFilter.java:110) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767) at org.apache.hadoop.http.HttpServer2$QuotingInputFilter.doFilter(HttpServer2.java:1553) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767) at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1767) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security .SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:539) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) at org.eclipse.jetty.io .FillInterest.fillable(FillInterest.java:108) at org.eclipse.jetty.io .SelectChannelEndPoint$ 2.run (SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run (ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$ 2.run (QueuedThreadPool.java:589) at java.lang.Thread.run (Thread.java:748) (error 500)
안녕하세요! 레포지토리에 오타가 있어서 신고합니다. requrements.txt (파일명에 'i'가 빠져있어요.) 저는 경로까지 복사 해서 사용하는데 오타가 있으니 deploy/after_install.sh 설정과 달라 배포가 안되더라구요 ^^; 혹시 저와 같은 분들 계실까봐 남겨 놓습니다. https://github.com/hjkim-sun/datalake-pyspark-apps-season1/blob/ch8.5/requrements.txt 추신: 강의가 너무 좋습니다. 강의자료도 강의 진행도 너무 훌륭해요! 후속 강의도 너무 너무 기대됩니다! 다음 강의는 어떤걸 준비하고 계신지, 또 언제쯤 나올지 너무 궁금해요! 얼른 강의 내주세요 ㅎㅎ
안녕하세요, 우선 데이터 관련 좋은 강의 올려주셔 감사합니다. 수강 중 실습에서 AWS kafka 서버가 어떤 역할인지 헷갈려 질문 드립니다. 위 강의 pdf와 같이 지금까지 producer가 서버에 push하고 consumer가 서버(브로커)에 있는 메시지를 pull 하는 것으로 이해했고, AWS에 만든 3개의 kafka-broker01~03이 서버를 구성하는 3개의 '브로커'라고 이해했는데, 실습을 진행하면서 AWS kafka-broker서버에서 파티션을 만들었으니 브로커는 맞는 것 같으나 동시에 producer, consumer 역할을 하는 것 같아서 원래 브로커가 서버를 구성하는 동시에 클라이언트의 역할도 하는 것인지 이해하는데 어려움을 겪고 있습니다. 만약 그렇다면 kafka02에서 produce하고 kafka01에서 consume한다고 할 때, kafka02도 kafka01와 같은 cluster에 속하니 kafka02의 파티션에도 메시지가 저장되고 있는 것이 맞나요...? 긴 글 읽어주셔서 감사드립니다.
안녕하세요 선생님 강의 정말 잘들었습니다. 제가 이 강의를 듣고 게시판을 직접 만드는 것이 목표였는데, 프론트 코드를 만드는데 어려움을 겪고 있습니다. 혹시 뼈대만이라도 프론트엔드 코드를 제공해 주실 수 있을까요 ? 무리한 부탁인 것을 알고 있지만, 간절하여 질문글로 남깁니다
안녕하세요 쿠케님. 우선 좋은 강의 감사합니다. 다름이 아니라 댓글 무한 depth - 테이블&구현 설계에서 unique index를 작성하는 부분이 나오는데 unique index 대신 index로 구현하고 table 생성 시 path에 unique 제약을 걸어도 효과가 같을지 궁금합니다.
안녕하세요 선생님 ! 선생님 코드로 구현을 완료하고 제가 커스텀 해보고 있는 중에 고민이 있어 질문글 남깁니다. 추천 수가 특정 개수 이상일때 hot article이 되고, 매일 갱신하는 것이 아닌, 한번 hot article이 되면 계속해서 hot article 게시판에 게시하고 싶습니다. 이럴 때 hot article을 데이터베이스에 저장하는 것이 좋을까요 아니면 redis에 저장하는 것이 좋을까요 ? 선생님의 의견이 궁금하여 질문 남깁니다.
안녕하세요 선생님 현재 애플리케이션을 MSA에서 모놀리식으로 바꾸고 있습니다. MSA 에서는 hot-article 애플리케이션에서는 각각의 서비스들과 통신하지 않고 데이터를 저장하기 위해 ArticleCommentCountRepository, ArticleViewCountRepository, ArticleLikeCountRepository 를 따로 만든 것으로 이해했습니다 . 모놀리식에서는 이 3개의 Count Repository를 따로 만들지 않고 각각의 서비스에 있는 Count Repository 에서 가져오는 것이 더 좋을까요, 아니면 아니면 MSA hot-article 패키지에 따로 count repository를 만드는 것이 좋을까요 .. 선생님의 의견이 궁금합니다 .