0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初めて Hive を触ってみただけの記録

0
Last updated at Posted at 2022-09-11

hadoop授業なう。Hiveを社内でも聞いたことがあるので試す。

ここに書いてあるまま。

それを git にあげときました

setup

git clone https://github.com/kujiy/docker-hive-hadoop

cd docker-hive-hadoop

docker-compose up

docker ps --format "{{.ID}}     {{.Names}}                      {{.Image}}                      {{.Ports}}"

e0b6a1e55ece    hive-server                     docker-hub-mirror.linecorp.com/bde2020/hive:2.3.2-postgresql-metastore                  0.0.0.0:10000->10000/tcp, 10002/tcp
6b77c2d26103    hive-metastore                  docker-hub-mirror.linecorp.com/bde2020/hive:2.3.2-postgresql-metastore                  10000/tcp, 0.0.0.0:9083->9083/tcp, 10002/tcp
5bd6f27a0977    hive-metastore-postgresql                       docker-hub-mirror.linecorp.com/bde2020/hive-metastore-postgresql:2.3.0                  5432/tcp
a1d6a26ff9d8    datanode                        docker-hub-mirror.linecorp.com/bde2020/hadoop-datanode:2.0.0-hadoop2.7.4-java8                  0.0.0.0:50075->50075/tcp
ca4a6e5d9b55    namenode                        docker-hub-mirror.linecorp.com/bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8                  0.0.0.0:50070->50070/tcp


hadoop dashboard

とりあえず hadoopが動いてることがわかる

http://localhost:50070/
http://localhost:50075/

create DB table

docker exec -it hive-server /bin/bash

root@dc86b2b9e566:/opt# ls
hadoop-2.7.4  hive

root@dc86b2b9e566:/opt# cd ..

root@dc86b2b9e566:/# ls
bin  boot  dev employee  entrypoint.sh  etc  hadoop-data  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

root@dc86b2b9e566:/# cd employee/

root@dc86b2b9e566:/employee# hive -f employee_table.hql

root@dc86b2b9e566:/employee# hadoop fs -put employee.csv hdfs://namenode:8020/user/hive/warehouse/testdb.db/employee

DB Query

root@df1ac619536c:/employee# hive

hive> show databases;
OK
default
testdb
Time taken: 2.363 seconds, Fetched: 2 row(s)

hive> use testdb;
OK
Time taken: 0.085 seconds

hive> select * from employee;
OK
1 Rudolf Bardin 30 cashier 100 New York 40000 5
2 Rob Trask 22 driver 100 New York 50000 4
3 Madie Nakamura 20 janitor 100 New York 30000 4
4 Alesha Huntley 40 cashier 101 Los Angeles 40000 10
5 Iva Moose 50 cashier 102 Phoenix 50000 20
Time taken: 4.237 seconds, Fetched: 5 row(s)

where, order by は普通に使えた。 select avg(age) もいけたけど、GROUP BY はエラー。なんかやり方があるんだろう

と思ったらimage nameに postgres って書いてた。何もわからん。

persistence data

demoだとdocker downしてもdata消えないぜって言ってるけど、まぁdatanodeがvolumeされてるからそりゃそうだろ、くらいの感想しかなかった

docker-compose down
docker-compose up


docker exec -it hive-server /bin/bash

hive

hive> select * from testdb.employee;

これ、hiveとしては、dataがlocaldiskになくて、remoteでHDFSに通信して取ってるんだぜってことを言いたいんかな。たぶん、

感想

とりあえずなんとなく思ってること

HDFS がfile system. ファイルが保存される
hadoopはクラスターを作るモノ的な? HDFSを分散させたりしてるんだと感じている

hadoop + HDFS はただの NAS 。(もちろんjarを走らせたりできるけど)

HIVEを使うと、MySQLみたいにqueryができるものと理解した。dataはたぶんHDFSの中に保存される。/var/lib/mysql/ が分散配置される感じなのかな

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?