飞鸟博客

导航

指导手册 07 安装配置HIVE

指导手册 07 安装配置HIVE

 

安装环境及所需安装包:

1.操作系统:centos6.8

2.四台虚拟机:master :10.0.2.4, slave1:10.0.2.5,slave2:10.0.2.6,slave3:10.0.2.7

3.Hadoop系统己安装完成。

4. mysql-5.7.23.tar.gz

5. apache-hive-2.1.1-bin.tar.gz

6. mysql-connector-java-5.1.47-bin.jar

 

Part01 :centos上安装mysql

https://www.cnblogs.com/kanyun/p/8075414.html

官网下载

https://dev.mysql.com/downloads/mysql/

  

1. 上传Mysql安装包“mysql-5.7.23.tar.gz”到部署机,位置任意;

2. 将Mysql安装包解压到其所在目录,命令如下:

tar -zxvf mysql-5.7.23.tar.gz  -C /usr/local

 

3. 使用命令,对mysqll文件夹进行重命名

[root@master local]# mv mysql-5.7.20-linux-glibc2.12-x86_64  mysql-5.7.23

 

4. 添加mysql用户组和mysql用户,命令如下:

groupadd mysql

useradd -r -g mysql mysql

5. 进入安装Mysql软件的目录,命令如下:

cd /usr/local/mysql-5.7.23

6.安装 

6.1 在/usr/local/mysql-5.7.23目录下新建data文件夹,以后的数据库文件将放在这里

[root@master mysql-5.7.23]# pwd

/usr/local/mysql-5.7.23

[root@master mysql-5.7.23]# mkdir data

[root@master mysql-5.7.23]# chown -R mysql:mysql ./ 

6.2 mysql_install_db 被废弃了,取而代之的是 mysqld -initialize

[root@master  mysql-5.7.23]# ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.7.23/ --datadir=/usr/local/mysql-5.7.23/data/

  

6.3将mysql/目录下除了data/目录的所有文件,改回root用户所有

 [root@master  mysql-5.7.23]# chown -R root . 

6.4 mysql用户只需作为mysql-5.7.23/data/目录下所有文件的所有者

 [root@master  mysql-5.7.23]# chown -R mysql data

  

6.5复制启动文件

[root@master  mysql-5.7.23]# cp support-files/mysql.server /etc/init.d/mysqld 

6.6 文件授权

[root@master  mysql-5.7.23]# chmod 755 /etc/init.d/mysqld

[root@master  mysql-5.7.23]# chmod 777 /usr/local/mysql-5.7.23/data

[root@master  bin]# cp /usr/local/mysql-5.7.23/bin/my_print_defaults /usr/bin/

 

 

6.7修改启动脚本

[root@master  mysql-5.7.23]# vi /etc/init.d/mysqld

#修改项:

basedir=/usr/local/mysql-5.7.23/

datadir=/usr/local/mysql-5.7.23/data

port=3306

6.8修改/etc/my.cnf文件

Port=3306

Basedir=/usr/local/mysql-5.7.23

Datadir=/usr/local/mysql-5.7.23/data

Socket=/tmp/mysql.sock

 

 

说明: 配置文件加上skip-grant-tables,是设置无密码登录

7.启动服务

[root@master  mysql-5.7.23]# service mysqld start

 

8.加入环境变量.

编辑 /etc/profile,这样可以在任何地方用mysql命令了

[root@instance_4dbde0 mysql-5.7.20]# vi /etc/profile

 

8.1添加mysql路径

export PATH=$PATH:/usr/local/mysql-5.7.23/bin

 

8.2刷新立即生效

[root@master  mysql-5.7.23]# source /etc/profile

 

9.重启Mysql

10.无密码登录

 mysql -u root -p 

 

这个时候输入mysql的root密码就可以登录了(这个输入密码的操作有可能直接按Enter就可以登录mysql,即默认的无密码),登录之后可以更改root密码. 

11.修改root用户密码(“123456”)

mysql>use mysql;

mysql> update user set authentication_string=password("新密码") where user='root';        mysql> flush privileges;

mysql> exit;

 

12解决利用sqoop导入MySQL中文乱码的问题

[说明:该功能Centos6.8下待调试]解决利用sqoop导入MySQL中文乱码的问题(可以插入中文,但不能用sqoop导入中文)导致导入时中文乱码的原因是character_set_database、character_set_server默认设置是latin1,如下图。

 

可以单个设置修改编码方式set character_set_server=utf8;但是重启会失效。

 

建议按以下方式修改编码方式。

(1)编辑配置文件。sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

(2)在[mysqld]下添加2行character_set_server=utf8。如下图

  

(4)登陆MySQL,并查看MySQL目前设置的编码。show variables like "char%";

 

 

 

 

Part02 安装Hive

1.Hive的下载

网址:http://www.apache.org/dyn/closer.cgi/hive/

下载:apache-hive-2.1.1-bin.tar.gz

 

2.Hive安装

1)解压安装包apache-hive-2.1.1-bin.tar.gz至路径 /opt/,命令如下:

tar -zxvf ./ apache-hive-2.1.1-bin.tar.gz  -C /usr/local   # 解压到/usr/local中

   mv apache-hive-2.3.3-bin apache-hive       # 将文件夹名改为hive

   chown -R hadoop:hadoop apache-hive       # 修改文件所有者权限。

