软件环境:

linux系统: CentOS6.7
Hadoop版本: 2.6.5
zookeeper版本: 3.4.8



##主机配置:
######一共m1, m2, m3这五部机, 每部主机的用户名都为centos
```
192.168.179.201: m1
192.168.179.202: m2
192.168.179.203: m3

m1: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Master, Worker

m2: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Worker

m3: Zookeeper, DataNode, NodeManager, Worker



---
<br>
##集群搭建 (注:Hive只需在一个节点上安装)
####1.下载Hive2.1.1安装包

http://www.apache.org/dyn/closer.cgi/hive/


---
####2.解压

tar -zxvf hive-0.9.0.tar.gz -C /home/hadoop/soft


---
####3.配置环境变量

vi /etc/profile

Hive

export HIVE_HOME=/home/centos/soft/hive

export HIVE_CONF_DIR=$HIVE_HOME/conf

export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib

export PATH=$PATH:$HIVE_HOMW/bin

source /etc/profile



---
####4.配置MySQL(注:切换到root用户)
1. 卸载CentOS自带的MySQL

rpm -qa | grep mysql

rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps

yum -y install mysql-server

2. 初始化MySQL
(1)修改mysql的密码(```root```权限执行)

cd /usr/bin

./mysql_secure_installation

(2)输入当前MySQL数据库的密码为``root``, 初始时root是没有密码的, 所以直接回车

Enter current password for root (enter for none):

(3)设置MySQL中``root``用户的密码(应与下面Hive配置一致,下面设置为```123456```)

Set root password? [Y/n] Y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

... Success!

(4)删除匿名用户

Remove anonymous users? [Y/n] Y

... Success!

(5)是否不允许用户远程连接,选择``N``

Disallow root login remotely? [Y/n] N

... Success!

(6)删除test数据库

Remove test database and access to it? [Y/n] Y

Dropping test database...

... Success!

Removing privileges on test database...

... Success!

(7)重装

Reload privilege tables now? [Y/n] Y

... Success!

(8)完成

All done! If you've completed all of the above steps, your MySQL

installation should now be secure.

Thanks for using MySQL!

(9)登陆```mysql```

mysql -uroot -p

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;

FLUSH PRIVILEGES;

exit;

<br>
**至此MySQL配置完成** ---
<br>
<br>
<br>
####5.配置Hive
####1. 编辑``hive-env.xml``文件
将```hive-env.sh.template```文件复制为```hive-env.sh```, 编辑``hive-env.xml``文件

JAVA_HOME=/home/centos/soft/jdk

HADOOP_HOME=/home/centos/soft/hadoop

HIVE_HOME=/home/centos/soft/hive

export HIVE_CONF_DIR=$HIVE_HOME/conf

export HIVE_AUX_JARS_PATH=$SPARK_HOME/lib/spark-assembly-1.6.0-hadoop2.6.0.jar

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$HADOOP_HOME/lib:$HIVE_HOME/lib

export HADOOP_OPTS="-Dorg.xerial.snappy.tempdir=/tmp -Dorg.xerial.snappy.lib.name=libsnappyjava.jnilib $HADOOP_OPTS"


---
<br>
####2. 编辑hive-site.xml文件
配置```hive-site.xml```文件, 将```hive-default.xml.template```文件拷贝为```hive-default.xml```, 并编辑```hive-site.xml```文件(删除所有内容,只留一个```<configuration></configuration>```)

配置项参考:

hive.server2.thrift.port– TCP 的监听端口,默认为10000。

hive.server2.thrift.bind.host– TCP绑定的主机,默认为localhost

hive.server2.thrift.min.worker.threads– 最小工作线程数,默认为5。

hive.server2.thrift.max.worker.threads – 最小工作线程数,默认为500。

hive.server2.transport.mode – 默认值为binary(TCP),可选值HTTP。

hive.server2.thrift.http.port– HTTP的监听端口,默认值为10001。

hive.server2.thrift.http.path – 服务的端点名称,默认为 cliservice。

hive.server2.thrift.http.min.worker.threads– 服务池中的最小工作线程,默认为5。

hive.server2.thrift.http.max.worker.threads– 服务池中的最小工作线程,默认为500。

javax.jdo.option.ConnectionURL
jdbc:mysql://m1:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore

javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore

javax.jdo.option.ConnectionUserName
root
username to use against metastore database

javax.jdo.option.ConnectionPassword
123
password to use against metastore database

datanucleus.autoCreateSchema
true

datanucleus.autoCreateTables
true

datanucleus.autoCreateColumns
true

hive.metastore.warehouse.dir
/hive
location of default database for the warehouse

hive.downloaded.resources.dir
/home/centos/soft/hive/tmp/resources
Temporary local directory for added resources in the remote file system.

hive.exec.dynamic.partition
true

hive.exec.dynamic.partition.mode
nonstrict

hive.exec.local.scratchdir
/home/centos/soft/hive/tmp/HiveJobsLog
Local scratch space for Hive jobs

hive.downloaded.resources.dir
/home/centos/soft/hive/tmp/ResourcesLog
Temporary local directory for added resources in the remote file system.

hive.querylog.location
/home/centos/soft/hive/tmp/HiveRunLog
Location of Hive run time structured log file

hive.server2.logging.operation.log.location
/home/centos/soft/hive/tmp/OpertitionLog
Top level directory where operation tmp are stored if logging functionality is enabled

hive.hwi.war.file
/home/centos/soft/hive/lib/hive-hwi-2.1.1.jar
This sets the path to the HWI war file, relative to ${HIVE_HOME}.

hive.hwi.listen.host
m1
This is the host address the Hive Web Interface will listen on

hive.hwi.listen.port
9999
This is the port the Hive Web Interface will listen on



hive.metastore.uris
thrift://m1:9083
Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.

hive.server2.thrift.bind.host
m1

hive.server2.thrift.port
10000

hive.server2.thrift.http.port
10001

hive.server2.thrift.http.path
cliservice

hive.server2.webui.host
m1

hive.server2.webui.port
10002

hive.scratch.dir.permission
755

hive.aux.jars.path
file:///home/centos/soft/spark/lib/spark-assembly-1.6.0-hadoop2.6.0.jar

hive.server2.enable.doAs
false


hive.server2.authentication
NOSASL

hive.auto.convert.join
false

spark.dynamicAllocation.enabled
true
动态分配资源

spark.driver.extraJavaOptions
-XX:PermSize=128M -XX:MaxPermSize=512M

```


