ubuntu16.04LTS下安装hive-2.1.0

前言:

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行

运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析

Hive元数据保存在内嵌的 Derby数据库中,只能允许一个会话连接,只适合简单的测试。实际生产环境中不使用,为了支持多用户会话,

则需要一个独立的元数据库,使用MySQL作为元数据库,Hive内部对MySQL提供了很好的支持。

一、系统环境

os : Ubuntu 16.04 LTS 64bit
jdk : 1.8.0_111
hadoop : 2.7.3
mysql : 5.7.21
hive : 2.1.0

在配置hive之前,要先安装Hadoop

二、安装并配置MySQL

2.1 安装MYSQL

    a、安装服务端

        sudo apt-get install mysql-server

    b、安装客户端

        sudo apt-get install mysql-client

    c、查看MySQL是否安装成功

        sudo netstat -tap | grep mysql

查询结果如下图所示,表示安装成功

     d、将mysql-connector-java-***.jar驱动,复制到hive安装目录下的lib下

     e 、将$HADOOP_HOME/share/hadoop/yarn/lib下的jline*.jar替换为$HIVE_HOME/lib/jline-2.12.jar 

附加说明,

默认root密码为root

sudo /etc/init.d/mysql start  这是启动mysql服务

sudo /etc/init.d/mysql restart  这是重启mysql服务

sudo /etc/init.d/mysql stop 这是停止mysql服务

2.2 配置远程访问

    a、编辑配置文件   

        sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf  将bind-address = 127.0.0.1注释(默认情况下MySQL只允许本地登录)

    b、修改用户权限

mysql -u root -p --远程访问 mysql -h 192.168.0.201 -P 3306 -u root -p123 123为root用户密码

grant all
privileges on *.* to root@'%' identified by 'root' with grant option;

flush privileges;
--刷新权限信息,让我们所作的设置马上生效

/etc/init.d/mysql restart --重启mysql服务

aaa:    *.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。root:授予root账号。“%”:表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。“password”:分配账号对应的密码,这里密码自己替换成你的  mysql root帐号  密码。

       

2.3创建元信息数据库

 a、创建hive用户

mysql -u root -p
create user
'hive' identified by 'hive';
GRANT ALL PRIVILEGES ON  *.* TO 'hive'@'%' WITH GRANT OPTION;

    b、使用hive账号建立Hive专用的元数据库hive

mysql -u hive -p hive
create database hive;

三、hive的安装配置

3.1 下载:hive2.1.0下载地址

sudo tar -xzf apache-hive-2.1.0-bin.tar.gz -C /usr/local#解压到/usr/local目录下
sudo mv apache-hive-2.1.0-bin/ hive #重命名
sudo chown -R hadoop hive #把hive的所在组改为hadoop

3.2 配置环境变量

vim  ~/.bashrc

export HIVE_HOME=/usr/local/hive
export HCAT_HOME=$HIVE_HOME/hcatalog
export HIVE_CONF=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin

source  ~/.bashrc 使配置生效

3.2 配置hive-site.xml

修改hive-site.xml中的部分内容,将对应的name修改成下面的value:

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8&amp;createDatabaseIfNotExist=true</value>
  <description>
    JDBC connect string for a JDBC metastore.
    To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
    For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
  </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>hive</value>
  <description>Username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use against metastore database</description>
</property>

将hvie-site.xml中的${system:java.io.tmpdir}全部替换为/usr/local/hive/tmp,将${system:user.name}全部替换为${user.name}

四、启动hive

 4.1、schematool 命令来执行初始化操作

从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作,

schematool -dbType mysql -initSchema

  4.2、hive客户端启动

 

 hive操作的命令基本与mysql一致。

 

其他相关链接:linux下忘记mysql密码的几种方法

参考:

http://www.bubuko.com/infodetail-2523113.html

https://www.cnblogs.com/zlslch/p/6084704.html

原文地址:https://www.cnblogs.com/qinfei0967/p/8671358.html