hive安装测试及Hive 元数据的三种存储方式
一 hive安装测试
1、下载解压
tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz)将解压后的hive-0.8.1文件放在系统的/home/hadooptest/中。2、环境变量配置在.bash_profile中添加:export HIVE_HOME=/home/hadooptest/hive-0.8.1export PATH=$HIVE_HOME/bin:$PATH另外环境变量中需要有JAVA_HOME,HADOOP_HOME3、配置文件拷贝 复制conf目录下的.template生成对应的.xml或.properties文件:将org.apache.hadoop.metrics.jvm.EventCounter改成:org.apache.hadoop.log.metrics.EventCounter , 这样将解决异常:
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated.
Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,配置文件中的“hive.metastore.warehouse.dir”指出了仓库的存储位置(注意对于hive来说,数据是存储在hdfs上的,元数据存储在数据库),默认属性值为/user/hive/warehouse,假如利用hive CLI创建表records,则在hdfs上会看到如下目录:/user/hive/warehouse/records/ 此目录下存放数据。命令:load data local inpath 'input/test.txt' overwrite into table records; 这一命令会告诉hive把指定的本地文件放到它的仓库位置,此操作只是一个文件的移动操作,去掉local的load命令为把hdfs中的文件进行移动。
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive_remote/warehouse</value></property> <property> <name>hive.metastore.local</name> <value>true</value></property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value></property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value></property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hadoop</value></property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hadoop</value></property>