Hadoop之Hive本地與遠端mysql資料庫管理模式安裝手冊
一、環境描述
Mysql版本:mysql-installer-community-5.5.27.1 32位
Mysql for Windows 7 32位:我把mysql資料庫安裝在了自己win7的筆記本上,這樣的好處就是減少了虛擬機器 master slave的開銷和使用空間還可以多利用一臺機器的資源,如果你的虛擬機器資源很緊張的話也可以這樣部署。
Linux ISO:CentOS-6.0-i386-bin-DVD.iso 32位
JDK version:"1.6.0_25-ea"
Hadoop software version:hadoop-0.20.205.0.tar.gz
Hbase version:hbase-0.90.5
Hive version:hive-0.8.1.tar.gz
二、Mysql資料庫注意事項
1.安裝mysql資料庫步驟略過,虛擬機器網路設定成host-only模式,兩邊系統都關閉防火牆,windows系統的360軟體最好也關閉,有可能會影響通訊。
資料庫使用者/密碼:root/root 和 hive/hive
資料庫埠:3306
Mysqll服務名:MySQL55
以將MySQL伺服器安裝成服務。安裝成服務,系統啟動時可以自動啟動MySQL伺服器
目前設定為不隨作業系統啟動而自動啟動
啟動/關閉mysql資料庫服務命令,必須啟動服務才能運算元據庫
net start mysql net stop mysql
2.檢視Mysql版本(注意 V大寫)
3.登陸Mysql,從windows上登入
4.在mysql上建立hive使用者並授予足夠的許可權
本人使用的是windows上mysql自帶的MySQL workbench客戶端軟體建立的使用者
Add Account :新增一個使用者
Name:hive 密碼 hive
Limit Connectivity to Hosts Matching:% 百分號是萬用字元意思,就是說不在限制登入的主機,你從任何一臺客戶機都可以登入,如果寫上ip地址說明此使用者只能從這個ip地址的機器上登入mysql資料庫
全部勾選授予all許可權
命令方式:Create user hive identified by hive;
Hadoop部署環境
主機名 |
IP |
節點名 |
備註 |
h1 |
192.168.2.102 |
master |
namenode和jobtracker |
h2 |
192.168.2.103 |
slave1 |
datanode和tasktracker |
H4 |
192.168.2.105 |
slave2 |
datanode和tasktracker |
Windows 192.168.2.110 Mysql window7部署mysql
master上測試是否能成功連線遠端mysql
[grid@h1 grid]$ ping 192.168.2.110
PING 192.168.2.110 (192.168.2.110) 56(84) bytes of data.
64 bytes from 192.168.2.110: icmp_seq=1 ttl=64 time=0.603 ms 是通的
64 bytes from 192.168.2.110: icmp_seq=2 ttl=64 time=0.283 ms
64 bytes from 192.168.2.110: icmp_seq=3 ttl=64 time=0.301 ms
--- 192.168.2.110 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 0.283/0.395/0.603/0.148 ms
[grid@h1 grid]$ mysql -h192.168.2.110 -uhive -phive
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
5.在mysql上建立hive資料庫用於存放hive後設資料(即資料字典)
檢視mysql資料庫軟體中都存在哪些資料庫,現在一共有6個
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| test |
| world |
+--------------------+
6 rows in set (0.01 sec)
開啟名為mysql的資料庫,只有開啟才能操作哦
mysql> use mysql;
Database changed 按Enter鍵出現Database changed 時說明操作成功!
檢視現在的資料庫中存在什麼表,一共有24張
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.01 sec)
建立名為hive的庫
mysql> create database hive;
Query OK, 1 row affected (0.00 sec)
檢視是否建立成功(檢視mysql資料庫軟體中都存在哪些資料庫)
mysql> show database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hive | 這裡已經建立hive庫成功
| mysql |
| performance_schema |
| sakila |
| test |
| world |
+--------------------+
7 rows in set (0.00 sec)
開啟名為hive的資料庫
mysql> use hive;
Database changed
mysql> show tables; 檢查hive庫有哪些表,當然現在還沒有建立目前沒有表
Empty set (0.00 sec)
三、Hive遠端模式安裝
1.先把hive-0.8.1.tar.gz包上傳到 master:/home/grid 目錄下然後解包
[grid@h1 grid]$ tar -zxvf hive-0.8.1.tar.gz
2.把mysql-connector-java-5.1.22-bin.jar包複製到hive的lib目錄下
[grid@h1 grid]$ cp mysql-connector-java-5.1.22-bin.jar hive-0.8.1/lib/
3.配置環境變數
[grid@h1 grid]$ vim .bashrc
export HIVE_HOME=/home/grid/hive-0.8.1
4.修改/home/grid/hive-0.8.1/bin/hive-config.sh
[grid@h1 bin]$ pwd
/home/grid/hive-0.8.1/bin
[grid@h1 bin]$ vim hive-config.sh
# hive-config.sh
export JAVA_HOME=/usr/java/jdk1.6.0_25
export HIVE_HOME=/home/grid/hive-0.8.1
export HADOOP_HOME=/home/grid/hadoop-0.20.2 hive捆綁hadoop叢集,必須知道hadoop配置檔案位置
5.根據hive-default.xml 複製 hive-site.xml 核心配置檔案,修改內容
cp hive-default.xml hive-site.xml
[grid@h1 conf]$ vim hive-site.xml
指出連線mysql的方法
Mysq連線驅動程式
Mysql登陸使用者名稱
Mysql登陸密碼
使用遠端資料庫,這裡的false是指hive服務和metastore後設資料儲存服務不在一個程式中,兩個各自獨立它們兩個可以放在不同的機器上,如果是true說明這2個服務是合併在一個程式中的,mysql資料庫是獨立的一個程式,即可在本地機器也可以在遠端機器
Hive表資料存放目錄,每一個表對應一個目錄,這是自帶預設值
Hive臨時檔案存放的目錄,這個也不用管,使用預設值即可
這句話是自己新增的,原文裡沒有
Thrift:是hive的通訊協議
127.0.0.1:9083 是指在哪臺機器上啟動hive 服務,只有啟動服務才能正常使用hive
6.配置hive-log4j.properties
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter 修改這一行
這裡請注意,我修改後啟動hive報錯,恢復原狀就沒事了,大家可以試試
7.檢查hadoop叢集狀態
[grid@h1 conf]$ hadoop dfsadmin -report
Configured Capacity: 19865944064 (18.5 GB)
Present Capacity: 8831234048 (8.22 GB)
DFS Remaining: 8816201728 (8.21 GB)
DFS Used: 15032320 (14.34 MB)
DFS Used%: 0.17%
Under replicated blocks: 4
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 2 (2 total, 0 dead) 沒有問題2個slave執行正常
Name: 192.168.2.103:50010
Decommission Status : Normal
Configured Capacity: 9932972032 (9.25 GB)
DFS Used: 7516160 (7.17 MB)
Non DFS Used: 5402759168 (5.03 GB)
DFS Remaining: 4522696704(4.21 GB)
DFS Used%: 0.08%
DFS Remaining%: 45.53%
Last contact: Mon Nov 19 17:51:50 CST 2012
Name: 192.168.2.105:50010
Decommission Status : Normal
Configured Capacity: 9932972032 (9.25 GB)
DFS Used: 7516160 (7.17 MB)
Non DFS Used: 5631950848 (5.25 GB)
DFS Remaining: 4293505024(4 GB)
DFS Used%: 0.08%
DFS Remaining%: 43.22%
Last contact: Mon Nov 19 17:51:48 CST 2012
8.修改mysql字符集
mysql> use hive;
Database changed
mysql> alter database hive character set latin1;
Query OK, 1 row affected (0.11 sec)
9.啟動hive
[grid@h1 bin]$ pwd
/home/grid/hive-0.8.1/bin
[grid@h1 bin]$ ./hive
[grid@h1 bin]$ ./hive
Logging initialized using configuration in file:/home/grid/hive-0.8.1/conf/hive-log4j.properties
Hive history file=/tmp/grid/hive_job_log_grid_201211191942_411407039.txt
hive> show tables; 顯示錶,沒有建立當然沒有
OK
Time taken: 3.2 seconds
hive> create table leo1 (x int,y int); 建立表
OK
Time taken: 1.191 seconds
hive> show tables; 可以顯示出來了
OK
leo1
Time taken: 0.148 seconds
已經進入hive模式,還可以建立表
註明:
當你設定的為本地模式時候
[grid@h1 bin]$ ./hive
Logging initialized using configuration in file:/home/grid/hive-0.8.1/conf/hive-log4j.properties
Hive history file=/tmp/grid/hive_job_log_grid_201211231243_664195168.txt
hive> show tables;
OK
leo1
Time taken: 21.218 seconds
直接進入hive命令列shell,後臺自動啟動metestore服務和hive服務而且這2個服務還是同在一個程式中,不用手工啟動,這點和遠端模式還是有點不同的。
當你設定的為遠端模式時候
[grid@h1 bin]$ ./hive --service hiveserver 這是啟動hive服務
Starting Hive Thrift Server
[grid@h1 bin]$ ./hive --service metastore 這是啟動後設資料儲存服務
Starting Hive Metastore Server
正常情況是都在這卡住了,相當於前臺啟動,如果有異常請關閉當前視窗,另開一個視窗重新啟動這2個服務。為什麼要手動啟動這2個服務呢,因為這2個服務都是相互獨立的程式,可以部署在不同的機器上
[grid@h1 bin]$ ./hive
Logging initialized using configuration in file:/home/grid/hive-0.8.1/conf/hive-log4j.properties
Hive history file=/tmp/grid/hive_job_log_grid_201211231324_199334603.txt
hive> show tables; 這裡顯示建立了2個表,這2個表都是建在HDFS檔案系統上的
OK mysql只儲存hive使用者建立表的後設資料
leo1
leo2
Time taken: 0.538 seconds
hive> create table leo2 (x int);
OK
Time taken: 0.317 seconds
進入mysql資料庫檢視hive建立表的後設資料
mysql> use hive;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_hive |
+--------------------+
| bucketing_cols |
| cds |
| columns_v2 |
| database_params |
| dbs |
| idxs |
| index_params |
| part_col_privs |
| part_privs |
| partition_key_vals |
| partition_keys |
| partition_params |
| partitions |
| sd_params |
| sds |
| sequence_table |
| serde_params |
| serdes |
| sort_cols |
| table_params |
| tbl_col_privs |
| tbl_privs |
| tbls |
+--------------------+ 紅色的就是hive的資料字典表,這些表第一次連線時就已經建立了,後面就會一直存在,只是裡面的後設資料內容會跟著hive操作而變化。
23 rows in set (0.00 sec)
mysql> select * from tbls;
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
| 6 | 1353597034 | 1 | 0 | grid | 0 | 6 | leo1 | MANAGED_TABLE | NULL | NULL |
| 11 | 1353648090 | 1 | 0 | grid | 0 | 11 | leo2 | MANAGED_TABLE | NULL | NULL |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
2 rows in set (0.00 sec)
hive> drop table leo2; 我刪除了 leo2表
OK
Time taken: 1.796 seconds
mysql> select * from tbls; 注意提示符
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
| 6 | 1353597034 | 1 | 0 | grid | 0 | 6 | leo1 | MANAGED_TABLE | NULL | NULL |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
1 row in set (0.00 sec)
Leo2表的後設資料也跟著沒有了
10.使用web瀏覽器訪問hive
[grid@h1 bin]$ ./hive --service hwi 啟動hwi服務
12/11/23 13:50:45 INFO hwi.HWIServer: HWI is starting up
12/11/23 13:50:45 WARN conf.HiveConf: DEPRECATED: Ignoring hive-default.xml found on the CLASSPATH at /home/grid/hive-0.8.1/conf/hive-default.xml
12/11/23 13:50:45 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
12/11/23 13:50:45 INFO mortbay.log: jetty-6.1.14
12/11/23 13:50:46 INFO mortbay.log: Extract jar:file:/home/grid/hive-0.8.1/lib/hive-hwi-0.8.1.war!/ to /tmp/Jetty_192_168_2_102_9999_hive.hwi.0.8.1.war__hwi__.4m0x2o/webapp
12/11/23 13:50:47 INFO mortbay.log: Started SocketConnector@192.168.2.102:9999
12/11/23 13:51:21 INFO hive.metastore: Trying to connect to metastore with URI thrift://127.0.0.1:9083
12/11/23 13:51:21 INFO hive.metastore: Connected to metastore.
12/11/23 13:51:21 ERROR hive.metastore: Unable to shutdown local metastore client
12/11/23 13:51:21 ERROR hive.metastore: [Ljava.lang.StackTraceElement;@16ef71
Hive history file=/tmp/grid/hive_job_log_grid_201211231351_1262762954.txt
這個服務也是前臺啟動,在這裡就卡死了,不用管
啟動瀏覽器在位址列:http://192.168.2.102:9999/hwi
Leonarding
2012.11.19
天津&winter
分享技術~成就夢想
Blog:http://space.itpub.net/26686207
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26686207/viewspace-749844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 八、hive3.1.2 安裝及其配置(本地模式和遠端模式)Hive模式
- MySQL server的安裝以及增刪改查遠端資料庫MySqlServer資料庫
- mysql database manual(mysql資料庫手冊)MySqlDatabase資料庫
- 遠端連線mysql資料庫MySql資料庫
- mysql dump 拉取遠端資料同步到本地庫的shell 指令碼MySql指令碼
- Windows環境下達夢資料庫安裝及解除安裝手冊Windows資料庫
- Linux環境下達夢資料庫安裝及解除安裝手冊Linux資料庫
- Hadoop大資料實戰系列文章之安裝HadoopHadoop大資料
- (詳細)ubuntu18.04建立mysql資料庫並本地database遠端連線UbuntuMySql資料庫Database
- 資料庫mysql8.0.22的安裝與使用資料庫MySql
- Ubuntu安裝MySQL資料庫UbuntuMySql資料庫
- Hive -------- 使用mysql儲存hive後設資料,Mysql的安裝以及配置步驟HiveMySql
- Hadoop大資料實戰系列文章之HiveHadoop大資料Hive
- 數倉小組作業(一)Mac 安裝JDK、Mysql、Hadoop、HiveMacJDKMySqlHadoopHive
- 【MySQL資料庫】MySQL5.7安裝與配置、視覺化工具安裝和破解MySql資料庫視覺化
- CentOS 7 系統安裝與遠端連線 MySQL 5.7CentOSMySql
- Linux下安裝Mysql資料庫LinuxMySql資料庫
- 安裝MySQL8資料庫MySql資料庫
- Apache Hudi 與 Hive 整合手冊ApacheHive
- MySQL資料庫遠端連線開啟方法MySql資料庫
- Python與資料庫的新人手冊 -- MySQLPython資料庫MySql
- Python與資料庫的新人手冊 — MySQLPython資料庫MySql
- 【Hadoop】大資料安裝部署之虛擬機器的安裝Hadoop大資料虛擬機
- sqoop用法之mysql與hive資料匯入匯出OOPMySqlHive
- 使用Xmanager軟體遠端呼叫圖形化安裝Oracle資料庫Oracle資料庫
- 9、Linux下mysql資料庫安裝與配置實操LinuxMySql資料庫
- Hive學習之Hive的安裝Hive
- 華為GaussDB資料庫之Yukon安裝與使用資料庫
- 快速實現本地資料備份與FTP遠端資料遷移FTP
- 【Linux】mysql下載與安裝與重置密碼與建立資料庫LinuxMySql密碼資料庫
- MySQL資料庫安裝步驟-WindowsMySql資料庫Windows
- docker 安裝執行mysql資料庫DockerMySql資料庫
- 在FreeBSD中安裝MySQL資料庫MySql資料庫
- 下載和安裝MySQL資料庫MySql資料庫
- linux配置mysql資料庫遠端連線失敗LinuxMySql資料庫
- 本地windows搭建spark環境,安裝與詳細配置(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)WindowsSparkJDKHadoop
- Linux下安裝redis資料庫服務,並開啟遠端連線LinuxRedis資料庫
- mysql資料庫全家桶(安裝與如何寫sql,如何使用)MySql資料庫