Hive
- Hadoop 과 Java project를 연결하는 역할
- Hive를 사용하면 Java project에서 Hive SQL로 쉽게 Data를 요청할 수 있다
- Hive는 SQL을 사용해 Hadoop으로 MapReduce를 요청한다
Linux OS 에서 Hadoop 준비하기
- Hadoop Server 실행
Run the Linux OS on VMware.
Open a Linux terminal and run Hadoop.
Verifying the execution of a Java process with "jps"
# start-all.sh
# jps
# hive
사용할 데이터
 |
경기도에 있는 음식점정보 (까페) |
Field Delimited ',' Line Delimited '\n'
CREATE TABLE cafe (
City STRING,
PlaceName String,
PermitDate Date,
BusinessStatus String,
MultipleFacilities String,
TotalSize Double,
HygieneIndustry String,
HygieneName String,
NumberAddress String,
StreetAddress String,
Zipcode Int,
Latitude Double,
Longitude Double
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
load data local
inpath '/root/csv/cafe.csv'
overwrite into table cafe;
# hive --service hiveserver2
Java Project 준비
- SLF4J
SLF4J(Simple Logging Facade for Java) : log4J, jdk, common_log 등을 통합해서 사용가능한 logging Framework
- jar 파일 다운로드
- Java project setting
Project > Properties > Java build path > Add External Jars
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.json.simple.JSONArray;
public class HiveTest {
public static void main(String[] args) throws Exception {
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection conn = DriverManager.getConnection(
"jdbc:hive2://192.168.111.101:10000/default", "root", "111111");
Statement stmt = conn.createStatement();
String cafe =
"select city, placename from cafe LIMIt 2";
ResultSet rs = stmt.executeQuery(cafe);
JSONArray ja = new JSONArray();
while (rs.next()) {
JSONArray data = new JSONArray();
data.add(rs.getString(1));
data.add(rs.getString(2));
ja.add(data);
}
System.out.println(ja.toJSONString());
System.out.println("Success....");
conn.close();
}
}