hive的远程模式安装(用mysql作为hive的元数据库)

主机ip(主机名):

192.168.80.10(Master)

192.168.80.11(Slave1)

192.168.80.12()Slave2

在主机Master中解压hive:

tar –zxvf hive hive-0.9.0.tar.gz

 

设置环境变量,这里我用的是root用户修改/etc/profile文件。

hive的远程模式安装(用mysql作为hive的元数据库)_第1张图片

然后source /etc/profile使环境变量立即生效

修改hive的配置文件,进入hive的conf中,将hive-env.sh.template复制并改名hive-env.sh


修改hive-env.sh文件:

指出Hadoop所在目录,和hive配置文件的根目录。


复制hive-default.xml.template 并改名为hive-site.xml:


修改hive-site.xml文件:

将下面的值改为false,说明是hive的安装时远程模式。


指定存放元数据的数据库名hive(mys1ql数据库),这里mysql数据库hive存放在192.168.80.11。


指定DB连接引擎:


指定DB连接用户名为xiaoma:


指定DB连接密码为xiaoma:


然后在192.168.80.11中安装mysql数据库:

检查linux上是否已经安装mysql:rpm -qa | grep -i mysql

如果有的话如:rpm -e MySQL-server-5.5.31-2.el6.i686,则执行rpm -eMySQL-server-5.5.31-2.el6.i686(如果也有rpm -e MySQL-client-5.5.31-2.el6.i686的话也要删)删除:

hive的远程模式安装(用mysql作为hive的元数据库)_第2张图片

如果有这样的:如果有这样的mysql-libs-5.1.71-1.el6.i686,应执行下面命令删除:


执行命令rpm -qa |grep -i mysql 检查是否删除干净.

删除干净后现在可以开始安装我们的mysql服务器版本了。

把MySQL-server-5.5.31-2.el6.i686.rpm下载到/root/Downloads目录下,执行rpm -iMySQL-server-5.5.31-2.el6.i686  安装mysql服务端:

hive的远程模式安装(用mysql作为hive的元数据库)_第3张图片

根据提示说让修改服务器密码,这个操作等会再做。

检查是否安装成功:


安装好mysql服务端后启动mysql服务端并在后台运行:


然后再安装mysql客户端


此时已经安装好mysql。

 

安装好后要修改密码(默认的为空):


hive的远程模式安装(用mysql作为hive的元数据库)_第4张图片

hive的远程模式安装(用mysql作为hive的元数据库)_第5张图片


建立相应的Mysql账号xiaoma(密码是xiaoma),并赋予足够的权限:

 hive的远程模式安装(用mysql作为hive的元数据库)_第6张图片



然后用xiaoma这个用户登录mysql,并创建数据库hive作为Hive的元数据库:

 

hive的远程模式安装(用mysql作为hive的元数据库)_第7张图片

在Master主机中,将MySQL的JDBC驱动包mysql-connector-java-5.1.10.jar 复制到Hive的lib目录下。

之后,启动Hadoop集群,启动成功后,在hive安装的主机上执行hive命令启动hive:


验证;

hive的远程模式安装(用mysql作为hive的元数据库)_第8张图片

说明hive安装成功。。。

安装过程中 出现的问题:

启动hive:

hive的远程模式安装(用mysql作为hive的元数据库)_第9张图片

解决办法:

 

如果在运行hive时出错的话,可以用下面这个命令重新进入hive进入调试模式,然后简单执行一个命令(如show tables;)用于查看出错地方。


问题:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了

方案:
ps -A | grep -i mysql
kill 列出来的进程
service mysql start
我的问题就解决了


问题:创建mysql用户后,无法用密码登陆,却可以不用密码登陆,出现错误:提示示无法登录:ERROR 1045 (28000): Access denied for user 'appadmin'@'localhost' (using password: YES) 

查了很多资料,有人说到“mysql.user 表中有另外一些记录产生了作用,最有可能的就是已经有一条''@localhost记录,就是用户名是空,主机字段是localhost的记录。” 影响了。查看该表果然有。 

hive的远程模式安装(用mysql作为hive的元数据库)_第10张图片

解决方案:

mysql>use mysql;
mysql>delete from user where user='';
mysql>flush privileges; (必须的)

你可能感兴趣的:(Hive)