Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建五(Hive篇)
全文请看:https://blog.csdn.net/tktttt/article/details/108578804
大数据集群搭建安装包:https://download.csdn.net/download/tktttt/12879318
大数据集群搭建安装包2:https://download.csdn.net/download/tktttt/12879355
七、Hive安装配置
1.准备工作
在前文基础上,继续安装MySQL
数据库包下载:官网地址
下载rpm类型安装包(注意版本选择),例如本文选择的:
mysql-community-common-5.7.31-1.el7.x86_64.rpm
mysql-community-libs-5.7.31-1.el7.x86_64.rpm
mysql-community-client-5.7.31-1.el7.x86_64.rpm
mysql-community-server-5.7.31-1.el7.x86_64.rpm
- MySQL下载安装可以参考此处:MySQL下载参考
卸载系统自带的mariadb-lib:
查看mariadb版本
rpm -qa|grep mariadb
卸载mariadb(改成自身的实际版本)
rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps
安装MySQL:
mysql有依赖关系,安装顺序是 common、lib、client、server:
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
安装完成后,启动mysql:systemctl start mysqld
设置:
查看安装时自动设置的初始密码:位置应该在/var/log/mysqld.log
之后通过初始密码登录MySQL:mysql -uroot -p初始密码
登录成功后会要求修改密码,按要求进行即可(此时要按其默认规则来),而为了设置简单的密码,如123456,之后要进行权限更改(可以查看下文参考链接),然后再修改密码为123456:
set password for root@localhost = password('123456'); // 设置root密码为123456;
此后再设置授权打开远程连接update user set host = '%' where user ='root'; //配置可远程登录
刷新授权flush privileges; //更新权限
之后重启MySQL服务systemctl restart mysqld
设置自启(可以不设置)systemctl enable mysqld
- MySQL安装设置可以参考此处:MySQL设置参考
2.安装hive
到官网下载相应适配版本的hive安装包,本文选择的是:apache-hive-2.3.7-bin.tar.gz
上传到/usrlocal/hive目录下(自行创建的目录),之后解压:
tar -zxvf apache-hive-2.3.7-bin.tar.gz
配置环境变量
vi /etc/profile
#hive
export HIVE_HOME=/usr/local/hive/apache-hive-2.3.7-bin
export PATH=$PATH:$HIVE_HOME/bin #在path后添加即可
使之生效:source /etc/profile
配置完成可输入hive --version
查看版本
配置hive:
- 修改hive-env.sh文件
切换到/usr/local/hive/apache-hive-2.3.7-bin/conf目录下,若没有hive-env.sh,复制hive-env.sh.template 为 hive-env.sh:
cp hive-env.sh.template hive-env.sh #复制
vi hive-env.sh #打开编辑
修改或添加:
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.4 #hadoop路径
export HIVE_CONF_DIR=/usr/local/hive/apache-hive-2.3.7-bin/conf #hive的conf路径
export HIVE_AUX_JARS_PATH=/usr/local/hive/apache-hive-2.3.7-bin/lib #hive的jar包路径
export JAVA_HOME=/usr/local/java/jdk1.8.0_261 #jdk安装路径
- 配置hive-site.xml
同目录下,初次解压发现hive-site.xml配置文件并没有,此时需要我们自己创建并配置hive-site.xml,复制hive-default.xml.template 为 hive-site.xml:
cp hive-default.xml.template hive-site.xml
编辑该文件vi hive-site.xml
,加入下述内容:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!-- 元数据库的链接地址 mysql -->
<!-- 如果是远程mysql数据库的话需要在这里写入远程的IP或hosts -->
<!--配置mysql连接,如果没有hive_db库则新建-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.88.129:3306/hive_db?createDatabaseIfNotExist=true</value> //数据库所在主机的IP
</property>
<!--配置jdbc驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--mysql用户名root-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--配置mysql密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
并搜索上述的每一项,将文件原有的每一项删除或者注释;
搜索derby,将含有该词的每一项都注释或者删除,注释里有的不算;
然后将配置文件中所有的${system:java.io.tmpdir}
更改为 /usr/hive/tmp
(如果没有该文件则创建),并将此文件夹赋予读写权限,将${system:user.name}
更改为 实际用户root;
其他${...}
也适当删改;
保存退出
- 复制hive-exec-log4j2.properties.template 为 hive-exec-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
- 复制hive-log4j2.properties.template为hive-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
下载mysql驱动(本文为mysql-connector-java-5.1.49-bin.jar
)放入/usr/local/hive/apache-hive-2.3.7-bin/lib
包中
初始化(第一次启动):
schematool -initSchema -dbType mysql
若最后有下面字样,则说明成功:
schemaTool completed
且查看MySQL数据库,可以发现其中创建了hive_db
库
启动:
要求:前面均已按六、启动hbase 步骤启动了所有
hive
启动顺序:
#zookeeper
#bin目录下
./zkServer.sh start
#hadoop
hadoop-daemon.sh start journalnode
start-all.sh(即:start-dfs.sh start-yarn.sh)
#hbase
#bin目录下
./start-hbase.sh
#hive
hive
nohup hiveserver2 2>/usr/data/hive/log/hiveserver2/hiveserver.err &
nohup hive --service metastore 2>/usr/data/hive/log/metastore/metastore.err &
nohup hiveserver2 >/usr/data/hive/log/hiveserver2/hiveserver.log &
nohup hive --service metastore >/usr/data/hive/log/metastore/metastore.log &
关闭顺序:
#hive
jps命令找到Runjar进程kill掉
或
ps -ef | grep hive
kill -9 进程 #杀掉
#hbase
#bin目录下
./stop-hbase.sh
#hadoop
hadoop-daemon.sh stop journalnode
stop-all.sh
#zookeeper
#bin目录下
./zkServer.sh stop
测试hive:
hive #启动进入hive
show databases; #展示所有数据库
create database test_hive; #创建test_hive数据库
show databases; #展示所有数据库
use test_hive; #使用数据库test_hive
show tables; #展示当前该数据库下所有数据表
create table test_users(id int,name string); #创建test_users数据表
show tables; #展示当前该数据库下所有数据表
insert into test_users values(1,"aaa"); #插入数据
select * from test_users; #查询test_users表所有数据
若是执行语句时,卡住不动,可以将所有服务停止,然后在Hadoop安装目录下的etc/hadoop目录下,修改yarn-site.xml,添加如下内容应当会有所缓解:
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2000</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2000</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
之后依次重新启动服务,其中Hadoop最好是删除原有的重新格式化启动