在伪分布hadoop-1.2.1环境下配置hive-0.12.0

环境:Ubuntu14.04

            hadoop-1.2.1

1,下载解压缩Hive

        下载地址:http://mirrors.cnnic.cn/apache/hive/hive-0.12.0/   版本是hive-0.12.0

            解压:tar -xvzf hive-0.12.0.tar.gz /opt/hive


         更改hive文件夹所有者为hadoop用户:chown -R hadoop hive

2,配置环境参数

        vim /etc/profile

        添加以下内容:

HIVE_HOME=/opt/hive
PATH=$HIVE_HOME/bin:$PATH
export HIVE_HOME
export PATH

      使更改生效:source /etc/profile

3,更改配置文件

        1,更改/opt/hive/conf/hive-env.sh.tmplate中的 HADOOP_HOME=/opt/hadoop

        然后复制并改hive-env.sh.template为hive-env.sh : cp hive-env.sh.template hive-env.sh

        并加上可执行权限:chmod +777 hive-env.sh

        2,在hdfs中创建/tmp文件夹和/user/hive/warehouse文件夹并给予一定的权限

        hadoop fs -mkdir /tmp

        hadoop fs -mkdir /user/hive/warehouse

        hadoop fs -chmod g+w /tmp

        hadoop fs -chmod g+w /user/tmp/warehouse

        3,将/opt/hive/conf/hive-default.xml.tmplate复制两份,一份为hive-default.xml作为备份,一份为hive-site.xml做配置用。上面定义的/tmp和/user/hive/warehouse就在hive-site.xml中的属性hive.metastore.warehouse.dir和hive.exec.scratchdir属性指定。如果有修改也要记得修改配置文件。

       4,运行hive如果进入

          hive>

          输入命令show tables;

          如果出现错误:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

          将hive-site.xml文件中的

<property>
  <name>hive.metastore.schema.verification</name>
  <value>true</value>
   <description>
   </description>
</property>
         true改为false之后成功了。

         在这种情况下,hive使用的是最简单的元数据存储方式,使用derby存储元数据。但是我们要是使用mysql,所以接下来要配置mysql。


4,安装mysql

       参见http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942497.html

5,配置mysql

       1,为hive创建mysql用户

        首先用自己在安装时设置的root用户和密码登陆mysql:

        mysql -uroot -p<root-passwd>(root-passwd是你的root用户的密码)

        mysql> create user 'hive' identified by 'hive-passwd'               (hive-passwd自己设置的hive的密码)

        mysql> grant all privileges on *.* to 'hive'@'%' with grant option

        mysql> flush privileges;

        2,修改mysql的配置文件允许远程登陆

        vim /etc/mysql/my.cnf

        将其中的

        #bind-address = 127.0.0.1

        这一行的注释去掉

        3,修改hive-site.xml

<configuration>
<property>
  <name>hive.exec.scratchdir</name>
  <value>/tmp/hive-${user.name}</value>
  <description>Scratch space for Hive jobs</description>
</property>
<property>
  <name>hive.exec.local.scratchdir</name>
  <value>/tmp/${user.name}</value>
  <description>Local scratch space for Hive jobs</description>
</property>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>
<property>
    <name>hive.metastore.local</name>
    <value>true</value>
</property>
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <!--改成自己本机IP地址>
   <value>jdbc:mysql://10.14.39.47/hive?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>hive</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive-passwd</value>
</property>
<property>
    <name>hive.metastore.schema.verification</name>
    <!--解决一些版本问题>
    <value>false</value>
 </property>
</configuration>
                       

       其中javax.jdo.option.ConnectionURL填自己的IP地址

       ConnectionUserName和ConnectionPassword填配置的访问mysql的用户和密码

       4,拷贝mysql的JDBC驱动包到hive的lib目录下

        cp mysql-connector-java-x.y.z-bin.jar /opt/hive/lib

        mysql-connector-java-x.y.z-bin.jar包在官网可以下载http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.33.tar.gz


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值