#하둡 실행하기(모든노드에서 ips,sps,mr,tr은 기본)
hadoop namenode -format
start-all.sh
#hive는 하둡에서 사용하는 데이터베이스이다.
#하둡에서 이용할 데이터가 있는 Data폴더에서 hive실행
sf
cd Data
hive
#테이블을 만들어준다
#수집한 데이터에 따라서 만들어주는데 csv파일의 열명에 따라서 hive 테이블에 하나하나 컬럼을 만들어준다.
#나같은경우 비행기 데이터를 가지고 하므로 그 데이터의 열 명에 따라 하나하나 만들어준다.
create table airdelay(
Year INT,
Month INT,
DayofMonth INT,
DayOfWeek INT,
DepTime INT,
CRSDepTime INT,
ArrTime INT,
CRSArrTime INT,
UniqueCarrier STRING,
FlightNum INT,
TailNum STRING,
ActualElapsedTime INT,
CRSElapsedTime INT,
AirTime INT,
ArrDelay INT,
DepDelay INT,
Origin STRING,
Dest STRING,
Distance INT,
TaxiIn INT,
TaxiOut INT,
Cancelled INT,
CancellationCode STRING COMMENT 'A=carrier, B=weather,C=NAS,D=security',
Diverted INT COMMENT '1=yes,0=no',
CarrierDelay STRING,
WeatherDelay STRING,
LateAircraftDelay STRING)
Partitioned by (DelayYear INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
# 만든 테이블들 목록을 보여준다
#테이블을 만들었을때 ok가 뜨면 성공이지만 확인을 한번 더 해보자
show tables;
## airdelay테이블의 구성을 확인한다. 컬럼이 무엇이 있는지, 컬럼의 데이터 속성은 무엇인지
desc airdelay;
## 이제 원하는 데이터를 테이블에 저장해 주어야한다
load data local inpath '1999.csv'
overwrite into table airdelay
partition(delayYear=1999);
####데이터를저장하고 나면 이제 sql 문으로 데이터를 검색하고 사용할 수 있다
##insert문을 사용하는이유는 그냥 터미널에서 출력하면 한글이 깨져서 나오기 때문이기도 하다
#이때 데이터를 공유폴더로 내보내려면 insert문을 사용하면된다
insert overwrite local directory '/home/hadoop/hdfs/result1'
select
from
where
group by
order by
####터미널을 하나더 연다
##루트계정으로 접속후 insert구문에 입력한 경로로 가서 결과물이 들어있는 result1폴더를 확인한다.
cd /home/hadoop/hdfs
ls
#result1폴더로 이동해서 파일을 확인하면 00000_0이런 파일명으로 결과물이저장되어있다
cd result1
ls
###이 폴더의 결과물을 공유폴더로 옮긴다.
mv 00000_0 /mnt/hgfs/temp/kkk.txt
#이제 공유폴더로 가서 확인하면 kkk.txt파일을 확인할수 있다
#txt파일안에 내용을 보면 튜플들이 000r000r000이런식으로 컬럼과 컬럼 사이가 r로 구분되어있는데
# r을,로 바꾸어준다.그후 엑셀에 붙여넣기하여 원하는 테이블이나 그래프로 만들어 시각화하면된다.
'Hadoop' 카테고리의 다른 글
하둡 wordcount (0) | 2022.11.23 |
---|---|
hive 설치 및 구동 (0) | 2022.11.22 |
리눅스 설치 (0) | 2022.11.22 |
하둡 설치 (0) | 2022.11.21 |
리눅스에서 SSH설정 (0) | 2022.11.21 |