Hive将原数据存储在远程mysql上(环境:mysql在window7下,hive装在redhat5上)
hive的安装配置网上资料很多 可以根据自己的实际情况搜到资料 照着配置就ok
mysql的不同环境下下载地址点击打开链接
1、 首先将mysql的驱动jar包放在hive安装目录lib下面,其次修改hive下的config文件下的hive-site.xml以及 hive-default.xml文件
主要修改四个地方:(注:下面的每一项里面不能有空格不然会报错)
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.59:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for aJDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for aJDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use againstmetastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use againstmetastore database</description>
</property>
2、 在hive数据库下进行简单的测试
Show databases; (此时,只有一个默认的数据库default)
Use default;(使用默认的数据库)
Create table…..
Show tables…
如上图,报了以上异常信息,解决的方法是到mysql中的hive数据库里执行
alter database hive characterset latin1;
改变hive元数据库的字符集,问题就可以解决!
3、 再进一步测试,
Create table….
此时报了新的异常信息,这个异常是由于hadoop还处于安全模式,我们需要将安全模式关了,在终端执行以下命令即可:
hadoop dfsadmin -safemode leave
此时再进行show tables操作,就会看见刚刚创建的表信息
4、 在navicat工具上查看hive信息如下:
此时,可以再tbls表里面看见刚刚创建的新表hive_test的信息
这样Hive就将原数据存储在远程mysql上了..