如果采用MySQL数据库保存Hive的元数据,而不是采用Hive自带的derby,需要下载mysql-connector包进行相关配置。
(1)进入官网(https://downloads.mysql.com/archives/)下载系统对应的mysqlconnector包;执行如下shell命令解压mysql-connector至目录~/Downloads下。
unzip-qo~/Downloads/mysql-connector-java-5.1.48.zip-d~/
Downloads #解压
(2)执行如下shell命令,将mysql-connector-java-5.1.48-bin.jar拷贝到/usr/local/hive/lib目录下。
sudo cp mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-
bin.jar/usr/local/hive/lib
(3)执行如下shell命令,启动并登录mysql。
1.sudo service mysql start#启动mysql服务
2.mysql-u root-p #登录shell界面
(4)新建hive数据库。
mysql>create database hive;
注意:这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据。
(5)配置mysql允许hive接入,执行如下shell命令,将localhost上所有数据库的所有表的所有权限赋给hive用户,其中,‘123’是配置hive-site.xml中配置的连接密码。
mysql>grant all on∗.∗to hive@localhost identified by'123';
(6)执行如下shell命令,刷新mysql系统权限关系表,使上述授权生效。(www.xing528.com)
mysql>flush privileges;
(7)在终端执行如下shell命令启动hive。注意,启动hive之前,请先启动hadoop集群。
1.start-all.sh #启动hadoop
2.hive #启动hive
注意,我们这里已经配置了PATH,所以,不需要把start-all.sh和hive命令的路径加上。如果没有配置PATH,请加上路径才能运行命令,例如:Hadoop安装目录是“/usr/local/hadoop”,Hive的安装目录是“/usr/local/hive”,因此,启动hadoop和hive时需要使用下面带路径的方式启动。
1.cd/usr/local/hadoop
2../sbin/start-all.sh
3.cd/usr/local/hive
4../bin/hivecsers
另外,如果在启动Hive时,出现Hive metastore database is not initialized的错误,原因在于以前曾经安装了Hive或MySQL,重新安装Hive和MySQL以后,导致版本、配置不一致。解决方法是,使用schematool工具。Hive现在包含一个用于Hive Metastore架构操控的脱机工具,名为schematool.此工具可用于初始化当前Hive版本的Metastore架构。此外,其还可处理从较旧版本到新版本的架构升级。所以,可在终端执行如下shell命令,以解决上述错误。执行完毕后,需要重新启动Hive。
schematool-dbType mysql-initSchema
(8)启动Hive,进入Hive的交互式执行环境以后,会出现如下命令提示符,可以在里面输入SQL语句。
hive>
(9)如果要退出Hive交互式执行环境,可以输入如下shell命令:
hive>exit;
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。