묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결15일간의 빅데이터 파일럿 프로젝트
storm topology 배포 에러
안녕하세요.storm topology 배포 중 -bash: storm: command not found에러가 발생했습니다.storm 설치와 service running 상태를 확인하였고, 환경 변수 세팅은 문제없이 했는데 위와 같은 메세지가 출력되었습니다.제가 겪은 프롬프트를 캡쳐해서 첨부하겠습니다.감사합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
외부 네트워크 설정 및 클러스터
안녕하세요.친절히 잘 알려주셔서, 감사히 강의를 잘 듣고 있습니다.또, 강의를 듣고, 매일 복습을 하며, 바쁜 날을 보내고 있습니다.맨 처음에 CentOS를 설치하고, VM를 세팅하는 과정에서 호스트 전용 네트워크 정보에 192.168.56.xxx와 같은 로컬 네트워크 IP를 입력하였던 것으로 기억합니다.제가 문의 드리고 싶은 부분은 만약 PC-A와 PC-B가 있을 때,PC-A에 server01, server02를 구축하고, PC-B에서 putty를 이용해서 원격 접근을 하려고 할 때, 단순히 로컬 네트워크 IP를 외부 네트워크 IP로만 변경해서 사용하면 되는 것인지, 만약, 그렇지 않다면, 추가적으로 어떤 설정을 해야하는지 여쭙고 싶습니다.이와 관련된 자료의 링크를 남겨주시면 감사하겠습니다.또한, 두번째 질문으로, 클러스터란 다수의 컴퓨터 서버를 모아 놓은 것으로 알고 있습니다.저는 현재 저사양 컴퓨터 기준으로, server01, server02를 Cluster-1로 제어하고 있는데요. 실제 실무에서도, 다수의 server를 오직 하나의 Cluster로만 그룹하여 사용하는지, 그게 아니라면, Cluster로 그룹하는 기준은 무엇인지 궁금합니다.감사합니다.
-
해결됨15일간의 빅데이터 파일럿 프로젝트
gcc, tcl 설치 에러
안녕하세요 "4.실시간 적재 파일럿 실행 2단계 03 - Redis 설치 " 강의 중, gcc와 tcl 설치 도중에 에러가 발생해서 질문 드립니다. $ yum install -y gcc*해당 에러가 url 변경으로, 에러가 발생해서 echo "https://vault.centos.org/6.10/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt echo "http://vault.centos.org/6.10/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt echo "http://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt 로 변경하여 설치를 시도했습니다.하지만 아래 사진과 같이 여전히 gcc가 설치되지 않음을 확인하였습니다. 그리고, tcl에 대해서도 설치 과정에서 아래 사진과 같이 에러가 발생했습니다. 이 문제에 대한 해결 방법을 알려주시면 감사하겠습니다.위 사진에 대한 내용도 아래에 작성해놓겠습니다. [root@server02 ~]# echo "https://vault.centos.org/6.10/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt [root@server02 ~]# echo "http://vault.centos.org/6.10/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt [root@server02 ~]# echo "http://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt [root@server02 ~]# rpm -q gcc package gcc is not installed [root@server02 ~]# [root@server02 ~]# [root@server02 ~]# yum install -y tcl Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile https://archive.cloudera.com/cm6/6.3.1/redhat6/yum/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" Trying other mirror. To address this issue please refer to the below knowledge base article https://access.redhat.com/articles/1320623 If above article doesn't help to resolve this issue please open a ticket with Red Hat Support. Error: Cannot retrieve repository metadata (repomd.xml) for repository: cloudera-manager. Please verify its path and try again [root@server02 ~]# [root@server02 ~]# [root@server02 ~]# 감사합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
플럼 이벤트 작동
안녕하세요"6. 적재 파일럿 실행 4단계 - 적재 기능 테스트" 강의 중, 플럼 이벤트 작동과 관련되어 실습 중 질문이 있어 문의드립니다.현재 /home/pilot-pjt/working/SmartCar 경로에 마들어진 SmartCarStatusInfo_20160101.txt 파일을 플럼의 SmartCarInfo의 SpoolDir 경로인 /home/pilot-pjt/working/car-batch-log로 옮겨 플럼의 File 이벤트가 작동하기 위해, $ mv /home/pilot-pjt/working/SmartCar/SmartCarStatusInfo_20160101.txt /home/pilot-pjt/working/car-batch-log/$ cd /var/log/flume-ng/$ tail -f /var/log/flume-ng/flume-cmf-flume-AGENT-server02.haddop.com.log를 입력하였습니다. 이 후, "...BuckerWriter: Closing /pilot-pjt/...", "...BuckerWriter: Renaming /pilot-pjt/...", 그리고 마지막으로 "...Writer callback called"라는 메세지가 보이면 모든 HDFS 적재가 성공적으로 끝난 것이다라고 설명해주셨지만, 저는 아래 출력값으로 약 40분 간 추가적인 출력이 발생하지 않은 상황입니다.[root@server02 SmartCar]# cd /var/log/flume-ng/ [root@server02 flume-ng]# tail -f /var/log/flume-ng/flume-cmf-flume-AGENT-server 02.hadoop.com.log value.serializer = class org.apache.kafka.common.serialization.ByteArray Serializer 2024-01-28 01:11:50,605 INFO org.eclipse.jetty.server.Server: jetty-9.3.25.v2018 0904, build timestamp: 2018-09-05T06:11:46+09:00, git hash: 3ce520221d0240229c86 2b122d2b06c12a625732 2024-01-28 01:11:50,743 INFO org.eclipse.jetty.server.AbstractConnector: Started ServerConnector@553dd1e0{HTTP/1.1,[http/1.1]}{0.0.0.0:41414} 2024-01-28 01:11:50,743 INFO org.eclipse.jetty.server.Server: Started @2563ms 2024-01-28 01:11:51,114 INFO org.apache.kafka.common.utils.AppInfoParser: Kafka version: 2.2.1-cdh6.3.2 2024-01-28 01:11:51,117 INFO org.apache.kafka.common.utils.AppInfoParser: Kafka commitId: null 2024-01-28 01:11:51,119 INFO org.apache.flume.instrumentation.MonitoredCounterGr oup: Monitored counter group for type: SINK, name: DriverCarInfo_KafkaSink: Succ essfully registered new MBean. 2024-01-28 01:11:51,121 INFO org.apache.flume.instrumentation.MonitoredCounterGr oup: Component type: SINK, name: DriverCarInfo_KafkaSink started 2024-01-28 01:11:51,161 INFO org.apache.kafka.clients.Metadata: Cluster ID: lJYz nSt_QWWTqgLn1n7JwA 이런 상황에서 원인이 무엇인지와 해결 방법에 대해 알려주시면 감사하겠습니다. 항상 강의를 통해 많은 것을 공부하고 있습니다.감사합니다.
-
해결됨실전! Redis 활용
개인 블로그 공유
개인블로그에 인강 내용이나 자료개인적으로 정리하고 싶은데 괜찮으신지 문의드립니다. 출처는 남길 예정입니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
코드 볼 수 있을까요?
코드 부탁드립니당 ㅜ
-
미해결15일간의 빅데이터 파일럿 프로젝트
[공유] DNS_PROBE_FINISHED_NXDOMAIN 문제시
저는 macbook을 사용중이며 intel-chip입니다.M1은 여러차례 자체구성을 시도 하였지만, centOS는 7이였나 8이상부터 m1에서도 설치가 되도록 arm based ios를 제공하였지만 설치를 실패하였고, reddit과 git 커뮤등의 centOS의 설치 이미지를 m1칩에 맞게 리빌드 등의 작업이 필요하다는 등으로 시간이 너무 소요되고 강의를 듣기전 지칠듯하여 skip하였습니다. 제공받은 VM파일로 구성후 크롬에서 cloudera manager 접근시 DNS_PROBE_FINISHED_NXDOMAIN의 문제가 발생하였고, 높은 확율로 hosts의 오타를 의심하였지만 오타는 아니였습니다.DNS 캐시 및 초기화를 진행하였고, 크롬의 캐시 또한 삭제하였습니다. 그래도 동일한 오류로 접근이 불가하여ping과 telnet을 날리니 핑은 날라가나 telnet으로 포트와 함께 날릴시 접근이 불가한것을 확인하였습니다. 올바른 해결방법일지는 모르겠지만 해당 포트가 접근이 불가능하다 판단하여, VM server01에 네트워크 설정에서 > 어댑터 1 > 고급 > 포트 포워딩 > 호스트포트 7180 / 게스트포트 7180으로 세팅하여 정상 접근 확인하였습니다. 저와 같이 이러한 문제를 만나시는 분이 계시면 조금 더 빠른 해결 방법을 찾길 바라며 글 남깁니다. P.S. BigD님 혹 해당 방법이 올바른 방법이 아니라면 잘못된 정보라 표시 부탁드립니다. 제가 아직 강의 초반이기에 해당 설정을 건드리어 후반부의 강의에 영향을 끼칠지에 대한 확신이 없습니다ㅠㅠ
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 토픽 생성이 안되요.
docker exec -it kafka kafka-topics.sh --bootstrap-server localhost:9092 --create --topic testTopic위와 같이 터미널에 토픽생성하는 명령어를 작성하면 아무것도 |움직이지 않고 터미널이 멈춥니다.도커는 정상적으로 실행하고 kafka,zookeeper도 정상적으로 실행되어있습니다.도커를 삭제하고 다시 다운로드해서 docker compose사용해서 kafka,zookeeper이미지 다시 작동시켜도 위와같이 토픽생성 명령어 입력하고 작동시 아무것도 안하고 멈춥니다..(p.s 카프카 컨테이너 cli들어가서도 토픽 생성 명령어 작동시켜도 작동안합니다.)혹시 해당 문제 해결법 아실까요..?
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
혹시 학습한 내용을 블로그에 정리해도 될까요?
어떤 형식이던지 괜찮습니다.자유롭게 질문해 주세요~내용은 자세할수록 좋습니다~ 안녕하세요 강의 정말 잘 들었습니다.실례가 안 된다면 강의를 들으며 학습한 내용을 블로그에 포스팅해도 괜찮을지 궁금합니다.물론 출처는 반드시 밝히겠습니다. 혹시나 질문이 불편하게 느껴지셨다면 죄송합니다!!
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
코틀린으로 해당 C# 예제를 비슷하게 만들어봤는데, 제가 잘못 작성한 걸까요?
<상황>지식 공유자님께서 작성해주신 C# 코드 예제를 코틀린으로 비슷하게 작성해서 시도해보았지만 같은 상황이 재현되지 않습니다. <질문 의도>제가 지식 공유자님의 코드를 잘못 이해하고 작성한 것인지, 아니면 JVM의 의도치 않은 최적화 때문에 의도와 다르게 동작하는 것인지 궁금합니다. <작성한 코드>fun main (args: Array<String>) { Example().startUp() } class Example() { private var shouldStop = false fun startUp() { println("process start") val thread = Thread(Runnable { doWork() }) thread.start() Thread.sleep(1000) shouldStop = true thread.join() println("process end") } // shouldStop에 @Volatile을 붙이지 않으면 무한 루프를 돌 것이라고 생각했으나 // graceful shutdown이 잘 되어버림 private fun doWork() { while (!shouldStop) { println("doWork..") Thread.sleep(1000) } } } 좋은 강의 만들어주셔서 감사합니다!
-
미해결
스프링 테스트에서 embedded redis 사용할 때 뜨는 로그..
[lettuce-nioEventLoop-6-1] INFO io.lettuce.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset java.net.SocketException: Connection reset at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) SocketChannelImpl.java:394 at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) SocketChannelImpl.java:426 at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:254) PooledByteBuf.java:254 at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) AbstractByteBuf.java:1132 at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:357) NioSocketChannel.java:357 at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) AbstractNioByteChannel.java:151 at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) NioEventLoop.java:788 at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) NioEventLoop.java:724 at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) NioEventLoop.java:650 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) NioEventLoop.java:562 at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) SingleThreadEventExecutor.java:997 at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ThreadExecutorMap.java:74 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) FastThreadLocalRunnable.java:30 at java.base/java.lang.Thread.run(Thread.java:840) 스프링 테스트에서 embedded redis를 사용해 테스트하던 중에 이런 로그가 뜨네요...에러는 아닌 것 같은데 정확히 뭘 하라는 건지 모르겠어요 ㅠㅠ저 문구를 어떻게 하면 없앨 수 있을까요?....
-
해결됨실전! Redis 활용
subscriber, publisher 두개 같은 포트로 띄울 수 있나요?
이미 레디스 cli가 띄워져 있다고 해서요..
-
해결됨실전! Redis 활용
외부 클라이언트에서 도커 redis-stack-server 접속 시, 블룸필터 명령어가 없다고 합니다.
도커 컨테이너 > 레디스 서버 내에서 redis-cli 실행 후, BF.MADD 명령어를 실행하면, 아래와 같이 잘 실행됩니다.그러나, 외부(JDBC) 커낵션을 통한 접속에서는이처럼 명령 실행을 전혀 할 수가 없습니다.(BF.XX 명령어를 제외하고, 이전 강의내용의 명령어는 잘 실행됩니다)이걸 해결해보려 시도해본 것은 아래와 같습니다.docker-compose.yml 볼륨마운팅 설정/redis-stack.conf 파일 내용의 변경 부분:bind 0.0.0.0protected-mode nodocker-compose.yml 내용입니다.version: "3.8" services: redis: image: redis/redis-stack-server hostname: redis container_name: redis-stack-server command: /entrypoint.sh ports: - "6379:6379" volumes: - ../redis/conf/7.2.conf:/redis-stack.conf restart: always networks: - redis-network networks: redis-network: driver: bridge외부접속에서 명령 실행을 막는 기능을 어떻게 해제할 수 있을까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
레디스 적용 시 여러번응모 테스트에서 에러가 발생합니다.
@SpringBootTest class ApplyServiceTest { @Autowired private ApplyService applyService; @Autowired private CouponRepository couponRepository; @Test public void 한번만응모() { applyService.apply(1L); long count = couponRepository.count(); assertThat(count).isEqualTo(1); } @Test public void 여러번응모() throws InterruptedException { int threadCount = 1000; //ExecutorService : 병렬 작업을 간단하게 할 수 있게 도와주는 Java API ExecutorService executorService = Executors.newFixedThreadPool(32); // CountDownLatch : 다른 Thread에서 수행하는 작업을 기다리도록 도와주는 클래스 CountDownLatch latch = new CountDownLatch(threadCount); for (int i=0; i<threadCount; i++) { long userId = i; executorService.submit(() -> { try { applyService.apply(userId); } finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); assertThat(count).isEqualTo(100); } }@Service public class ApplyService { private final CouponRepository couponRepository; private final CouponCountRepository couponCountRepository; public ApplyService(CouponRepository couponRepository, CouponCountRepository couponCountRepository) { this.couponRepository = couponRepository; this.couponCountRepository = couponCountRepository; } public void apply(Long userId) { Long count = couponCountRepository.increment(); System.out.println("count : "+count); // long count = couponRepository.count(); if (count > 100) { return; } Coupon save = couponRepository.save(new Coupon(userId)); System.out.println("save! : "+save.getId()); } }@Repository public class CouponCountRepository { private final RedisTemplate<String, String> redisTemplate; public CouponCountRepository(RedisTemplate<String, String> redisTemplate) { this.redisTemplate = redisTemplate; } public Long increment() { try { return redisTemplate .opsForValue() .increment("coupon_count"); } catch (Exception e) { e.printStackTrace(); throw e; } } }여러번응모 테스트 케이스 실행CouponCountRepository.java의 increment 메서드에서 다음과 같은 에러가 발생하고 있습니다.제일 처음에 나는 에러메시지는 다음과 같습니다.Caused by: io.lettuce.core.RedisCommandExecutionException: MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.쿠폰도 정상적으로 등록되지 않아 아에 0개로 출력되고 있습니다.구글링을 해봤지만 도저히 원인을 찾을 수가 없어요 ..++추가로, 도커에서 레디스 컨테이너와 이미지를 삭제한 후 실행해도 동일한 결과가 나타나는 것을 확인됩니다.강의에서 나온 그대로 도커 명령어를 사용해서 레디스를 pull 하였는데 왜 컨테이너와 이미지를 삭제해도 동일한 오류가 발생하는 걸까요?도커에서 레디스 컨테이너와 이미지를 삭제하고 ApiApplication을 실행하면 정상적으로 실행됩니다...++ 정리 드리자면, 1. 강의를 그대로 따라했는데 RedisCommandExecutionException가 발생하면서 테스트 케이스를 실행할 수 없는 이유2. 강의에서 나온 그대로 도커 명령어를 사용해서 레디스를 pull 하였는데 왜 컨테이너와 이미지를 삭제해도 동일한 오류가 발생하는 이유3. 도커에서 레디스 컨테이너와 이미지를 모두 삭제하고 ApiApplication를 실행했을 때 정상적으로 실행되는 이유답변 부탁드립니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
redis 설정 시 application.yml을 수정하지 않는 이유
안녕하세요 강사님.spring-data-redis 의존성을 추가하여 디펜전시 받고couponcountrepository.java를 생성하였습니다.보통 yml 파일에 redis 관련 설정도 해주는 것으로 알고있었는데 강의에서는 따로 yml에 redis 설정을 하지 않아서요.redis 설정을 안해준다면 어플리케이션에서 어떻게 redis와 연결될 수 있는지.. 궁금합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
centos 7로 이 강의를 진행할 수 있나요?
centos 6을 다운 받을 수 없어 centos7을 다운 받아 진행하려고 합니다.지금 진행하다가 막힌 부분은 server01과 server02를 virtual Machine에서 centos7 파일 적용이 안 됩니다.\이 다음에 아무것도 안 뜨고 검은색 화면만 뜹니다
-
미해결실습으로 배우는 선착순 이벤트 시스템
코드 제공
혹시 전체 코드를 받아볼 수 있는 리포지토리가 있을까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
안녕하세요. 죄송한데 노션이나 pdf파일은 어디 있나요?
찾아봐도 안 나오는 것 같아서 질문 남깁니다ㅠ
-
미해결15일간의 빅데이터 파일럿 프로젝트
m1 mac 환경 셋팅 관련 문의
안녕하세요, 좋은강의 감사합니다.저는 m1 mac 이용하는 수강생입니다. virtualbox 환경 셋팅 중에 막히는 부분이 있어 문의 드립니다.7버전 이상에서 m1 chip 설치는 지원하여 무리 없이 설치할 수 있었는데, 제공해주신 server01/02 이미지 실행시 부팅 상 에러가 나옵니다. (=Unsupported CPU 에러 출력, 제공주신 이미지가 amd64 베이스여서 그런듯합니다) 추가로, parallels 설치 후 virtualbox 설치 시에도 뜻대로 되지 않아 우선 홀딩 하였습니다. https://www.inflearn.com/questions/837697/comment/253276이 댓글 이후에 7개월 정도 지났는데 관련하여 업데이트 된 부분이 있을지 문의 드립니다. (arm 호환 가능 이미지 제공 등) 없다 라고 한다면, 혹시 우회하여 실습해 볼 수 있는 방법이 있을까요? (클라우드 환경에서 windows 서버 마련해야 할까요? ㅜ)
-
해결됨실전! Redis 활용
트랜잭션(multi) 질문입니다.
Multi 사용시 key 나 로그인한 세션에 lock 이 걸리진 않나요? 트랜잭션이 유지되는 시간이 있나요? 무한정 트랜잭션이 끝나길 기다리진 않을 것 같습니다.