hive部署

这是hive远程模式部署。

远程指的是metastore和hive服务是否在同一进程内,仅连接远程的mysql并不能称之为“远程模式” 还有一种本地模式,其特点是:hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以在同一台机器上,也可以在远程机器上。
还有一种是内嵌模式,用的就比较少了,可以不用去掌握。
我主要介绍一下远程模式的部署安装。

Slave2上安装mysql-server

王老师那个安装好了,所以不用做这一步啦。
如果没有安装好需要安装mysql。

  1. 登录 MySQL
使用root用户无密码登录 MySQL:

mysql -u root -p
  1. 增加远程登录权限

当我们的帐号不允许从远程登录,只能在localhost连接时。这个时候只要在 MySQL 服务器上,更改mysql 数据库里的 user 表里的 host 项,从localhost改成%即可实现用户远程登录。

(1)首先我们来查看 mysql 数据库下的 user表信息:

mysql> use mysql;  # 切换成mysql数据库
mysql> select user,host from user;

可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP地址,也可用主机名。

(2)实现远程连接(授权法)

将 host 字段的值改为%就表示在任何客户端机器上能以root用户登录到 MySQL 服务器,建议在开发时设为%。

创建root用户:
create user 'root'@'%' identified by '123456';
update user set host='%' where host='localhost';
添加远程登录用户:
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限:
flush privileges;

Hive 安装部署

  1. 首先我们需要创建工作路径,并将hive解压。

环境中master作为客户端,slave1作为服务器端,因此都需要使用到hive。因为hive相关安装包存放在master中,因此我们先在master中对hive进行解压,然后将其复制到slave1中。

master中操作如下:

1.用ftp将hive安装包传到/opt下。
cd /opt
ls

2.在usr创建hive文件夹。
mkdir -p /usr/hive

3.将opt下的hive包解压到 /usr/hive下。
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/hive
  1. 将master中解压后的hive包远程复制到slave1
scp -r /usr/hive/ root@slave1:/usr/
  1. 修改/etc/profile文件设置hive环境变量。(master和slave1都执行)
vim /etc/profile
#set hive
export HIVE_HOME=/usr/hive/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin

生效环境变量:
source /etc/profile

slave1作为hive server,进行配置

  1. 因为服务器端需要和Mysql通信,所以服务器端需要Mysql的lib安装包到Hive_Home/conf目录下。
用ftp把mysql-connector-java-5.1.47-bin.jar传到slave1的/usr/hive/apache-hive-2.3.4-bin/lib位置就行
  1. 在slave1,修改hive-env.sh文件中HADOOP_HOME环境变量。进入hive配置目录,因为hive中已经给出配置文件的范本hive-env.sh.template,直接将其复制一个进行修改即可:
cd /usr/hive/apache-hive-1.2.1-bin/conf/
ls
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

hive-env.sh文件中修改HADOOP_HOME环境变量,内容如下:

HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

3.hive-site.xml文件

这个文件没有,你就自己开一个新文件就行。

vim hive-site.xml

添加内容如下:
<configuration>  
<!--连接元数据库的链接信息 -->    
<property>  
<name>javax.jdo.option.ConnectionURL</name>  
<value>jdbc:mysql://slave2:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>  
<description>JDBC connect string for a JDBC metastore</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>root</value>  
<description>username to use against metastore database</description>  
</property>  
<!--连接数据库用户密码 -->   
<property>  
<name>javax.jdo.option.ConnectionPassword</name>  
<value>123456</value>  
<description>password to use against metastore database</description>  
</property>  
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
 </property>
<property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
 </property>
</configuration>

master作为客户端,进行配置

  1. 解决版本冲突和jar包依赖问题。

由于客户端需要和Hadoop通信,所以需要更改Hadoop中jline的版本。即保留一个高版本的jline jar包,从hive的lib包中拷贝到Hadoop中lib位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib

cp /usr/hive/apache-hive-1.2.1-bin/lib/jline-2.12.jar  /usr/hadoop/hadoop-2.7.7/share/hadoop/yarn/lib/
  1. 修改hive-env.sh中HADOOP_HOME环境变量。因为hive中已经给出配置文件的范本hive-env.sh.template,直接将其复制一个进行修改即可。
HADOOP_HOME=/usr/hadoop/hadoop‐2.7.3
  1. 修改hive-site.xml:
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive_remote/warehouse</value>
</property>

<!--- 使用本地服务连接Hive,默认为true-->
<property>
    <name>hive.metastore.local</name>
    <value>false</value>
</property>

<!-- 连接服务器-->
<property>
    <name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>

启动hive

  1. slave1作为服务器端,开启hive server。
使用hive的schematool初始化(在hive的bin目录):
bin/schematool -dbType mysql -initSchema

启动远程metastore:
bin/hive --service metastore
  1. master作为客户端,启动hive。
bin/hive
  1. 测试hive是否启动成功:
hive>show databases;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值