mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)

Hadoop入门配置系列博客目录一览

1、 Eclipse中使用Hadoop伪分布模式开发配置及简单程序示例(Linux下)
2、 使用Hadoop命令行执行jar包详解(生成jar、将文件上传到dfs、执行命令、下载dfs文件至本地)
3、 Hadoop完全分布式集群安装及配置(基于虚拟机)
4、 Eclipse中使用Hadoop集群模式开发配置及简单程序示例(Windows下)
5、 Zookeeper3.4.9、Hbase1.3.1、Pig0.16.0安装及配置(基于Hadoop2.7.3集群)
6、 mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)
7、 Sqoop-1.4.6安装配置及Mysql->HDFS->Hive数据导入(基于Hadoop2.7.3)
8、 Hadoop完全分布式在实际中优化方案
9、 Hive:使用beeline连接和在eclispe中连接
10、 Scala-2.12.2和Spark-2.1.0安装配置(基于Hadoop2.7.3集群)
11、 Win下使用Eclipse开发scala程序配置(基于Hadoop2.7.3集群)
12、 win下Eclipse远程连接Hbase的配置及程序示例(create、insert、get、delete)


本篇博客主要介绍“mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)”。

注: Hive的安装对我来说比较曲折的,因为在使用hive命令测试的时候,没有发现什么问题,但是后来使用beeline连接,问题越来越多,由于自身解决能力太差,每个问题都花了好久,其中一部分问题是数据库的初始化问题,还有一部分是数据库的权限问题。因为命令行给出的错误提示比较少,要学会借助log信息查找方案,log信息默认在/tmp/${user.name}/hive.log中。

一、Hadoop环境说明

Hadoop2.7.3集群安装及配置参见: Hadoop完全分布式集群安装及配置(基于虚拟机)
OS版本: Ubuntu-server-16.04

注:以下mysql5.7.18安装、Hive2.1.1安装和配置均在主节点上进行,slave节点不需要安装

二、安装Mysql

Step1: 采用apt-get安装mysql
Step2: 启动mysql服务
Step3: 进入mysql命令行
Step4: 创建一个database name为hive的数据库用于hive数据文件的存储
Step5: 给当前用户授权
命令如下:

sudo apt-get install mysql-server    //采用apt-get安装mysql,会提示你设置mysql的用户名和密码,我的设为用户名root,密码root
service mysql start    //启动mysql服务
mysql -uroot -p  //进入mysql命令行,输入之后会提示你输入密码,输入上述密码root
mysql> create user hive identified by 'hive'; //创建一个用户名为hive,密码为hive的数据库
mysql> create database hive;  //创建一个叫做hive的数据库
mysql> grant all on hive.* to hive@'%' identified by 'hive';  //给hive用户授权
mysql> grant all on hive.* to hive@'localhost' identified by 'hive'; //给hive用户授权
mysql> flush privileges;  
mysql> exit;  //退出mysql

添加之后,可以查询用户,看到如下信息:
mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第1张图片

注意:如果有涉及到数据库字符的问题,可将整个数据库的字符设置为latin1,再把需要中文的字段使用alter改为utf8。参考:http://blog.csdn.net/u013368491/article/details/71105643

三、Hive2.1.1安装和配置

1、下载

下载地址: http://mirror.bit.edu.cn/apache/hive/
下载版本: hive-2.1.1
压缩包名称: apache-hive-2.1.1-bin.tar.gz
压缩包存放目录: /home/lina/Software/Hadoop/apache-hive-2.1.1-bin.tar.gz

2、解压

这里我们将解压目录(安装目录)设置为/opt/Hadoop/下,使用下面的命令进行解压,并创建软连接:

cd /home/lina/Software/Hadoop       //将当前目录切换至压缩包所在目录
tar zxf apache-hive-2.1.1-bin.tar.gz -C /opt/Hadoop    //解压到安装目录,解压之后的名字是apache-hive-2.1.1-bin
mv apache-hive-2.1.1-bin apache-hive-2.1.1    //将文件夹的名字由apache-hive-2.1.1-bin变为apache-hive-2.1.1
ln -s apache-hive-2.1.1 hive   //创建软连接

3、添加环境变量

因为之前在已经配置过jdk,hadoop,zookeeper,hbase和pig的环境变量,所以这里只需要将hive的环境变量添加即可,添加内容在下图使用红框圈起来了(没圈的地方是之前已经配置过的环境变量,这里不需要变动),使用命令sudo vi ~/.bashrc打开配置文件,配置如下:

export HIVE_HOME=/opt/Hadoop/apache-hive-2.1.1
export PATH=.:$HIVE_HOME/bin:$HIVE_HOME/conf

如下图:
mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第2张图片
使用source ~/.bashrc使更改的环境变量立即生效。

4、修改hive配置文件

(1)复制初始文件作为配置文件
进入${HIVE_HOME}\conf即/opt/Hadoop/apache-hive-2.1.1/conf目录下,执行下面的命令:

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

(2)修改hive-env.sh
进入${HIVE_HOME}\conf\即/opt/Hadoop/apache-hive-2.1.1/conf目录下,使用vi hive-en.sh打开文件,在hive-env.sh中添加以下路径:

