1. 环境准备

注意:以下步骤均以root权限操作

1.1 虚拟机集群准备

克隆三台虚拟机(linux01、linux02、linux03),
修改虚拟机的网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置好对应主机的网络IP

vi /etc/udev/rules.d/70-persistent-net.rules

永久修改主机名

vi /etc/sysconfig/network

配置域名映射

vi /etc/hosts

[root@linux01 /]# cat /etc/hosts
192.168.133.3   linux01
192.168.133.4   linux02
192.168.133.5   linux03
192.168.133.6   linux04
192.168.133.7   linux05

关闭防火墙
service iptables stop

查看防火墙状态
service iptables status

iptables: Firewall is not running.

1)linux01、linux02、linux03的主机对应内存分别是:10G、2G、2G
2)在linux01的/opt目录上创建apps和software目录

1.2 SSH免密登录

配置linux01对linux01、linux02、linux03三台主机的免密登陆。
(1)生成公钥和私钥:

[root@linux01 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(2)将公钥拷贝到要免密登录的目标机器上

[root@linux01 .ssh]$ ssh-copy-id linux01
[root@linux01 .ssh]$ ssh-copy-id linux02
[root@linux01 .ssh]$ ssh-copy-id linux03

1.3 安装JDK(三台)

1)在linux01的/opt目录下创建apps和software文件夹

[root@linux01 opt]# mkdir apps
[root@linux01 opt]# mkdir software

2)用SecureCRT将jdk-8u144-linux-x64.tar.gz导入到linux01的/opt/software目录下
3)在Linux系统下的opt目录中查看软件包是否导入成功

[root@linux01 software]$ ls
jdk-8u144-linux-x64.tar.gz

4)解压JDK到/opt/apps目录下

[root@linux01 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/apps/

5)配置JDK环境变量
(1)先获取JDK路径

[root@linux01 jdk1.8.0_144]$ pwd
/opt/apps/jdk1.8.0_144
(2)打开/etc/profile文件
[root@linux01 software]$ vi /etc/profile

在profile文件末尾添加JDK路径

#JAVA_HOME
export JAVA_HOME=/opt/apps/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

(3)保存后退出

:wq

(4)让修改后的文件生效

[root@linux01 jdk1.8.0_144]$ source /etc/profile

6)测试JDK是否安装成功

[root@linux01 jdk1.8.0_144]# java -version
java version "1.8.0_144"

7)将linux01中的JDK和环境变量分发到linux02、linux03两台主机

[root@linux01 opt]# xsync /opt/apps/
[root@linux01 opt]# xsync /etc/profile

分别在linux02、linux03上source一下

[root@linux02 ~]$ source /etc/profile
[root@linux03 ~]# source /etc/profile

1.4 关闭SELINUX

安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux
内核模块,也是Linux的一个安全子系统。

SELinux的结构及配置非常复杂,所以为了避免出现各种错误,建议关闭,有如下两种关闭方法:
(1)临时关闭:

[root@linux01 ~]# setenforce 0

但是这种方式只对当次启动有效,重启机器后会失效,建议使用第二种方式。
(2)永久关闭
修改配置文件/etc/selinux/config

[root@linux01 ~]# vim /etc/selinux/config

vi /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
SELINUX=disabled

(3)同步/etc/selinux/config配置文件

[root@linux01 ~]# xsync /etc/selinux/config

(4)重启linux01、linux02、linux03主机

[root@linux01 ~]# reboot
[root@linux02 ~]# reboot
[root@linux03 ~]# reboot

1.5 Hadoop集群配置,并启动hdfs集群

hadoop集群配置见本地址:最详细全面的Hadoop集群|HDFS集群安装文档

1.6 安装Mysql服务

mysql服务详细安装地址:详细全面的Linux下安装mysql客户端服务端

安装完之后需要开启远程连接权限

1.6.1 首先,在mysql安装的机器上,用mysql命令行客户端登录

mysql -uroot -p你设置的密码

1.6.2 在mysql命令行交互界面中,输入以下命令

mysql > grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
 mysql > flush privileges;

2 Hive安装

2.1 上传Hive安装包

rz  apache-hive-2.3.5.tar.gz

2.2 解压hive安装包到指定目录下

tar -zxf apache-hive-2.3.5.tar.gz -C /opt/apps/

2.3 修改hive配置文件

2.3.1 修改hive-env.sh

进去conf目录下

cd /opt/bigdata/hive-2.3.5/conf

copy一份 hive-env.sh.template 重命名为hive-env.sh

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

修改hive-env.sh

vi  hive-env.sh

添加hadoop地址和hive conf地址

# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/apps/hadoop-2.8.5/
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/bigdata/hive-2.3.5/conf/
2.3.2 新建 hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://linux01:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>自己的mysql密码</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
<property> 
<name>hive.server2.thrift.port</name> 
<value>10000</value>
</property>
<property> 
<name>hive.server2.thrift.bind.host</name> 
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
<property> 
<name>hive.server2.long.polling.timeout</name> 
<value>5000</value>                               
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateSchema </name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore </name>
<value>true</value>
</property>

<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>
<property>
<name>hive.zookeeper.quorum</name>
<value>linux01,linux02,linux03</value>
</property>
</configuration>

2.4 需要上传mysql的驱动jar包到hive的lib下

链接:https://pan.baidu.com/s/1sFU2zf_4qQBeZ2OATjV3KQ 
提取码:u3ch

2.5 配置环境变量

为了操作hive的命令方便
根目录下 运行一下代码,将hadoop位置配置到环境变量中

vi  /etc/profile

export JAVA_HOME=//opt/bigdata/jdk1.8.0_141
export	HADOOP_HOME=/opt/bigdata/hadoop-2.8.5
export  HIVE_HOME=/opt/bigdata/hive-2.3.5

export  PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

2.6 初始化hive元数据信息到mysql

${HIVE_HOME}/bin/ schematool -initSchema -dbType mysql

2.7 server2远程连接的时候要修改hadoop的配置文件的用户操作权限

cd /opt/bigdata/hadoop-2.8.5/etc/hadoop/
vi  core-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>