Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能, Hive 底层是将 SQL 语句转换为 MapReduce 任务运行
hadoop集群搭建教程:http://39.105.70.212/?p=109
# 启动HDFS
start-dfs.sh
# 启动yarn集群
start-yarn.sh
下载地址:http://www.cqzstation.com:8000/f/ca074303a6/?raw=1
tar -zxvf apache-hive-1.2.1-bin.tar.gz
(1)编辑配置文件,使用命令:
vim /home/xutao/.bash_profile
(2)将以下内容添加到配置文件的底部:
export HIVE_HOME=/home/xutao/Desktop/software/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin
(3)让配置文件立即生效:
source /home/xutao/.bash_profile
(4)验证hive是否安装成功:
hive --help
因为hive有三种运行模式:内嵌模式、本地模式、远程模式,这次就教大家本地模式安装和远程模式安装
本地模式安装
安装mysql
rpm -qa | grep -i mysql
rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
rm -rf /usr/lib/mysql
rm -rf /usr/include/mysql
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
注意:卸载后 /var/lib/mysql(数据库文件的存放目录) 中的数据及 /etc/my.cnf(配置文件) 不会删除, 确定没用后就手工删除。
下载地址:http://www.cqzstation.com:8000/f/b6a90f173b/?raw=1
tar -xvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar
解压后有7个文件,我们只需要MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm和MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm
service mysql start
cat /root/.mysql_secret
mysql -uroot -p初始密码
mysql> set PASSWORD=PASSWORD('123456');
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xutao' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'hadoop01' IDENTIFIED BY 'xutao' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
命令释义: GRANT 权限 1,权限 2,…权限 n ON 数据库名称.表名称 TO 用户名@用户地址 IDENTIFIED BY ‘密码’;
当权限 1,权限 2,…权限 n 被 all privileges 或者 all 代替,表示赋予用户全部权限。select, insert, update, delete, create, drop, index, alter, grant,references, reload, shutdown, process, file 等 14 个权限。
数据库名称.表名称:被.代替时,表示赋予用户操作服务器上所有数据库所有表的权限。
用户名@用户地址 :用户地址可以是 localhost,也可以是 ip 地址、主机名、域名。也可以用’%’(任何主机)地址连接。’root’@’Hadoop1’含义就是允许 root 用户在 Hadoop1(Hive 安装主机) 进行远程登陆,并设置 root 用户的密码为 xutao。
WITH GRANT OPTION:用于对象授权。使用 with grant option,被授权用户可将所获得的权限再次授予其它用户或角色。
FLUSH PRIVILEGES:告诉服务器重新加载授权表。
cd /home/xutao/Desktop/software/apache-hive-1.2.1-bin/conf
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://Hadoop1:3306/hivedb?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>xutao</value>
<description>password to use against metastore database</description>
</property>
</configuration>
javax.jdo.option.ConnectionURL:JDBC连接字符串
javax.jdo.option.ConnectionDriverName:JDBC的driver
javax.jdo.option.ConnectionUserName:登录数据库的用户名
javax.jdo.option.ConnectionPassword:登录数据库的密码
下载地址:http://www.cqzstation.com:8000/f/b5550b8289/?raw=1
hive
这种模式需要使用 HIVE_HOME/bin 目录下提供的 beeline+hiveserver2 配合使用才可以。
其原理就是将 metadata 作为一个单独的服务进行启动。各种客户端通过 beeline 来连接,连接之前无需知道数据库的用户名和密码。
1、因其连接之前无需知道数据库的用户名和密码,所以在 hive-site.xml 中只需要配置以下两项即可,其他步骤和本地模式一样:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://Hadoop1:3306/hivedb?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>
</configuration>
hiveserver2
netstat -antp
beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://Hadoop1:10000
Connecting to jdbc:hive2://Hadoop1:10000
Enter username for jdbc:hive2://Hadoop1:10000: lemenness # 安装hadoop集群的用户名
Enter password for jdbc:hive2://Hadoop1:10000: ************ # 安装hadoop集群的密码
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://Hadoop1:10000>show database; # 输入命令
+----------------+--+
| database_name |
+----------------+--+
| default |
| hive |
| test |
+----------------+--+
3 rows selected (0.245 seconds)
0: jdbc:hive2://Hadoop1:10000>
如果连接失败,原因可能是hive找不到配置文件目录,进入hadoop02中hive的配置目录:
cd /home/xutao/Desktop/software/apache-hive-1.2.1-bin/conf
修改hive-env.sh,添加hive的conf路径。
Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/xuto/Desktop/software/apache-hive-1.2.1-bin/conf