Hive個人心得筆記之安裝
目錄
十四.將mysql驅動包上傳到hive安裝目錄的lib目錄下
二十.通過DBS 、TBLS、COLUMNS_V2、SDS這幾張表來查看元數據信息
一.Hive安裝
- 安裝JDK (已安裝)
- 安裝Hadoop (已安裝)
- 配置JDK和Hadoop的環境變量 (已配置)
- 下載Hive安裝包 (已下載) wget hive
- 解壓安裝hive (已解壓) tar -xvf xxxx
- 啓動Hadoop的HDFS和Yarn (已啓動) start-all.sh
- 進入到bin目錄,啓動Hive:sh hive (或者執行:./hive)
- hive安裝過於簡單,解壓 無需配置 運行即可
二.Mysql安裝
一.卸載刪除Percona和Mysql相關依賴
[root@liuyong software]# rpm -ev --nodeps Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64
[root@liuyong software]# rpm -ev --nodeps Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64
[root@liuyong software]# rpm -ev --nodeps Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64
[root@liuyong software]# rpm -ev --nodeps Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64
[root@liuyong software]# rpm -ev --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
[root@liuyong software]# rpm -ev --nodeps tcl-mysqltcl-3.052-1.el6.x86_64
[root@liuyong software]# rpm -qa | grep Percona
[root@liuyong software]# rpm -qa | grep mysql
二.執行命令全部卸載
三.下載安裝即可
四.下載完成
一個客戶端,一個服務端
五.安裝客戶端,服務端
- rpm -ivh MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm
- rpm -ivh MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm
六.新增mysql用戶組,並創建mysql用戶
- groupadd mysql
- useradd -r -g mysql mysql
- 已經存在,無需關心
七.修改my.cnf,默認在/usr/my.cnf,
執行:vim /usr/my.cnf,添加如下內容: 如果沒有該文件手動創建
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
八.將mysqld加入系統服務,並隨機啓動
- 執行:cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
- 說明:/etc/init.d 是linux的一個特殊目錄,放在這個目錄的命令會隨linux開機而啓動。
九.啓動Mysql
啓動mysqld,執行:service mysqld start
十.查看初始生成的密碼
執行:vim /root/.mysql_secret 。這個密碼隨機生成的
因爲之前安裝過Mysql集羣,所以沒有,第一次安裝的會有,改下密碼爲root
十一.修改初始密碼
- 第一次安裝完mysql後,需要指定登錄密碼
- 執行:mysqladmin -u root -p password root 此時,提示要輸入初始生成的密碼,拷貝過來即可
自行操作
十二.進入mysql數據庫
- 執行:mysql -u root -p
- 輸入:root進入
- 執行:\s查看mysql數據配置信息
十三.進入conf目錄下,編輯新的配置文件,
名字爲:hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
十四.將mysql驅動包上傳到hive安裝目錄的lib目錄下
進入conf目錄下,編輯新的配置文件,名字爲:hive-site.xml
十五.進入到mysql數據庫,進行權限分配
- 執行:grant all privileges on *.* to 'root'@'hadoop01' identified by 'root' with grant option;
- 執行:grant all on *.* to 'root'@'%' identified by 'root';
- 執行:flush privileges;
十六.進入mysql數據庫,
執行:create database hive character set latin1;
十七.啓動hive客戶端
十八.關聯Hive查詢數據庫
十九.通過navicat來連接數據庫
二十.通過DBS 、TBLS、COLUMNS_V2、SDS這幾張表來查看元數據信息
1.DBS 存放的數據庫的元數據信息
2.TBLS存放的tables表信息
3.COLUMNS表存放的是列字段信息
4.SDS+表存放的HDFS裏的位置信息
四.元數據
一、概述
- hive可以管理hdfs上的文件,用表的形式來管理文件數據。而表名、表裏有哪些字段,字段類型、哪張表存在哪個數據下等這些表信息,稱之爲hive的元數據信息
- 默認情況下,hive的元數據信息不是存在hdfs上的,而是存在hive自帶的derby關係型數據庫裏的
- Hive安裝完成之後,通常都需要替換元數據庫,目前Hive只支持derby和mysql兩種元數據庫,需要將元數據庫替換爲MySQL
- 元數據的默認字符集是ISO8859-1
二、derby存在的問題
- derby數據庫是一種文件型的數據庫,在進入時會檢查當前目錄下是否有metastore_db文件夾用來存儲數據庫數據,如果有就直接使用,如果沒有就創建,這樣一旦換一個目錄,元數據就找不到了
- derby數據庫是一個單用戶的數據庫,無法支持多用戶同時操作,而hive如果使用derby作爲元數據庫,則也只能支持單用戶操作,這就導致在數據量大連接多的情況下會產生大量連接的積壓
五、常見問題
- 如果出現不能修改密碼的問題,則可以執行如下命令強制修改:
- 關閉MySQL服務:service mysqld stop
- 進入安全模式:mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
- 在安全模式下輸入:mysql -u root mysql
- 進入mysql之後輸入:
- UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
- FLUSH PRIVILEGES;
- quit
- 重啓MySQL服務:service mysqld restart
- 顯示MySQL密碼過期:
- 進入mysql
- 使用mysql庫:use mysql
- 更新密碼狀態:update user set password_expired='N' where user='root';
- 更新策略:flush privileges;
- 退出MySQL:quit