Hive远程模式安装指导

来源:互联网 发布:文字转语音软件 编辑:程序博客网 时间:2024/06/10 09:37

Hive远程模式说明:

在远程模式下,Metastore、Driver(即Hive服务)、和CLI分别运行在不同的Runjar进程中,且必须依次启动。

1 安装环境介绍

1.1 相关组件版本

组件版本说明

 

 

组件名称

版本号

备注

Ubuntu

16.06

64-bit

Hadoop

hadoop-2.5.2

包括HDFS、YARN

Hive

hive-1.2.1

N/A

MySQL

5.7.19-0ubuntu0.16.04.1

N/A

1.2 安装顺序

Hadoop-》MySQL-》Hive

2 安装过程

2.1 安装Hadoop

安装步骤略。运行时进行如下所示:

模块名称

操作系统

IP地址

主机名

账户

服务

Hadoop

Ubuntu

192.168.209.131

node1

root/root

主节点:

4865 DataNode

4759 NameNode

5306 NodeManager

5050 SecondaryNameNode

5195 ResourceManager

192.168.209.132

node2

root/root

4483 NodeManager

4372 DataNode

192.168.209.133

node3

root/root

4011 DataNode

4124 NodeManager

 

2.2 安装MySQL

Hive在远程模式下,使用MySQL数据库存储metastore元数据,因此需要先部署MySQL。

步骤 1    在node1节点安装MySQL。以root用户执行如下命令:

apt-get install mysql-server

安装期间需要设置用户名和密码,设置为root/root

apt-get install mysql-client

apt-get install libmysqlclient-dev

安装完成后,MySQL是开机自启动的,通过如下命令可以检查MySQL是否在运行:

netstat -tap|grepmysql

步骤 2    修改MySQL字符集。

1.      登录MySQL。

mysql -uroot -proot

2.      查看数据库字符集

show variables like'character%';

clientutf8编码,而serverlatin1编码,系统也是utf8编码;而开发环境字符集为utf8,所以需修改server的编码。

3.      修改数据库字符集。

vi /etc/mysql/mysql.conf.d/mysqld.cnf

修改后的配置如下所示:

[mysqld_safe]

socket          = /var/run/mysqld/mysqld.sock

nice            = 0

[client]

port            = 3306

socket          = /var/run/mysqld/mysqld.sock

#增加客户端的字符编码

default-character-set=utf8

 

[mysqld]

#

# * Basic Settings

#

user            = mysql

pid-file        = /var/run/mysqld/mysqld.pid

socket          = /var/run/mysqld/mysqld.sock

port            = 3306

basedir         = /usr

datadir         = /var/lib/mysql

tmpdir          = /tmp

lc-messages-dir= /usr/share/mysql

skip-external-locking

# 增加服务器端的字符编码

character-set-server=utf8

collation-server=utf8_general_ci

# 注释bind-address

#bind-address            = 127.0.0.1

4.      重启MySQL。

service mysql restart

5.      查看字符集。


步骤 3    修改MySQL字符集。

1.      在MySQL中创建hive数据库。

createdatabasehive;

2.      使用hive数据库。

use hive

3.      在hive数据库里创建user用户表。

createtableuser(Hostchar(20),Userchar(10),Passwordchar(20));

4.      进入MySQL赋予权限

mysql -uroot-proot

insert intouser(Host,User,Password)values("localhost","hive","hive");

FLUSHPRIVILEGES;

 

GRANT ALLPRIVILEGES ON *.*  TO 'hive'@'localhost'IDENTIFIED BY 'hive';

FLUSHPRIVILEGES;

 

2.3 安装Hive

Hive的安装比较简单,本节示例中和hadoop一样安装在root用户下。

步骤 1    上传软件包。

将Hive安装包apache-hive-1.2.1-bin.tar.gz上传到node1节点的“/home”目录下。

步骤 2    解压安装包并修改名称。

tar -zxvf apache-hive-1.2.1-bin.tar.gz

mv apache-hive-1.2.1-bin  hive-1.2.1

 步骤 3    配置环境变量。

vi /etc/profile

exportHIVE_HOME=/home/hive-1.2.1

