逍遥斩舞 2020-03-04
hive只是一个客户端,只要安装机器上有jdk和Hadoop就可以,解压即用
因为hive默认是derby数据库,而derby数据库的弊端如下
①默认只会从当前目录下读取metastore_db的库文件
②不支持多实例同时使用一个库
所以重点是如何配置数据库在MySQL上
1、检查有没有旧的MySQL,有就进行卸载
rpm -qa | grep mysql rpm -qa | grep MySQLsudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_6
2、安装MySQL的服务端和客户端
sudo rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm sudo rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
3、设置密码
//查看随机生成的密码: sudo cat /root/.mysql_secret //启动服务: sudo service mysql start //登录后修改密码: mysql -uroot -p刚查询的随机密码 //修改密码: SET PASSWORD=password(‘密码‘)
4、使root用户可从任意机器登录
//删除除了localhost的所有用户 delete from mysql.user where host <> ‘localhost‘; //修改root用户可以从任意机器登录: update mysql.user set host=‘%‘ where user=‘root‘; //刷新 flush privileges;//查看当前连接的线程:sudo mysqladmin processlist -uroot -p123456
5、到hive 的conf目录下配置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://hadoop102: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>000000</value> <description>password to use against metastore database</description> </property> </configuration>
6、mysql-connector-java-5.1.27.tar.gz驱动包复制到hive的lib目录下
7、注意,metastore数据的编码必须为latin1!因为系统会按照MySQL的配置创建库,所以建议自己手动创建该库,确保编码正确!