export JAVA_HOME=/opt/Java/jdk1.8    //Java路径
export HADOOP_HOME=/opt/Hadoop/hadoop-2.7.3   //Hadoop安装路径
export HIVE_HOME=/opt/Hadoop/hive-2.1.1    //Hive安装路径
export HIVE_CONF_DIR=/opt/Hadoop/hive-2.1.1/conf   //Hive配置文件路径

(3)创建hdfs目录,用于配置hive-site.xml
在根目下,执行以下命令:

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/log

(4)在apache-2.1.1安装目录下创建一个tmp文件夹,用于存储临时文件,命令如下:

cd /opt/Hadoop/apache-hive-2.1.1/
mkdir tmp

(5)修改hive-site.xml
将hive-site.xml文件中的以下几个配置项的值设置成上一步中创建的几个路径:

<property>
    <name>hive.exec.scratchdirname>
    <value>/user/hive/tmpvalue>
property>
<property>
    <name>hive.exec.local.scratchdirname>
    <value>/opt/Hadoop/apache-hive-2.1.1/tmpvalue>
property>
<property>
    <name>hive.metastore.warehouse.dirname>
    <value>/user/hive/warehousevalue>
property>
<property>
    <name>hive.downloaded.resources.dirname>
    <value>/opt/Hadoop/apache-hive-2.1.1/tmp/${hive.session.id}_resourcesvalue>
property>
<property>
    <name>hive.querylog.locationname>
    <value>/user/hive/logvalue>
property>

在 hive-site.xml 文件中配置 MySQL 数据库连接信息:

<property>
    <name>javax.jdo.option.ConnectionURLname>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=falsevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionDriverNamename>
    <value>com.mysql.jdbc.Drivervalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionUserNamename>
    <value>hivevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>hivevalue>
  property>
    <property>
    <name>hive.hwi.listen.portname>
    <value>9999value>
  property>

注意:上述ConnectionUserName和ConnectionPassword需要更加mysql中自己设置的用户名和密码做相应的更改。

(5)更改{system:java.io.tmpdir} / {system:user.name}

在配置文件hive-site.xml中:
将{system:java.io.tmpdir} 改成 /opt/Hadoop/apache-hive-2.1.1/tmp/
将{system:user.name} 改成 {user.name}

所有的更改见下图(可作为如何更改的参考,但是截图不一定全)。其中使用括起来的是没修改之前的默认配置,下面没有括起来的是做出的相应更改:
mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第3张图片
(6)修改core-site.xml文件
修改hadoop安装目录下的core-site.xml文件。若不修改,在执行hive的时候,会提示“xx is not allowed to impersonate hive”的错误信息。进入/opt/Hadoop/hadoop-2.7.3/etc/hadoop/,打开core-site.xml,添加如下内容:

  <property>
    <name>hadoop.proxyuser.hive.groupsname>
    <value>*value>
  property>
  <property>
    <name>hadoop.proxyuser.hive.hostsname>
    <value>*value>
  property>
 <property>
    <name>hadoop.proxyuser.lina.groupsname>
    <value>*value>
  property>
  <property>
    <name>hadoop.proxyuser.lina.hostsname>
    <value>*value>
  property>

注意:因为这个没添加遇到很多问题,现在整理的时候也感觉比较混乱,我这里是将在mysql创建的用户名hive和我ubuntu的登录用户名都添加进去。。。应该是添加一个用户名就可以,但是我不确定是哪一个^_^。

5、配置jdbc驱动包

mysql的jdbc驱动包下载地址:https://dev.mysql.com/downloads/connector/j/
下载之后将文件夹解压,得到mysql-connector-java-5.1.42-bin.jar,将此jar包放在${HIVE_HOME}/lib目录,即/opt/Hadoop/apache-hive-2.1.1/lib下。

6、初始化并启动hive

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

schematool -dbType mysql -initSchema

看到schemaTool completed 则初始化完成 。
(2)可以使用schematool -dbType mysql -initInfo 查看数据库初始化信息。
(3)进入mysql中,查看hive中的表格信息,可看到如图内容:

mysql -uroot -p  //进入mysql命令行,输入之后会提示你输入密码,输入上述密码root
use hive;
show tables;

mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第4张图片
(4)检测hive 是否成功,直接在命令行输入hive即可:

hive

启动成功的提示如图:
mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第5张图片

注意:启动hive时可能出现的错误信息:
1、若提示jdbc.mysql.Connection was not found,可能是mysql-connector-java-5.1.42-bin.jar放错了位置。
2、若提示关于schema init的错误,可能是数据库初始化未成功,如下图,需要再次尝试初始化:
mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第6张图片

7、在hive中创建一个表格

hive启动成功后,使用下面的语句验证是否hive可用:

create table testHive(
id int,
name string
);
show tables;

如下图:
mysql5.7.18安装、Hive2.1.1安装和配置(基于Hadoop2.7.3集群)_第7张图片


参考文章:
http://sishuok.com/forum/blogPost/list/6221.html
http://blog.csdn.net/u013310025/article/details/70306421
http://www.cnblogs.com/yongjian/archive/2017/03/23/6607984.html(hive-site.xml的配置主要参考这篇文章)


**附:**Hadoop入门基础及简单实例代码:https://github.com/Nana0606/Hadoop_Introduction

你可能感兴趣的:(Hadoop,mysql,hive,安装配置)