빅데이터

[빅데이터] 제플린 사용해 보기.

allempty_sheep 2024. 6. 18. 13:43
반응형
🎁 본 글은 실무로 '배우는 빅데이터기술' 책을 따라해보고 실행하여보는 과정을 기록한 글이다.

🎁 빅데이터 처리의 전체적인 흐름과 과정을 학습하기 쉬우며 빅데이터에 관심있는 사람들에게 추천한다.

 

❓ 아파치 제플린이란?

💨 데이터 탐색, 분석을 위한 도구.

💨 스파크를 이용한 Web 기반의 어플리케이션.

💨 Notebook 형대토 데이터를 다루고 분석 함.

 

제플린을 사용하여 운행지역을 분석 하여보고 시각화 하여 볼 것이다.

 

◼ 제플린 실행 여부 확인

zeppelin-daemon.sh status

 

◼ 실행이 되어있다면 아래 페이지에 들어간다.

http://server02.hadoop.com:8081

 

◼ 노트를 하나 만들어 주자.

 

◼ 노트에 실행할 명령어를 적어준다.

%sh 
hdfs dfs -cat /user/hive/warehouse/managed_smartcar_drive_info/biz_date=20240615/* |head

 

◼ 우측 실행 버튼을 눌러서 데이터를 확인 해 보자.

 

◼ 다른 명령문도 실행 해 본자.

val url="hdfs://server01.hadoop.com:8020"
val dPath="/user/hive/warehouse/managed_smartcar_drive_info/biz_date=20240615/*"
val driveData=sc.textFile(url + dPath)
case class DriveInfo(car_num: String,        sex: String,           age: String,            
                     marriage: String,       region: String,        job: String,           
                     car_capacity: String,   car_year: String,      car_model: String,
                     speed_pedal: String,    break_pedal: String,   steer_angle: String, 
                     direct_light: String,   speed: String,         area_num: String,       
                     date: String)

val drive = driveData.map(sd=>sd.split(",")).map(
                sd=>DriveInfo(sd(0).toString, sd(1).toString, sd(2).toString, sd(3).toString,
                              sd(4).toString, sd(5).toString, sd(6).toString, sd(7).toString,
                              sd(8).toString, sd(9).toString, sd(10).toString,sd(11).toString,
                              sd(12).toString,sd(13).toString,sd(14).toString,sd(15).toString
        )
)

drive.toDF().registerTempTable("DriveInfo")

 

◼ 아래 코드도 실행

%spark.sql
select T1.area_num,
       T1.avg_speed     
from  (select area_num, 
              avg(speed) as avg_speed
         from DriveInfo 
       group by area_num 
       having avg_speed >= ${AvgSpeed=60}
       ) T1
order by T1.avg_speed desc

 

에러가 발생 하였다.

java.net.ConnectException: Connection refused

server02 에 제플린을 재 시작 해 보았다.

zeppelin-daemon.sh restart

 

서버의 문제가 아니였다.

두번째 실행 코드의 url 이 잘못 된 것이였다. hdfs의 경로를 server01으로 변경 해 주었다.

val url="hdfs://server02.hadoop.com:8020"
=> val url="hdfs://server01.hadoop.com:8020"

 

그러자 아래와 같이 데이터가 잘 나오게 되었다.