博主这两天搭建了Centos,所以写个教程帮助大家去搭建hive数据仓库的环境。
对于hive,其实搭建的时候我们需要有一些认识
那么开始搭建,搭建hive一共分为如下几步
1.安装vmware
2.安装centos系统
3.在centos上安装hadoop
4.在centos上安装mysql
5.安装hive
6.测试hive
简化的话一共是五步,那么对于本次安装过程,前两步暂时不写了,后期会补上去,当然前两部也比较简单。可以看看网络上其他教程。
那么假设你已经完成了前两步,那么本次安装我们需要的安装包如下
没错,只有五个,并不多,我已上传到我的网盘可以自行下载。
百度网盘如下:
链接:https://pan.baidu.com/s/1pJ6C649NGjHflPvMiZw87g
提取码:taqr
注: 所有的操作皆在root权限下进行
su -
#输入root 用户密码,进入管理员权限
cd /home
mkdir software #创建文件夹
然后,将上面四个安装包前三个,放入software文件夹下
cd /home/software
tar -zxvf hadoop-2.7.1.tar.gz
tar -zxvf jdk-8u231-linux-x64.tar.gz
然后,在终端输入
ls
查看是否解压完成
即出现hadoop-2.7.1 和 jdk1.8.0_231
2.2 配置环境变量
在终端输入
vi /etc/profile
在文件末尾加入如下语句:
export JAVA_HOME=/home/software/jdk1.8.0_231
export HADOOP_PREFIX=/home/software/hadoop-2.7.1
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/bin:$PATH:$HADOOP_PREFIX/bin:$PATH"
export HADOOP_PREFIX PATH CLASSPATH
2.3 修改${HADOOP_HMOE}/etc/hadoop/hadoop-env.sh文件,修改JAVA_HOME配置(也可以修改/etc/profile文件,增加JAVA_HOME配置)。
vi /home/software/hadoop-2.7.1/etc/hadoop/hadoop-env.sh
修改文件,修改改环境变量
export JAVA_HOME=/home/software/jdk1.8.0_231/ #修改之后 版本打错
2.4 设置伪分布模式(Pseudo-Distributed Operation)
vi /home/software/hadoop-2.7.1/etc/hadoop/core-site.xml
增加配置(fs.defaultFS:默认文件系统名称):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改etc/hadoop/hdfs-site.xml文件,增加配置(dfs.replication:文件副本数):
vi /home/software/hadoop-2.7.1/etc/hadoop/hdfs-site.xml
增加如下配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
2.5 设置主机允许无密码SSH链接
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 创建公钥私钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys # 设置权限,owner有读写权限,group和other无权限
2.6 格式化文件系统
cd /home/software/hadoop-2.7.1
bin/hdfs namenode -format
2.7 生效环境
source /etc/profile
2.8 启动hadoop
cd /home/software/hadoop-2.7.1
./sbin/start-all.sh
2.9 查看进程
jps
打开firebox浏览器,输入:http://192.168.114.135:50070
结果如下
2.10 输入地址:http://192.168.114.135:8088/,可查看YARN
3.安装mysql病配置sql服务器
3.1 安装 rpm
cd /home/sofrware
rpm -ivh mysql-community-release-el7-5.noarch.rpm
3.2 执行安装
yum install mysql-community-server
3.3 设置开机启动并启动mysql服务
systemctl enable mysqld
systemctl start mysqld
ok,因为版本的原因,安装的mysql未自动生成密码,8.x版本以上会自动生成
3.4 输入mysql ,启动mysql
mysql
结果如下图所示:
3.5 赋予root权限
在mysql命令窗口执行,为了能让root用户可以操作hive
abc123 为root密码
grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
3.6 防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
3.7 启动、关闭、重启服务
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
cd /home/software/
tar -zxvf apache-hive-2.3.9-bin.tar.gz
mv apache-hive-2.3.9-bin/ apache-hive-2.3.9/
4.2 配置hive-log4j2.properties和hive-site.xml
cd /home/software/apache-hive-2.3.9/conf/
cp hive-log4j2.properties.template hive-log4j2.properties
vi hive-site.xml
编辑如下内容:
注:下述代码中,192.168.107.144为本机虚拟机ip地址,编辑时需要修改成自己的
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.107.144:3306/hive?createDatabaseIfNotExist=true</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>abc123</value>
</property>
</configuration>
4.3 初始化数据库
将最后一个文件mysql-connector-java-5.1.17.jar 放在
/home/software/apache-hive-2.3.9/lib文件夹下
然后执行如下命令
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #hive和mysql服务器都要执行,mysql要重启服务
cd /home/software/apache-hive-2.3.9/bin/
./schematool -dbType mysql -initSchema
4.4 配置hive环境变量
vim /etc/profile
在最后加入如下内容:
export HIVE_HOME=/home/software/apache-hive-2.3.9
export PATH=$PATH:$HIVE_HOME/bin
生效环境
source /etc/profile
4.5 启动hive
hive
结果如下:
5. 测试hive
hive环境下输入:
5.1 创建数据库和表
#创建测试hive数据库
create database hive_test;
use hive_test;
#创建hive数据表,指定一个分区
CREATE TABLE testa (
id INT,
name string,
area string
) PARTITIONED BY (create_time string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
5.2创建数据集
cd /home
mkdir data
vi test.txt
编辑如下内容
1,fish1,SZ
2,fish2,SH
3,fish3,HZ
4,fish4,QD
5,fish5,SR
5.3本地数据导入到hive中并创建一个分区:
注:下述代码在hive命令行下运行
LOAD DATA LOCAL INPATH '/home/data/test.txt' INTO TABLE testa PARTITION(create_time='2020-05-11');
5.4 测试是否导入
select * from testa ;
但这里就搭建完成了,如果有疑问可以在评论中私聊我