注意,上面的hadoop:hadoop是当前系统的用户组和用户名。

2)配置环境变量

将hive下的bin目录添加到path中,这样,启动hive就无需到/opt/hive/bin目录下,大大的方便了hive的使用。编辑/etc/profile文件

如果没有引入过PATH请在/etc/profile文件尾行添加如下内容:

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

3)编辑完成后,再执行source命令使上述配置在当前终端立即生效,命令如下:

  

3.Hive配置

3.1修改/usr/local/apache-hive/conf下的hive-site.xml

执行如下命令:

cd /usr/local/apache-hive/conf

mv hive-default.xml.template hive-default.xml

上面命令是将hive-default.xml.template重命名为hive-default.xml;

 

3.2使用vim编辑器新建一个配置文件hive-site.xml,命令如下:

cd /usr/local/apache-hive/conf

vim hive-site.xml

在hive-site.xml中添加如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<!--搜索javax.jdo.option.connectionURL,将该name对应的value修改为MySQL的地址:-->

  <property>

    <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

    <description>JDBC connect string for a JDBC metastore</description>

  </property>

<!--搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径: :-->

  <property>

    <name>javax.jdo.option.ConnectionDriverName</name>

    <value>com.mysql.jdbc.Driver</value>

    <description>Driver class name for a JDBC metastore</description>

  </property>

<!--搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名: :-->

  <property>

    <name>javax.jdo.option.ConnectionUserName</name>

    <value>hive</value>

    <description>username to use against metastore database</description>

  </property>

<!--搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码: :-->

  <property>

    <name>javax.jdo.option.ConnectionPassword</name>

    <value>hive</value>

    <description>password to use against metastore database</description>

  </property>

<!—解决错误提示: Version information not found—>

 <property>

    <name>hive.metastore.schema.verification</name>

    <value>false</value>

  </property>

</configuration>

 

 

4.  下载mysql jdbc 包,下载地址:

https://dev.mysql.com/downloads/connector/j/

 

 

tar -zxvf mysql-connector- java-5.1.47.tar.gz   #解压

cp mysql-connector- java-5.1.47/ mysql-connector- java-5.1.47-bin.jar  /usr/local/apache-hive/lib #将mysql-connector- java-5.1.47-bin.jar拷贝到/opt/hive/lib目录下

 

 

5   启动并登陆mysql shell

 service mysql start #启动mysql服务

 mysql -u root -p  #登陆shell界面

 

6.  新建hive数据库。

mysql> create database hive;  

mysql> show databases;   

#这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

 

7. 配置mysql允许hive接入:

mysql> grant all on *.* to hive@localhost identified by 'hive';   #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码

mysql> flush privileges;  #刷新mysql系统权限关系表

 

8.启动hive

启动hive之前,请先启动hadoop集群和启动Mysql。

start-all.sh #启动hadoop

service mysqld start #启动mysql

hive  #启动hive

启动进入Hive的交互式执行环境以后,会出现如下命令提示符:

 

在启动Hive时,有可能会出现Hive metastore database is not initialized的错误,这里给出解决方案。

解决Hive启动,Hive metastore database is not initialized的错误。出错原因:以前曾经安装了Hive或MySQL,重新安装Hive和MySQL以后,导致版本、配置不一致。解决方法是,使用schematool工具。Hive现在包含一个用于 Hive Metastore 架构操控的脱机工具,名为 schematool.此工具可用于初始化当前 Hive 版本的 Metastore 架构。此外,其还可处理从较旧版本到新版本的架构升级。所以,解决上述错误,你可以在终端执行如下命令:

schematool -dbType mysql -initSchema

 

 

9.退出hive.

可以在里面输入SQL语句,如果要退出Hive交互式执行环境,可以输入如下命令:

hive>exit;

 

 

 

-----Centos6.8安装hive2.1.1出错问题解决方法---------

1. 错误提示:mysql5.7 You must reset your password using ALTER USER statement before executing this statement.

解决方法:https://blog.csdn.net/dotalee/article/details/72576667

需要用ALTER USER重置一次密码才能执行sql语句。ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER;   -- 密码永不过期

 

 

2.错误提示:Hive2:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

https://blog.csdn.net/chengyuqiang/article/details/61216162

 

解决方法:问题找到了, Hive2需要hive元数据库初始化

[root@master bin]schematool -dbType mysql –initSchema

 

 

3.错误提示: Failed to get schema version when starting Hive Metastore Service

https://blog.csdn.net/sh0308/article/details/70239905

.解决办法:
    登录hive所在的mysql数据,执行:grant all on *.* to "<hive_user>"@"%" identified by "<hive_user_password>"; 

 

4.错误提示: Version information not found

 

 

解决办法:

修改conf/hive-site.xml 中的 “hive.metastore.schema.verification”  值为 false  即可解决 “Caused by: MetaException(message:Version information not found in metastore. )” .

https://blog.csdn.net/youngqj/article/details/19987727

 

 

 

posted on 2018-10-06 22:51  飞鸟博客  阅读(195)  评论(0编辑  收藏  举报