Hive安装部署
Hive安装前需要安装好JDK和Hadoop。配置好环境变量。
根据元数据存储的介质不同,分为下面两个版本,其中derby属于内嵌模式。实际生产环境中则使用mysql来进行元数据的存储。
内置derby版:
解压hive安装包
bin/hive启动即可使用
缺点:不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享
hive命令如下,与mysql类似:
show databases;
create database itcast;
use itcast;
show tables;
create table t_test(id int);
show tables;
select * from t_test;
多了这两个文件:
derby.log:数据库日志
metastore_db:元数据数据库
cd到hive的bin目录,启动hive,就只有default数据库了,之前创建的itcast这个库没有了。
cd bin/
ll
./hive
show databases;
CTRL+C结束。在当前目录下又新生成了derby.log和metastore_db。
说明不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享。
一般用于测试实验。
mysql版:
解压、修改配置文件
vi conf/hive-site.xml
配置Mysql元数据库信息
hive安装手册
- 上传tar包
hive安装包:apache-hive-1.2.1-bin.tar.gz
上传到服务器 - 解压
tar -zxvf apache-hive-1.2.1-bin.tar.gz
可以重命名
mv apache-hive-1.2.1-bin hive
安装包目录结构如下图所示:
- 安装mysql数据库
推荐yum 在线安装 - 配置hive
(a)配置HIVE_HOME环境变量
vi conf/hive-env.sh
配置其中的$hadoop_home
命令:which hadoop
复制如下路径,不用全路径:
配置如下hadoop环境变量:
(b)配置元数据信息
vi hive-site.xml
添加如下内容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?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>root</value>
<description>password to use against metastore database</description>
</property>
</configuration>
所有默认的配置文件,都放在hive-default.xml中,用户自定义配置,都放在hive-site.xml中
5. 安装hive和mysql完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下,安装mysql驱动:mysql-connector-java-5.1.32.jar
如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
命令:mysql -uroot -p
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
命令:FLUSH PRIVILEGES;
- Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的/home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
启动hive
bin/hive
yum在线安装mysql
命令:yum install mysql mysql-server mysql-devel
完成后,用如下命名启动mysql
命令:/etc/init.d/mysqld start
启动mysql控制台:
mysql回车,进入mysql交互页面
mysql>USE mysql;
mysql>UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root'; 首次登陆,修改newpassword密码
mysql>FLUSH PRIVILEGES; 刷新权限
mysql -u root -p
Enter Password:<your new password>
mysql>GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; 授权远程连接命令,修改用户名和密码。
完成后就能远程管理mysql了。
mysql>FLUSH PRIVILEGES; 如果不放心,还可以再授权一下权限。
mysql服务名字 service mysqld start
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; 授权远程连接命令
service mysqld status可以查看到已经安装好了,正在运行
chkconfig mysqld on 设置后续开机启动
chkconfig mysqld --list