####3. 配置日志地址, 修改```hive-log4j.properties```文件
```
cp hive-log4j.properties.template hive-log4j.properties
```
```
vi hive-log4j.properties
```
```
hive.log.dir=/home/centos/soft/hive/tmp ## 将hive.log日志的位置改为${HIVE_HOME}/tmp目录下
```
```
mkdir ${HIVE_HOME}/tmp
```




####4. 配置hive-config.sh文件
配置```$HIVE_HOME/conf/hive-config.sh```文件
```
## 增加以下三行
export JAVA_HOME=/home/centos/soft/java
export HIVE_HOME=/home/centos/soft/hive
export HADOOP_HOME=/home/centos/soft/hadoop
## 修改下列该行
HIVE_CONF_DIR=$HIVE_HOME/conf
```




#####5. 拷贝JDBC包
将JDBC的jar包放入```$HIVE_HOME/lib```目录下
```
cp /home/centos/soft/tar.gz/mysql-connector-java-5.1.6-bin.jar /home/centos/soft/hive/lib/
```




####6. 拷贝jline扩展包
将`$HIVE_HOME/lib`目录下的`jline-2.12.jar`包拷贝到`$HADOOP_HOME/share/hadoop/yarn/lib`目录下,并删除`$HADOOP_HOME/share/hadoop/yarn/lib`目录下旧版本的`jline`包




####7. 拷贝tools.jar包
复制```$JAVA_HOME/lib```目录下的```tools.jar```到```$HIVE_HOME/lib```下
```
cp $JAVA_HOME/lib/tools.jar ${HIVE_HOME}/lib
```