exportPATH=$PATH:$HIVE_HOME/bin:/home/hive-1.2.1/conf

source /etc/profile

步骤 4    创建iotmp文件夹。

cd /home/hive-1.2.1

mkdir iotmp

 步骤 5    修改Hive配置文件。

1.      修改配置文件hive-env.sh.

cd /home/hive-1.2.1/conf

cp hive-env.sh.template hive-env.sh

# SetHADOOP_HOME to point to a specific hadoop install directory

#HADOOP_HOME=${bin}/../../hadoop

HADOOP_HOME=/home/hadoop-2.5.2

 

# HiveConfiguration Directory can be controlled by:

 export HIVE_CONF_DIR=/home/hive-1.2.1/conf

 

# Foldercontaining extra ibraries required for hive compilation/execution can becontrolled by:

exportHIVE_AUX_JARS_PATH=/home/hive-1.2.1/lib

2.      修改配置文件hive-site.xml.

cd /home/hive-1.2.1/conf

cp hive-env.sh.template hive-env.sh

配置示例如下所示:

<property>

   <name>hive.exec.local.scratchdir</name>

   <value>/home/hive-1.2.1/iotmp</value>

   <description>Local scratch space for Hive jobs</description>

</property>

 

<property>

   <name>hive.downloaded.resources.dir</name>

   <value>/home/hive-1.2.1/iotmp/${hive.session.id}_resources</value>

    <description>Temporary localdirectory for added resources in the remote file system.</description>

</property>

 

<property>

   <name>hive.querylog.location</name>

   <value>/home/hive-1.2.1/iotmp</value>

    <description>Location of Hive runtime structured log file</description>

</property>

 

<property>

   <name>hive.metastore.uris</name>

   <value>thrift://127.0.0.1:9083</value>

    <description>Thrift URI for theremote metastore. Used by metastore client to connect to remotemetastore.</description>

</property>

 

<property>

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

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

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

 </property>

 <property>

 

 <property>

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

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

   <description>Driver class name for aJDBC metastore</description>

 </property>

 

 <property>

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

   <value>hive</value>

   <description>Username to use againstmetastore database</description>

 </property>

 

 <property>

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

   <value>hive</value>

   <description>password to use againstmetastore database</description>

 </property>

 

<property>

    <name>hive.aux.jars.path</name>

   <value>/home/hive-1.2.1/auxlib</value>

    <description>The location of theplugin jars that contain implementations of user defined functions andserdes.</description>

</property>

 

<property>

   <name>hive.server2.logging.operation.log.location</name>

   <value>/home/hive-1.2.1/iotmp/operation_logs</value>

   <description>Top level directory where operation logs are storedif logging functionality is enabled</description>

</property>

3.      修改配置文件hive-config.sh

cd /home/hive-1.2.1/bin

vi hive-config.sh

配置示例如下所示:

export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-256}

export JAVA_HOME=/root/jdk1.8.0_131

export HADOOP_HOME=/home/hadoop-2.5.2

export HIVE_HOME=/home/hive-1.2.1

 步骤 6    下载mysql-connector-java-5.1.31-bin.jar并上传到$HIVE_HOME/lib目录下。

 步骤 7    替换 jline.jar
cp /home/hive-1.2.1/lib/jline-2.12.jar /home/hadoop-2.5.2/share/hadoop/yarn/lib/

步骤 8    在HDFS上创建Hive仓库的目录(这些路径是在hive-site.xml里配置的默认路径)。

hadoop fs -mkdir /tmp

hadoop fs -mkdir /user/hive/warehouse

hadoop fs -chmod g+w /tmp

hadoop fs -chmod g+w /user/hive/warehouse

 步骤 9    启动Hive。

启动MetaStore: hive --service metastore &

启动HiveServer: hive --service hiveserver2 &

启动Hive CLI: hive

上述每个命令都会启动一个RunJar进程。

启动过程中会有报错,在网上查找解决即可。

参考:http://blog.csdn.net/yizheyouye/article/details/53841084

http://f.dataguru.cn/thread-32809-1-1.html

http://f.dataguru.cn/thread-32711-1-1.html

 

原创粉丝点击