赞
踩
目录
首先Hive会将数据存储在HDFS上,Hive的本质是将HQL转化成MapReduce,Hive还需要YARN进行资源调度,所以安装Hive的前提是,你已经搭建好了Hadoop集群,关于Hadoop集群的搭建,请参见下面的这篇文章:
Hive是运行在Hadoop的集群上的,我们并不需要搭建Hvie集群,只要一台机器安装Hive即可。下面开始Hive的安装:
- 1,去官网下载一下hive的jar包,拖到linux的software目录下:将其解压到module目录下
- [isea@hadoop101 software]$ ll
- 总用量 575068
- -rw-rw-r--. 1 isea isea 92834839 11月 30 13:35 apache-hive-1.2.1-bin.tar.gz
- -rw-rw-r--. 1 isea isea 197657687 11月 14 17:55 hadoop-2.7.2.tar.gz
- -rw-rw-r--. 1 isea isea 185515842 11月 14 17:55 jdk-8u144-linux-x64.tar.gz
- -rw-rw-r--. 1 isea isea 77807942 11月 30 13:35 mysql-libs.zip
- -rw-rw-r--. 1 isea isea 35042811 11月 28 16:39 zookeeper-3.4.10.tar.gz
- [isea@hadoop101 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
-
-
-
- 2,将apache-hive-1.2.1-bin目录修改为hive
- [isea@hadoop101 module]$ ll
- 总用量 20
- drwxrwxr-x. 8 isea isea 4096 11月 30 13:39 apache-hive-1.2.1-bin
- drwxrwxr-x. 3 isea isea 4096 11月 28 15:05 HA
- drwxr-xr-x. 11 isea isea 4096 11月 28 15:03 hadoop-2.7.2
- drwxr-xr-x. 8 isea isea 4096 7月 22 2017 jdk1.8.0_144
- drwxr-xr-x. 11 isea isea 4096 11月 28 17:04 zookeeper-3.4.10
- [isea@hadoop101 module]$ mv apache-hive-1.2.1-bin/ hive
- [isea@hadoop101 module]$ ll
- 总用量 20
- drwxrwxr-x. 3 isea isea 4096 11月 28 15:05 HA
- drwxr-xr-x. 11 isea isea 4096 11月 28 15:03 hadoop-2.7.2
- drwxrwxr-x. 8 isea isea 4096 11月 30 13:39 hive
- drwxr-xr-x. 8 isea isea 4096 7月 22 2017 jdk1.8.0_144
- drwxr-xr-x. 11 isea isea 4096 11月 28 17:04 zookeeper-3.4.10
-
-
- 3,修改conf目录下的hive-env.sh.template 为hive-env.sh,并配置该文件如下:
- [isea@hadoop101 conf]$ cp hive-env.sh.template hive-env.sh
- # HADOOP_HOME=${bin}/../../hadoop
- HADOOP_HOME=/opt/module/hadoop-2.7.2
-
- # Hive Configuration Directory can be controlled by:
- # export HIVE_CONF_DIR=
- export HIVE_CONF_DIR=/opt/module/hive/conf
-
-
- 4,群起集群
- [isea@hadoop101 conf]$ start-dfs.sh
- [isea@hadoop102 ~]$ start-yarn.sh
-
- 5,启动hive
- [isea@hadoop101 hive]$ bin/hive
-
- Logging initialized using configuration in jar:file:/opt/module/hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties
- hive>
如此一来,我们就完成了hive的安装。
Hive的Metastore默认存储在自带的derby数据库中,该数据并不支持并发的操作,不能多个客户端同时访问Hive,我们现在将该数据库更换为MySQL:
- 1,检查该节点上是否安装了mysql 如果安装了将其卸载:
- [isea@hadoop101 software]$ rpm -qa|grep mysql
- mysql-libs-5.1.73-7.el6.x86_64
- [isea@hadoop101 software]$ sudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
- [isea@hadoop101 software]$ unzip mysql-libs.zip
- Archive: mysql-libs.zip
- creating: mysql-libs/
- inflating: mysql-libs/MySQL-client-5.6.24-1.el6.x86_64.rpm
- inflating: mysql-libs/mysql-connector-java-5.1.27.tar.gz
- inflating: mysql-libs/MySQL-server-5.6.24-1.el6.x86_64.rpm
-
-
- 2,将实现准备好的mysql(去官网下载)拖到linux下的software目录下,并将其解压在当前的目录,并安装MySQL服务器
- [isea@hadoop101 software]$ cd mysql-libs
- [isea@hadoop101 mysql-libs]$ ll
- 总用量 76048
- -rw-rw-r--. 1 isea isea 18509960 3月 26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
- -rw-rw-r--. 1 isea isea 3575135 12月 1 2013 mysql-connector-java-5.1.27.tar.gz
- -rw-rw-r--. 1 isea isea 55782196 3月 26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm
- [isea@hadoop101 mysql-libs]$ sudo rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
-
- 注意下面的信息:
- A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
- You will find that password in '/root/.mysql_secret'.
- 查看该问价下面的内容,一会使用这个密码登录root的mysql
- [isea@hadoop101 mysql-libs]$ sudo cat /root/.mysql_secret
- # The random password set for the root user at Fri Nov 30 14:00:19 2018 (local time): 6bF9JBHldRZTdq8P
-
- 3,启动mysql服务器,并开始安装客户端
- [isea@hadoop101 mysql-libs]$ sudo service mysql start
- Starting MySQL. [确定]
- [isea@hadoop101 mysql-libs]$sudo rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
-
- 4,使用临时密码登录,设置新密码之后,退出之后在重新登录:
- [isea@hadoop101 mysql-libs]$ mysql -uroot -p6bF9JBHldRZTdq8P
-
- mysql> set password = password('isea');
- Query OK, 0 rows affected (0.06 sec)
-
- mysql> exit
- Bye
- [isea@hadoop101 mysql-libs]$ mysql -uroot -pisea
- mysql>
-
- 5,配置只要是用户+密码,在任何机器上都能登录MySQL数据库
- mysql> use mysql
- Database changed
- mysql> select user,host,password from user;
- +------+-----------+-------------------------------------------+
- | user | host | password |
- +------+-----------+-------------------------------------------+
- | root | localhost | *B1B27D3388A6C6CEC082FC5FFB8182B7040BEA70 |
- | root | hadoop101 | *3E63365D452A91A80F85B144900D0300B5115268 |
- | root | 127.0.0.1 | *3E63365D452A91A80F85B144900D0300B5115268 |
- | root | ::1 | *3E63365D452A91A80F85B144900D0300B5115268 |
- +------+-----------+-------------------------------------------+
- 4 rows in set (0.00 sec)
-
- mysql> update user set host='%' where host='localhost';
-
- mysql> delete from user where Host='hadoop101';
- mysql> delete from user where Host='127.0.0.1';
- mysql> delete from user where Host='::1';
-
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
-
- 6,将Hive的元数据配置到Mysql
- 将驱动解压到当前的目录,cd进入解压之后的目录,将jar包拷贝到hive的lib目录下
- [isea@hadoop101 mysql-libs]$ tar -zxvf mysql-connector-java-5.1.27.tar.gz
- [isea@hadoop101 mysql-libs]$ cd mysql-connector-java-5.1.27
- [isea@hadoop101 mysql-connector-java-5.1.27]$ ll
- 总用量 1272
- -rw-r--r--. 1 isea isea 47173 10月 24 2013 build.xml
- -rw-r--r--. 1 isea isea 222520 10月 24 2013 CHANGES
- -rw-r--r--. 1 isea isea 18122 10月 24 2013 COPYING
- drwxr-xr-x. 2 isea isea 4096 11月 30 14:19 docs
- -rw-r--r--. 1 isea isea 872303 10月 24 2013 mysql-connector-java-5.1.27-bin.jar
- -rw-r--r--. 1 isea isea 61423 10月 24 2013 README
- -rw-r--r--. 1 isea isea 63674 10月 24 2013 README.txt
- drwxr-xr-x. 7 isea isea 4096 10月 24 2013 src
- [isea@hadoop101 mysql-connector-java-5.1.27]$ cp mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
-
- 7,在hive的conf目录下创建一个hive-site.xml,添加内容如下:
- [isea@hadoop101 conf]$ cat hive-site.xml
- <?xml version="1.0"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <configuration>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://hadoop101: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>isea</value>
- <description>password to use against metastore database</description>
- </property>
- </configuration>
此时连接MySQL数据库的话,会发现了多了一个Metastore数据库:
- [isea@hadoop108 ~]$ mysql -uroot -p
- Enter password:
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- [isea@hadoop108 ~]$ mysql -uroot -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | metastore |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- 5 rows in set (0.05 sec)
使用两个窗口连接Hive:
以上就是我们使用CLI的方式来连接Hive,下面我们介绍一下使用JDBC的方式来访问Hive:
- 1,开启hiveserver2 在 后台的服务
- [isea@hadoop108 ~]$ cd /opt/module/hive/
- [isea@hadoop108 hive]$ bin/hiveserver2 &
- [1] 6171
-
- 2,启动beeline,并使用beeline来连接hiveserver2 :
- [isea@hadoop108 hive]$ bin/beeline
- Beeline version 1.2.1 by Apache Hive
- beeline> !connect jdbc:hive2://hadoop108:10000
- Connecting to jdbc:hive2://hadoop108:10000
- Enter username for jdbc:hive2://hadoop108:10000: isea
- Enter password for jdbc:hive2://hadoop108:10000:
- Connected to: Apache Hive (version 1.2.1)
- Driver: Hive JDBC (version 1.2.1)
- Transaction isolation: TRANSACTION_REPEATABLE_READ
- 0: jdbc:hive2://hadoop108:10000> show databases;
- +----------------+--+
- | database_name |
- +----------------+--+
- | default |
- +----------------+--+
- 1 row selected (0.3 seconds)
以上我们就完成了使用JDBC 连接了Hive。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。