Hive部署

一、集群规划
- 系统环境如下:
- 操作系统:Linux
- Hadoop 2.7.2
- Hive2.1.1
- MySQL 5.7.18
- JDK 1.7
hadoop集群各节点规划如下:

IP主机名nodehivemetastoremysql
134.xx.3.81master-hadoopnn1hivemetastore
134.xx.3.54slave1-hadoopnd1hiveclient
134.xx.3.85slave2-hadoopnd1hiveclient
134.xx.3.86slave3-hadoopnd1hiveclient
134.xx.3.88slave5-hadoopnd1hiveclientmysql

说明:nn代表hadoop的namenode,dn代表datanode
我们把metastore服务装在81、MySQL装在88上(理论上metastore和mysql装在集群的哪台都行,有时间可以测试下)
在执行以下步骤之前,请确保已经安装了Hadoop集群
* 二、安装mysql(见我上一篇文章)*
* 三、安装hive-2.1.1(注意:hive最好安装在hadoop用户下,这样访问hdfs时不会出现权限问题) *
1. 下载最新的hive,直接去apache 里面找hive2.1.0下载就行。
2. 解压到/usr2/hadoop目录下(这是我hadoop用户默认的路径)
3. 将解压出来的文件夹重命名为hive-2.1.1
4. 设置环境变量

vi /etc/profile
export HIVE_HOME=/usr2/hadoop/hive-2.1.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$HIVE_HOME

四、配置mysql和metastore
1. 启动mysql服务:/etc/init.d/mysqld start
2. 因为使用MySQL作为存储元数据的数据库,所以需要把连接MySQL的 jar包放入或链接到$HIVE_HOME/lib目录下,我这里使用了最新的mysql-connector-java-5.1.40.tar.gz
3. 创建数据库和用户

进入mysql安装目录
bin/mysql -u root -p
Enter password: 
mysql> CREATE DATABASE metastore; 
mysql> USE metastore; 
mysql> CREATE USER 'hive'@'metastorehost' IDENTIFIED BY 'mypassword';  
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'hive'@'metastorehost'; 
mysql> GRANT ALL ON metastore.* TO 'hive'@'metastorehost' IDENTIFIED BY 'hive'; 
mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive'; 
mysql> FLUSH PRIVILEGES; 
mysql> ALTER DATABASE metastore CHARACTER SET latin1; (解决mysql/hive字符集问题)
mysql> quit;

五、Hive配置
1 Hive配置文件里要用到HDFS的一些路径,需要先手动创建。

hdfs dfs -mkdir /usr/hive/warehouse 
hdfs dfs -mkdir /usr/hive/tmp 
hdfs dfs -mkdir /usr/hive/log

上述语句涉及hive-site.xml hive.metastore.warehouse.dir等,表示数据在hdfs中的存储位置
2 hive-env.sh (所有节点)

export HADOOP_HOME=/usr/lib/hadoop 
export HIVE_CONF_DIR=/usr/lib/hive/conf

3 hive-log4j.properties(所有节点)

首先创建log存放的文件夹
mkdir /usr2/hadoop/hive-2.1.1/logs
然后配置hive-log4j.properties
property.hive.log.dir = /usr2/hadoop/hive-2.1.1/logs

4 服务端hive-site.xml(服务端指的是Metastore服务所在的机器,即安装metastore的机器,这里是81 master-hadoop)

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://134.149.3.88:3306/metastore?createDatabaseIfNotExist=true</value>
  <description>the URL of the MySQL database</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>hive</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
</property>

<property>
 <name>hive.metastore.warehouse.dir</name>
 <value>/usr/hive/warehouse</value>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/usr/hive/tmp</value>
</property>

<property>
<name>hive.querylog.location</name>
<value>/usr/hive/log</value>
</property>

5 客户端hive-site.xml

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://Goblin01:9083,Goblin02:9083</value>
  <description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>

<property>
 <name>hive.metastore.warehouse.dir</name>
 <value>/usr/hive/warehouse</value>
</property>

<property>
 <name>hive.exec.scratchdir</name>
 <value>/usr/hive/tmp</value>
</property>

<property>
 <name>hive.querylog.location</name>
 <value>/usr/hive/log</value>
</property>

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/usr2/hadoop/hive-2.1.1/tmp/local</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr2/hadoop/hive-2.1.1/tmp/resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

6 初始化数据库(注意一定要在metastore服务的那台执行)

cd /usr2/hadoop/hive-2.1.1/bin
./schematool --dbType mysql --initSchema

初始化时注意看有没有报错,没报错即成功
7 登录mysql,show tables看看有没有生成表
8 启动Hive服务端(metastore服务):

cd $HIVE_HOME
bin/hive --service metastore
后台启动:
bin/hive --service metastore 2>&1 >> /var/log.log &
后台启动,关闭shell连接依然存在:
nohup bin/hive --service metastore 2>&1 >> /var/log.log &

启动成功日志
这里写图片描述
这里写图片描述
关闭metastore服务

ps -ef|grep HiveMetaStore
找到进程
kill -9 进程号

9 启动Hive客户端

cd $HIVE_HOME
hive

启动成功日志
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值