默认hive使用的元信息数据库derby不是很好用。第一就是不支持多任务,第二就是配置hive环境变量然后启动hive因为derby的数据文件路径问题经常报错。
配置hive的一个小前提是Hadoop环境已经配置ok,hfs可用。参考其官方quick start即可。hive的配置主要配置文件就一个hive-site.conf。
1,从默认xml复制一份。
cp hive-default.xml.template hive-site.xml
2,Ubuntu安装mysql,如果mysql已经安装跳过此步骤。
sudo apt install mysql-server mysql-client
在命令执行过程中会有对话框让输入mysql账号root的密码,连续输入两次完成mysql root账号密码配置。
严谨点对于一般mysql数据库不应用直接提供root账号作为应用账号。都需要新建个账号提供给hive使用。一是不安全,就类似linux服务一般会新建用户组来提供服务;二是生成环境如果db连接数满了mysql会预留给root一个连接,用于数据库管理。如果普通应用也使用则此功能就失效了。
3,修改hive-site.xml文件一共4处逐一修改如下即可。
javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName root Username to use against metastore database javax.jdo.option.ConnectionPassword root password to use against metastore database
4,命令行进入mysql。创建配置在connectionUrl后面的db,加过createDatabaseIfNoExist。但是不好用,还是手动创建的。
5,执行hive之前需要init schema,启动hive之前需要启动hdfs。
schematool -dbType mysql -initSchema
6,启动hive命令,会提示找不到mysql jar包。到mvnrepository下载个jar包放到lib下面即可。笔者hive2版本用的mysql jar包是5.1。添加上jar包启动ok。