1.hive的元数据存储
- derby:hive内置数据库,存储量小,只支持单session
- mysql(支持jdbc的关系型数据库),存储量大,支持多session
2.hive的安装
2.1自带derby
2.1.1 解压 安装包
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/app
2.1.2重命名
cd /opt/app
mv apache-hive-1.2.1-bin ./apache-hive-1.2.1
2.1.3配置环境变量
vim /etc/profile
添加以下两行
export HIVE_HOME=/opt/app/apache-hive-1.2.1
export PATH= P A T H : PATH: PATH:HIVE_HOME/bin:
2.1.4使配置文件生效
source /etc/profile
2.1.5hive测试
2.2使用mysql做元数据库
2.2.1配置hive-site.xml
先切换到hive的conf目录下,需要自己手动创建
cd /opt/app/apache-hive-1.2.1/conf
vim hive-site.xml
添加以下配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--指定根目录-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property><!--hive的元数据服务-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property><!--配置mysql的连接字符串-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?useSSL=true</value>
</property><!--配置mysql的连接驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property><!--配置登录mysql的用户-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property><!--配置登录mysql的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!--优化-->
<!--显示当前数据库-->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<!--设置在本地运行-->
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
</property>
<!--设置强制分桶的属性-->
<property>
<name>hive.enforce.bucketing</name>
<value>true</value>
</property>
<!--并行计划-->
<property>
<name>hive.exec.parallel</name>
<value>true</value>
<description>Whether to execute jobs in parallel</description>
</property>
2.2.2将mysql的驱动包拷贝到hive安装目录的lib目录下
cp mysql-connector-5.1.39 /opt/app/apache-hive-1.2.1/lib
2.2.3手动创建元数据库hive,并将数据库的编码设置为latin1
可以直接在linux的mysql中创建
也可以通过windows连接到linux下的mysql进行创建
2.2.4初始化元数据
schematool -dbType mysql -initSchema
2.2.5启动元数据库服务
hive --service metastore &
启动之后linux下mysql中的hive数据库中就会有很多表
2.2.6测试
hive
2.3其他服务器访问该metastore的server
与本台服务器的配置都一样,只是修改一下hive-site.xml
2.3.1 传输hive安装目录,以及本机配置文件
scp -r /opt/app/apache-hive-1.2.1 hadoop02:/opt/app/
scp -r /opt/app/apache-hive-1.2.1 hadoop03:/opt/app/
scp /ect/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
2.3.2 使配置文件生效
分别在hadoop02,hadoop03中执行
source /etc/profile
2.3.3.修改hive安装目录下conf目录下的hive-site.xml
分别在hadoop,hadoop02下修改
vim /opt/app/apache-hive-1.2.1/conf/hive-site.xml
将配置文件里内容全部删除,并修改为以下内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!--hiveserver2的相关属性配置-->
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
</property>
</configuration>
2.3.4测试
hive