Hive 的安装与配置

hive只是一个客户端,只要安装机器上有jdk和Hadoop就可以,解压即用

因为hive默认是derby数据库,而derby数据库的弊端如下

  ①默认只会从当前目录下读取metastore_db的库文件

  ②不支持多实例同时使用一个库

所以重点是如何配置数据库在MySQL上

1、检查有没有旧的MySQL,有就进行卸载

rpm -qa | grep mysql
rpm -qa | grep MySQL
sudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_6

2、安装MySQL的服务端和客户端

sudo rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
sudo rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

3、设置密码

  

//查看随机生成的密码:
sudo cat /root/.mysql_secret
//启动服务:
sudo service mysql start
//登录后修改密码:
mysql -uroot -p刚查询的随机密码
//修改密码:
SET PASSWORD=password('密码')

4、使root用户可从任意机器登录

//删除除了localhost的所有用户
delete from mysql.user where host <> 'localhost';
//修改root用户可以从任意机器登录:
update mysql.user set host='%' where user='root';
//刷新
flush privileges;

//查看当前连接的线程:
sudo mysqladmin processlist -uroot -p123456

5、到hive 的conf目录下配置hive-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://hadoop102:3306/metastore?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>000000</value>
      <description>password to use against metastore database</description>
    </property>
</configuration>

 

6、mysql-connector-java-5.1.27.tar.gz驱动包复制到hive的lib目录下

7、注意,metastore数据的编码必须为latin1!因为系统会按照MySQL的配置创建库,所以建议自己手动创建该库,确保编码正确!

     另外如果是MySQL5.5版本,需要另外配置my.cnf文件(在/usr/share/mysql/ 中找到my.cnf的配置文件,拷贝其中的my-huge.cnf 到 /etc/  并命名为my.cnf 。)

  

[mysqld]
//新增以下字段
binlog_format=ROW

 接下来就是hive的一些常用配置

在hive-site中配置以下参数

<!--更改default仓库的路径-->
<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.cli.print.header</name>
    <value>true</value>
</property>

<property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
</property>

<!-- 下面是hive 2.0X需要的配置-->
<!-- 强制metastore的schema一致性,开启的话会校验在metastore中存储的信息的版本和hive的jar包中的版本一致性,
    并且关闭自动schema迁移,用户必须手动的升级hive并且迁移schema,关闭的话只会在版本不一致时给出警告-->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <!-—如果数据库中没有元数据信息表,则自动创建,用户也可用bin/schematool自己创建-->
    <property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value> 
    </property>
    <!-—允许其他支持thrift协议的框架读取元数据来进行计算-->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>

2、hive 的运行日志默认存放在Linux 根目录下/tmp/${user}/hive.log/文件夹下,

如果要修改,需要将hive/conf下hive-log4j.properties.template文件名称为

hive-log4j.properties并修改参数

hive.log.dir=要存放的路径;

 

Hive 2.0X版本使用注意点

hive2.0x需要开启metastore元数据服务,才能访问hive的元数据

nohup bin/hive --service metastore &

 使用其他工具远程连接Hive

编辑hdfs-site.xml,添加如下属性:

<property>  
<name>dfs.webhdfs.enabled</name>  
<value>true</value>  
</property> 

编辑core-site.xml添加如下属性:

<property>
<name>hadoop.proxyuser.atguigu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.atguigu.groups</name>
<value>*</value>
</property>

分发重启集群

开启hiveserver2服务

nohup bin/hive --service hiveserver2 &

 

posted @ 2020-03-04 13:31  可以看看你胖次吗  阅读(463)  评论(0编辑  收藏  举报
Live2D