本地和远程模式安装配置方式大致相同,本质上是将Hive默认的元数据存储介质由自带的Derby数据库替换为MySQL数据库,这样无论在任何目录下以任何方式启动Hive,只要连接的是同一台Hive服务,那么所有节点访问的元数据信息是一致的,从而实现元数据的共享。下面就以本地模式为例,讲解安装过程。
本地模式的Hive安装主要包括两个步骤:首先安装MySQL服务,再安装Hive。具体步骤如下:
Mysql的安装方式:
1.先检查系统是否装有mysql
rpm -qa | grep mysql
2.下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
如果报错: -bash: wget: 未找到命令
安装插件 yum -y install wget(wget就是给一个地址直接下载)
3.安装 mysql-community-release-el7-5.noarch.rpm包
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
4.安装MySQL
sudo yum install mysql-server
5.重置MySQL密码
mysql -u root
如果报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因:原因是/var/lib/mysql的访问权限问题。
chown root /var/lib/mysql/
重启MySQL服务
service mysqld restart
接着登陆设置密码
mysql -u root
use mysql;
update user set password=password(‘123456’) where user=‘root’;
exit;
6.重启MySQL服务
service mysqld restart
接着设置Root账户远程连接密码,账户和密码都是 root
mysql -u root -p
GRANT ALL PRIVILEGES ON . TO root@“%” IDENTIFIED BY “root”;
grant all privileges on . to ‘root’@‘%’ identified by ‘root的密码’ with grant option;
重启服务器
service mysqld restart
7.使用外网工具连接MySQL
连接mysql的用户名和密码都是 root
关闭防火墙
systemctl stop firewalld.service
至此,安装MySQL成功,可用使用命令查看:
启动MySQL服务:systemctl start mysqld.service
查看MySQL服务当前状态:systemctl status mysqld.service
停止MySQL服务:systemctl stop mysqld.service
设置mysql服务开机自启动:systemctl enable mysqld.service
停止mysql服务开机自启动:systemctl disable mysqld.service
Navicat连不上!
解决方法:
一、端口设置
1.查看当前机子MySQL的端口号:
mysql>show global variables like ‘port’;
2.检查防火墙状态:
Centos7以下:service iptables status
Centos7以上:systemctl status firewalld.service
若查无3306端口,请开启。
当然,你也可以简单除暴些——关闭防火墙:
Centos7以下:service iptables stop
Centos7以上:systemctl stop firewalld.service
二、权限设置
1.赋予ip权限:
mysql> grant all privileges on . to ‘root’@‘%’ identified by ‘pwd’ with grant option;
grant all privileges on . to ‘root’@‘%’ identified by ‘root的密码’ with grant option;
Tips:
root为数据库用户名,pwd为数据库密码。
这表示给本地 ip赋予了所有的权限,包括远程访问权限,%表示允许任何 ip访问数据库。
2.重新加载,使配置生效:
mysql> flush privileges;
3.检查一下,命令查看是否修改成功:
mysql> select host,user from user;
4.退出数据库:
mysql> exit
5.重启数据库:
systemctl restart mysqld.service
1.在原先解压出来的基础上进行:
2.修改hive-env.sh配置文件,配置Hadoop环境变量
进入Hive安装包下的conf文件夹,将hive-env.sh.template文件进行拷贝并重命名为hive-env.sh,具体指令如下:
cp hive-env.sh.template hive-env.sh
3.使用命令:vi hive-env.sh修改配置文件,在48行修改Hadoop环境变量。如下图所示。(或者用编辑器)
上述操作是设置Hadoop环境变量,作用是无论系统是否配置Hadoop环境变量,在Hive执行时,一定能够通过hive-env.sh 配置文件去加载Hadoop环境变量,由于在部署Hadoop集群时已经配置了全局Hadoop环境变量,因此可以不设置该参数。
这个里边如果是localhost就出现提示密码错误和权限问题;
可以用ip地址或者机器名字:
或者:
4.添加hive-site.xml配置文件,配置MySQL相关信息
由于Hive安装包conf目录下,没有提供hive-site.xml文件,这里需要创建并编辑一个hive-site.xm1配置文件,具体内容如下所示:
完成配置后,Hive就会把默认使用Derby数据库方式所覆盖。这里需要注意的是,由于使用了MySQL数据库,那么就需要上传MySQL连接驱动的Jar包到Hive安装包的lib文件夹下。
5.添加mysql的connect的jar包
/usr/local/hive/apache-hive-1.2.1-bin/lib/
如果使用远程模式的安装方式,只需要将hive-site.xm1配置文件中的localhost修改为具有MySQL服务的节点IP即可,这样无论用户通过什么路径下启动Hive客户端,都可以访问相同的元数据信息。
正常启动后:
这里就已经使用到了远程模式来进行hive的安装;并且在mysql中创建了对应的数据库 hive
如果启动的时候出错:
节点扩展连接操作:(扩展操作)