详细全面的Hive安装流程和环境配置文档,欢迎收藏
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>