1. 程式人生 > >Hive(2)-Hive的安裝,使用Mysql替換derby,以及一丟丟基本的HQL

Hive(2)-Hive的安裝,使用Mysql替換derby,以及一丟丟基本的HQL

 一. Hive下載

1. Hive官網地址

http://hive.apache.org/

2. 文件檢視地址

https://cwiki.apache.org/confluence/display/Hive/GettingStarted

3. 下載地址

http://archive.apache.org/dist/hive/

4. github地址

https://github.com/apache/hive

5. 也可以使用我準備好的安裝包

https://pan.baidu.com/s/1Tus7NAV0Scbj9wesQkyr-A 

 

二. Hive安裝

1. 上傳

使用FTP工具把apache-hive-1.2.1-bin.tar.gz上傳到hadoop100下的的/opt/software目錄

2. 解壓

解壓apache-hive-1.2.1-bin.tar.gz到/opt/module/目錄

tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/

3. 重新命名

修改apache-hive-1.2.1-bin.tar.gz的名稱為hive-1.2.1

mv apache-hive-1.2.1-bin/ hive-1.2.1

4. 配置hive-env

cd /opt/module/hive-1.2.1/conf

#拷貝一份hive-env.sh.template命名為 hive-env.sh
cp
hive-env.sh.template hive-env.sh

設定一下HADOOP_HOME和HIVE_CONF_DIR

 

 5. 使用mysql替換掉預設的derby資料庫

由於derby不支援多客戶端登入,也就是同一時間只能有一個人操作,這完全就是扯求蛋.所以要替換

安裝前,如果虛機上有mysql了,就不用安裝了,如果想重新安裝,務必解除安裝乾淨

#檢視是否有mysql
rpm -qa | grep -i mysql

#解除安裝mysql的安裝元件
sudo rpm -e MySQL-server-5.6.24-1.el6.x86_64

#查詢並刪除MySQL相關的檔案
sudo find / -name mysql sudo rm -rf /var/lib/mysql sudo rm -rf /usr/lib64/mysql

 

使用ftp工具將網盤中的mysql的zip包上傳到linux上

使用unzip解壓

unzip mysql-libs.zip
cd mysql-libs

安裝mysql的server和client就不再贅述了,記得安裝的時候使用sudo,修改root使用者的登入host為%,刪掉其他三個,也不要忘了update完之後flush privileges;

安裝完後啟動mysql server,如果啟動失敗,試試加上sudo啟動

解壓connector

tar -zxvf mysql-connector-java-5.1.27.tar.gz

解壓完cd進去,將jar拷貝到hive

cp mysql-connector-java-5.1.27-bin.jar  /opt/module/hive-1.2.1/lib/

 

 cd到hive的conf目錄下,cat一下hive-default.xml.template

 明確說明,要建一個hive-site.xml檔案

vim hive-site.xml

注意替換mysql的uri和user pwd

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://hadoop100:3306/metastore?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <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.ConnectionUserName</name>
      <value>root</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>qwe123</value>
      <description>password to use against metastore database</description>
    </property>
</configuration>

6. 配置log的存放目錄

Hive的log預設存放在/tmp/nty/hive.log目錄下(當前使用者名稱下)

1). 修改/opt/module/hive/conf/hive-log4j.properties.template檔名稱為hive-log4j.properties

 mv hive-log4j.properties.template hive-log4j.properties

2). 在hive-log4j.properties檔案中修改log存放位置,

 

 三. Hive初體驗

首先啟動Hadoop叢集

#hadoop100上啟動hdfs
sbin/start-dfs.sh

#hadoop101上啟動yarn
sbin/start-yarn.sh

接下來基本就像操作mysql一樣了

有一個default庫

空庫,沒有表,那就建立一個

create table namelist (id int, name string);

插入一條資料

insert into namelist (id, name) values (1,'tom');

完完全全就是一個MapReduce程式,慢到下跪.

 查詢一下

簡單的操作基本就是這樣,跟mysql沒有差太多.