####8. 执行初始化```Hive```操作
选用`MySQLysql`和`Derby`二者之一为元数据库
注意:先查看`MySQL`中是否有残留的`Hive`元数据,若有,需先删除
```
schematool -dbType mysql -initSchema ## MySQL作为元数据库
```
其中`mysql`表示用`mysql`做为存储`hive`元数据的数据库, 若不用`mysql`做为元数据库, 则执行
```
schematool -dbType derby -initSchema ## Derby作为元数据库
```
脚本`hive-schema-1.2.1.mysql.sql`会在配置的`Hive`元数据库中初始化创建表




####9.启动Metastore服务
执行```Hive```前, 须先启动```metastore```服务, 否则会报错
```
./hive --service metastore
```
然后打开另一个终端窗口,之后再启动```Hive```进程




####10.测试
```
hive
```
```
show databases;
show tables;
create table book (id bigint, name string) row format delimited fields terminated by '\t';
select * from book;
select count(*) from book;
```


Hive2.1.1集群搭建的更多相关文章

  1. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  2. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  3. Hadoop3集群搭建之——hbase安装及简单操作

    折腾了这么久,hbase终于装好了 ------------------------- 上篇: Hadoop3集群搭建之——虚拟机安装 Hadoop3集群搭建之——安装hadoop,配置环境 Hado ...

  4. HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)

    原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...

  5. Hadoop3集群搭建之——hive安装

    Hadoop3集群搭建之——虚拟机安装 Hadoop3集群搭建之——安装hadoop,配置环境 Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hbase安装及简单操作 现在到 ...

  6. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  7. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  8. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  9. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

随机推荐

  1. Linux之强大的selinux

    简单点说,SELinux就是用来加强系统安全性的.它给一些特定程序(这些程序也在不断增加)做了一个沙箱,它将文件打上了一个安全标签,这些标签属于不同的类,也只能执行特定的操作,也就是规定了某个应用程序 ...

  2. C库的制作

    1.库的概念:库是一种可执行的二进制形式: 2.分类: 1>静态库 ①.在程序编译时会被连接到目标代码中: ②.程序运行时不再需要该静态库: ③.体积较大: 2>动态库/共享库 ①.在程序 ...

  3. hadoop在线重启namenode+在线扩展集群

    1.执行步骤 修改dfs.namenode.handler.count=150 () NameNode 有一个工作线程池用来处理客户端的远程过程调用及集群守护进程的调用.处理程序数量越多意味着要更大的 ...

  4. 【Codeforces Global Round 1 C】Meaningless Operations

    [链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...

  5. App后台开发运维和架构实践学习总结(2)——RESTful API设计技巧

    前言 移动互联网时代,RESTful API成为越来越重要的移动端和服务器端交互的形式.尤其是在很多互联网公司或者传统行业拥抱移动互联网的时候,一套设计良好的Restful API能够帮助互联网产品支 ...

  6. HBase行键的设计

    rowkey是行的主键,而且hbase只能用rowkey范围即scan来查找数据.rowkey是以字典排序的.可以巧妙设计行键,比如想通过电影的评价进行排序,可以把评分rate和电影id组合起来,ra ...

  7. AngularJS:添加检查密码输入是否一致的功能

    感谢作者(http://blog.brunoscopelliti.com/angularjs-directive-to-check-that-passwords-match) 利用AngularJS的 ...

  8. 【转】C语言条件编译及编译预处理阶段

    原文: http://www.cnblogs.com/rusty/archive/2011/03/27/1996806.html 1. 宏定义(宏代换,宏替换,宏: 宏定义是C语言提供的3中预处理功能 ...

  9. String字符串方法具体解释

    Java开发中,基本都会用户String,有些时候忘记了它还有某一个方法,或者曾经没有使用到.而这些方法可能会节约非常多时间.自己为了学习这些方法,决定对部分測试一下. 定义:String=" ...

  10. 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第七节:PS基础:UV动画

    <使用Cocos2d-x 开发3D游戏>系列在线课程 第七节:PS基础:UV动画 视频地址:http://edu.csdn.net/course/attend/1330/20807 交流论 ...