hive搭建
hive三种方式区别和搭建按照Hive中metastore(元数据存储)不同位置分为三种方式:
- 内嵌Derby方式 :hive将源数据存储在HDFS中,而元数据默认存储在hive自带的数据库Derby中。但是Derby不支持多用户同时访问,所以这种模式仅供测试使用。
- Local方式:使用mysql数据库替代Derby来存储元数据,以解决多用户并发访问问题
- Remote方式:以本地模式为基础,mysql数据库所在的节点提供metastore service服务,其他节点可以连接该服务来获取元数据信息
1,安装Hive
解压下载好的apache-hive-1.2.1-bin.tar.gz安装包到 /opt/apache-hive-1.2.1目录下
tar -zxvf apache-hive-1.2.1-bin.tar.gz /opt/apache-hive-1.2.1
2,配置环境变量
export HIVE_HOME=/opt/apache-hive-1.2.1
export PATH=$HIVE_HOME/bin:$PATH
3,三种方式的搭建(配置文件的不同)
①Derby方式
修改hive-site.xml
配置文件,修改如下
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
启动hive
./hive
注意:将hive/lib目录下的jline jar包拷贝到hadoop的yarn lib下
这种模式的弊端
使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,否则会提示如下错误
[html] view plaincopyprint?
hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details.
NestedThrowables:
java.sql.SQLException