指导手册 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. )” .