Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)...
Hive環(huán)境的安裝部署(完美安裝)(集群內(nèi)或集群外都適用)(含卸載自帶mysql安裝指定版本)
?
?
?
?
?
?
Hive 安裝依賴 Hadoop 的集群,它是運(yùn)行在 Hadoop 的基礎(chǔ)上。 所以在安裝 Hive 之前,保證 Hadoop 集群能夠成功運(yùn)行。
同時(shí),比如我這里的master、slave1和slave2組成的hadoop集群。hive的安裝可以安裝在任一一個(gè)節(jié)點(diǎn)上,當(dāng)然,也可以安裝在集群之外,取名為client。只需要ssh免密碼通信即可。
?
?
?
?
?
?
?
?
?
1、 下載Hive
這里很簡(jiǎn)單,不多贅述。
http://archive.apache.org/dist/?
?
?
?
?
2、安裝Hive
把Hive安裝包apache-hive-1.0.0-bin.tar.gz移動(dòng)到/home/hadoop/app/目錄下并解壓,然后將文件名稱改為 hive-1.0.0。并做好軟鏈接(實(shí)現(xiàn)多版本切換,別問這么多,高手必須掌握的技巧)
[hadoop@master app]$ tar -zxvf apache-hive-1.0.0-bin.tar.gz [hadoop@master app]$ mv apache-hive-1.0.0-bin hive-1.0.0 [hadoop@master app]$ ln -s hive-1.0.0 hive?
?
添加hive環(huán)境變量
[root@master ~]$ vi /etc/profile#hive export HIVE_HOME=/home/hadoop/app/hive PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH
[root@master ~]# source /etc/profile
?
?
?
?
3、安裝為hive存放元數(shù)據(jù)的MySQL
Hive 將元數(shù)據(jù)存儲(chǔ)在 RDBMS 中,一般常用 MySQL 和 Derby。默認(rèn)情況下,Hive 元數(shù)據(jù)保存在內(nèi)嵌的 Derby 數(shù)據(jù)庫中,只能允許一個(gè)會(huì)話連接,只適合簡(jiǎn)單的測(cè)試。實(shí)際生產(chǎn)環(huán)境中不適用, 為了支持多用戶會(huì)話,則需要一個(gè)獨(dú)立的元數(shù)據(jù)庫,使用 MySQL 作為元數(shù)據(jù)庫,Hive 內(nèi)部對(duì) MySQL 提供了很好的支持,配置一個(gè)獨(dú)立的元數(shù)據(jù)庫需要增加以下步驟。
?
?
?
如果你是一名有經(jīng)驗(yàn)大數(shù)據(jù)工程師,無論是安裝jdk(注意:CentOS6.5有自帶的jdk),還是安裝mysql。都是先查看系統(tǒng)是否已經(jīng)安裝Mysql包。
[root@master app]#?rpm -qa|grep mysql?
mysql-libs-5.1.71-1.el6.x86_64
[root@master?app]#?rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
[root@master?app]#?rpm -qa|grep mysql?
[root@master?app]#
?
?
?
?
?
?
?在線安裝 mysql 數(shù)據(jù)庫
[root@master app]# yum install mysql-server Loaded plugins: fastestmirror Determining fastest mirrors* base: mirrors.yun-idc.com* extras: mirrors.btte.net* updates: mirrors.163.com.... Is this ok [y/N]: y
...
?
?
?
?
?
?
?
?
?啟動(dòng)mysql服務(wù)
[root@master app]# service mysqld start Initializing MySQL database: Installing MySQL system tables... OK Filling help tables... OKTo start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system...
?
?
?
?
?
?
?
?
設(shè)置 mysql 的 root 密碼
MySQL在剛剛被安裝的時(shí)候,它的 root 用戶是沒有被設(shè)置密碼的,即回車就好。但是一般需要自定義配置,首先來設(shè)置 MySQL 的 root 密碼。
[root@master app]# mysql -u root -p Enter password: //默認(rèn)密碼為空,輸入后回車即可 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. mysql> set password for root@localhost=password('rootroot'); 密碼設(shè)置為rootroot 默認(rèn)情況下Mysql只允許本地登錄,所以只需配置root@localhost就好mysql> set password for root@%=password('rootroot'); 密碼設(shè)置為rootroot (其實(shí)這一步可以不配) mysql> set password for root@master=password('rootroot'); 密碼設(shè)置為rootroot (其實(shí)這一步可以不配) mysql>?select user,host,password from mysql.user; 查看密碼是否設(shè)置成功
mysql>?exit;
?
?
?
?
?
?
?
?
?
?
為 Hive 建立相應(yīng)的 Mysql 賬戶,并賦予足夠的權(quán)限。
[root@master app]# mysql -uroot -prootroot mysql> create user 'hive' identified by 'hive'; //創(chuàng)建一個(gè)賬號(hào):用戶名為hive,密碼為hive或者 mysql> create user 'hive'@'%' identified by 'hive'; //創(chuàng)建一個(gè)賬號(hào):用戶名為hive,密碼為hive
?
mysql> GRANT ALL PRIVILEGES ON *.* to 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION; //將權(quán)限授予host為%即所有主機(jī)的hive用戶 mysql> GRANT ALL PRIVILEGES ON *.* to 'hive'@'master' IDENTIFIED BY 'hive' WITH GRANT OPTION; //將權(quán)限授予host為master的hive用戶 mysql> GRANT ALL PRIVILEGES ON *.* to 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION; //將權(quán)限授予host為localhost的hive用戶(其實(shí)這一步可以不配)
默認(rèn)情況下Mysql只允許本地登錄,所以需要修改配置文件將地址綁定給注釋掉。
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
mysql>?select user,host,password from mysql.user;
mysql>?exit;
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
建立 Hive 專用的元數(shù)據(jù)庫,記得用剛才創(chuàng)建的 “hive” 賬號(hào)登錄,命令如下。
[root@master app]# mysql -uhive -phive //用hive用戶登錄,密碼hive mysql> create database hive; //創(chuàng)建為hive存放的元數(shù)據(jù)庫的名稱為hive Query OK, 1 row affected (0.00 sec)mysql> exit;
?
?
?
?
?
?
?
?
找到Hive安裝目錄 conf/下的 hive-site.xml文件,修改以下幾個(gè)屬性。
如果conf/目錄下沒有 hive-site.xml文件,則需要拷貝一個(gè)名為hive-site.xml的文件。
[hadoop@master conf]$ cp hive-default.xml.template hive-site.xml?
[hadoop@master conf]$ vi hive-site.xml < property>< name>javax.jdo.option.ConnectionDriverName< /name>< value>com.mysql.jdbc.Driver< /value>< description>Driver class name for a JDBC metastore< /description> < /property>< property>< name>javax.jdo.option.ConnectionURL< /name>< value>jdbc:mysql://master:3306/hive?characterEncoding=UTF-8< /value>< description>JDBC connect string for a JDBC metastore< /description> < /property>< property>< name>javax.jdo.option.ConnectionUserName< /name>< value>hive< /value>< description>Username to use against metastore database< /description> < /property>< property>< name>javax.jdo.option.ConnectionPassword< /name>< value>hive< /value>< description>password to use against metastore database< /description> < /property>?
?
?
?
?
在hive 安裝目錄下,創(chuàng)建一個(gè)臨時(shí)的IO文件iotmp,專門為hive來存放臨時(shí)的io文件。
[hadoop@master hive]$ pwd/home/hadoop/app/hive
[hadoop@master hive]$ mkdir iotmp [hadoop@master hive]$ ls bin derby.log hcatalog lib metastore_db README.txt scripts conf examples iotmp LICENSE NOTICE RELEASE_NOTES.txt
?
?
?
?
然后將路徑配置到hive-site.xml文件的以下參數(shù)中:
[hadoop@master conf]$ vi hive-site.xml < property>< name>hive.querylog.location< /name>< value>/home/hadoop/app/hive/iotmp< /value>< description>Location of Hive run time structured log file< /description> < /property>< property>< name>hive.exec.local.scratchdir< /name>< value>/home/hadoop/app/hive/iotmp< /value>< description>Local scratch space for Hive jobs< /description> < /property>< property>< name>hive.downloaded.resources.dir< /name>< value>/home/hadoop/app/hive/iotmp< /value>< description>Temporary local directory for added resources in the remote file system.< /description> < /property>?
?
?
?
?
?
?
?
?
將mysql-connector-java-5.1.21.jar驅(qū)動(dòng)包,拷貝到 $HIVE_HOME/lib 目錄下。
[hadoop@master lib]#pwd/home/hadoop/app/hive/lib
[hadoop@master lib]#rz //回車,選擇已經(jīng)下載好的mysql驅(qū)動(dòng)包即可 [hadoop@master lib]$ ls mysql-connector-java-5.1.21.jar
?
?
?
?
?
?
開啟hive前,先啟動(dòng)mysql和hadoop集群
[hadoop@master app]$ pwd /home/hadoop/app [hadoop@master app]$ service mysqld status[hadoop@master app]$ service mysqld start ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
保存,開啟hive即可。
[hadoop@master hive]$ pwd
/home/hadoop/app/hive
[hadoop@master hive]$ ll
total 400
drwxrwxr-x. 3 hadoop hadoop 4096 Apr 12 11:01 bin
drwxrwxr-x. 2 hadoop hadoop 4096 Apr 12 18:34 conf
drwxrwxr-x. 4 hadoop hadoop 4096 Apr 12 11:01 examples
drwxrwxr-x. 7 hadoop hadoop 4096 Apr 12 11:01 hcatalog
drwxrwxr-x 2 hadoop hadoop 4096 Apr 12 18:34 iotmp
drwxrwxr-x. 4 hadoop hadoop 4096 Apr 12 18:35 lib
-rw-r--r--. 1 hadoop hadoop 23828 Jan 30 2015 LICENSE
-rw-r--r--. 1 hadoop hadoop 397 Jan 30 2015 NOTICE
-rw-r--r--. 1 hadoop hadoop 4044 Jan 30 2015 README.txt
-rw-r--r--. 1 hadoop hadoop 345744 Jan 30 2015 RELEASE_NOTES.txt
drwxrwxr-x. 3 hadoop hadoop 4096 Apr 12 11:01 scripts
[hadoop@master hive]$ bin/hive
hive> show databases; OK default Time taken: 3.684 seconds, Fetched: 1 row(s) hive> exit;
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/braveym/p/6701179.html
總結(jié)
以上是生活随笔為你收集整理的Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sysfs: cannot create
- 下一篇: Servlet学习笔记(七)—— 自己定