[HADOOP] 웹 사이트에서 데이터 스트림을 읽도록 스파크 스트리밍을 시도하는 중 소켓은 무엇입니까?
HADOOP웹 사이트에서 데이터 스트림을 읽도록 스파크 스트리밍을 시도하는 중 소켓은 무엇입니까?
이 데이터를 http://stream.meetup.com/2/rsvps에서 스파크 스트림으로 가져 오려고합니다.
그들은 JSON 객체이며, 줄이 문자열이 될 것이라는 것을 알고 있습니다. JSON을 시도하기 전에이 줄이 작동하기를 원합니다.
나는 항구로 무엇을 넣어야할지 모르겠다. 나는 그것이 문제라고 생각한다.
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("Spark Streaming");
JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.seconds(1));
JavaReceiverInputDStream<String> lines = jssc.socketTextStream("http://stream.meetup.com/2/rsvps", 80);
lines.print();
jssc.start();
jssc.awaitTermination();
여기에 내 오류가있다.
java.net.UnknownHostException: http://stream.meetup.com/2/rsvps
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
해결법
-
==============================
1.socketTextStream은 http 클라이언트로 작동하도록 설계되지 않았습니다. 이미 알게 되듯이 맞춤 수신기를 만들어야합니다. 시작할 수있는 장소 중 하나는 회의용 스트리밍 데이터 소스의 일부로 만든 수신기를 기반으로합니다 (https://github.com/actions/meetup-stream/blob/ 참조). 마스터 / src / main / scala / receiver / MeetupReceiver.scala).
socketTextStream은 http 클라이언트로 작동하도록 설계되지 않았습니다. 이미 알게 되듯이 맞춤 수신기를 만들어야합니다. 시작할 수있는 장소 중 하나는 회의용 스트리밍 데이터 소스의 일부로 만든 수신기를 기반으로합니다 (https://github.com/actions/meetup-stream/blob/ 참조). 마스터 / src / main / scala / receiver / MeetupReceiver.scala).
-
==============================
2.커스텀 리시버에 대한 spark 문서를 따르는 커스텀 UrlReceiver가 있습니다 :
커스텀 리시버에 대한 spark 문서를 따르는 커스텀 UrlReceiver가 있습니다 :
class UrlReceiver(urlStr: String) extends Receiver[String](StorageLevel.MEMORY_AND_DISK_2) with Logging { override def onStart() = { new Thread("Url Receiver") { override def run() = { val urlConnection: URLConnection = new URL(urlStr).openConnection val bufferedReader: BufferedReader = new BufferedReader( new InputStreamReader(urlConnection.getInputStream) ) var msg = bufferedReader.readLine while (msg != null) { if (!msg.isEmpty) { store(msg) } msg = bufferedReader.readLine } bufferedReader.close() } }.start() } override def onStop() = { // nothing to do } }
다음과 같이 사용하십시오.
val lines = sc.receiverStream(new UrlReceiver("http://stream.meetup.com/2/rsvps"))
from https://stackoverflow.com/questions/30672898/trying-to-get-spark-streaming-to-read-data-stream-from-website-what-is-the-sock by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop에서 json을 읽는 사용자 입력 형식 (0) | 2019.07.31 |
---|---|
[HADOOP] Hadoop에서 BZip2 파일 읽기 (0) | 2019.07.31 |
[HADOOP] 하이브는 distcp로 디렉토리 이동 프로세스를 덮어 씁니까? (0) | 2019.07.31 |
[HADOOP] 하이브의 로컬 CSV에 따옴표가있는 값을 묶은 테이블 내보내기 (0) | 2019.07.31 |
[HADOOP] PigLatin (Hadoop)으로 여러 파일로드 (0) | 2019.07.31 |