需要事先安装好hadoop,mysql
进入mysql以后设置一下:
createdatabase hive;
createuser 'hive'@'%' identified by '密码';
grantall on *.* to hive@'%' identified by '密码';
flushprivileges;
接下来只剩下修改hive的配置,主要修改hive-site.xml;hive-config.sh;profile
比较靠谱的修改步骤连接:http://blog.csdn.net/an342647823/article/details/46048403
其中hive-site.xml是先复制下样本cphive-default.xml.template hive-site.xml
修改时常用的路径举例子:
exportJAVA_HOME=/home/twq/MySoftware/hadoop/jdk1.8.0_111
exportHIVE_HOME=/home/twq/MySoftware/hadoop/apache-hive-2.1.1-bin
exportHADOOP_HOME=/home/twq/MySoftware/hadoop/hadoop-2.7.3
exportHIVE_HOME=/home/twq/MySoftware/hadoop/apache-hive-2.1.1-bin
exportPATH=$HIVE_HOME/bin:$PATH
用到的一个jar包从这里下载,解压以后可以找到需要的jar包
wgethttps://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.42.tar.gz
启动hive时,如果报错,可以查看日志cat/tmp/root/hive.log
启动后遇到很多报错
其中hive输入后,停留在不动,后来通过查看日志cat/tmp/root/hive.log 发现是
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
值里面false后面多了一个空格java.sql.SQLException:The connection property 'useSSL' only accepts values of the form:'true', 'false', 'yes' or 'no'. The value 'false ' is not in this set
Unableto instantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
解决方法:
其中$HIVE_HOME/bin/schematool-initSchema -dbType $databaseType
改成本地的情况就是,还需要注意在文件夹的什么位置执行这句语句
root@localhost:/home/twq/MySoftware/hadoop/apache-hive-2.1.1-bin/lib#schematool -initSchema -dbType mysql
su- $HIVE_USER -c "nohup/home/twq/MySoftware/hadoop/apache-hive-2.1.1-bin/bin/hive--service metastore>/var/log/hive/hive.out2>/var/log/hive/hive.log &"
执行报错的时候,说不存在/var/log/hive文件夹,那么就建一个
Relativepath in absoluteURI:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
http://blog.csdn.net/zwx19921215/article/details/42776589里面的错,我也遇到了,按照博主的方式改了路径如下:一共有4个位置需要替换
<name>hive.exec.local.scratchdir</name>
<value>/home/twq/MySoftware/hadoop/apache-hive-2.1.1-bin/iotmp/${system:user.name}</value>
非常迷糊,但是不管怎么说,hive启动起来了,我真的不关机了 →_→