Hive配置 远程链接MySQL

由于hive是Hadoop的一个组件,做为数据厂库,hive的数据是存储在Hadoop的文件系统中的,hive为Hadoop提供SQL语句,是Hadoop能够经过SQL语句操做文件系统中的数据。hive是依赖Hadoop而存在的。
所以hive的安装详解,请参考博客:http://blog.csdn.net/qq_38799155/article/details/77605615css

在hadfs上建立目录并修改权限java

hadoop fs -mkdir /tmp
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod 777 /tmp
hadoop fs -chmod 777 /user/hive/warehouse

最重要的是对hive/conf/中的hive-site.xml文件进行配置 ,配置以下:mysql

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> 
<!--指定存放元数据的数据库名hive(mysql数据库),这里mysql数据库hive存放在192.168.150.1-->  
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.150.1:3306/hive_metadata?createDatabaseIfNotExsit=true&amp;characterEncoding=UTF-8</value>
  </property>
<!--指定DB链接用户名为root: -->  
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
<!--指定DB链接密码为mysql: -->   
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>mysql</value>
</property>  
<!--指定DB链接引擎:--> 
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>
<!----> 
<property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
</property>
<!----> 
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
</property>
</configuration>

这里须要注意有几个问题,很重要!!!
1. 远程访问mysql用在xml里配置上述代码就够了,其余教程里一直添加其余变量,实际上并不须要
2. jdbc:mysql://192.168.150.1:3306/hive? 这里必须是hive,我以前设置成其余数据库名字,发现执行时候一直报错。
3. 为了链接mysql须要在hive的lib中添加mysql connection的jar包
4. 同时启动时候可能会出现问题须要将/home/hadoop-2.7.3/share/hadoop/yarn/目录下的jline jar包删除sql

而后能够直接启动hive了;
启动hive后能够看到远程mysql下多了个hive数据库
而后建立table譬如create table test(id int);
能够看到在hive的tbls表格TBL_Name下回多一个test表格
同时hdfs的/user/hive/warehouse下也会多一个test表格数据库

笔者推荐博客:
http://blog.csdn.net/zhihaoma/article/details/48578589markdown

相关文章
相关标签/搜索