一、前提条件
1. 先搭建hadoop环境,具体参考Apache Hive环境搭建
二、mysql安装(rpm方式安装,可以使用yum方式安装,更加智能,会自动安装依赖)
1. 卸载mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2. 解压
tar -axvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar -C ../app
3. 依次安装下面的rpm包
- MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm
- MySQL-devel-5.6.26-1.linux_glibc2.5.x86_64.rpm
- MySQL-embedded-5.6.26-1.linux_glibc2.5.x86_64.rpm
- MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
- MySQL-shared-5.6.26-1.linux_glibc2.5.x86_64.rpm
- MySQL-shared-compat-5.6.26-1.linux_glibc2.5.x86_64.rpm
- MySQL-test-5.6.26-1.linux_glibc2.5.x86_64.rpm
安装命令:
rpm –ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
4. 重新启动mysql
systemctl start mysql
5. 查看数据库初始密码
cat /root/.mysql_secret
6. 设置数据库初始密码
SET PASSWORD=PASSWORD('123456');
set password for root@master=password('123456'); //注意,对于master机器设置密码
7. 设置权限
grant all privileges on *.* to 'root'@'%' identified by ‘123456' with grant option;
- grant all privileges 授予所有的权限
- on *.* 代表所有库所有表
- to ‘root’@’%’,代表所有的ip都可以访问,也可以配置成只有本机可以访问
- identified by ‘Wang0000!’ 是密码
- with grant option 赋予访问的用户拥有授权的权限
- 这个授权命令范围太大,不适合在企业中使用,需要合理控制数据库的授权,防止安全问题。
8. 刷新权限
flush privileges;
9. 设置开机启动
systemctl enable mysql
三、安装hive
1. 解压
tar -zxvf apache-hive-2.3.5-bin.tar.gz -C ../app
2. 添加hive的环境变量
vi /etc/profile
export HIVE_HOME=/home/wangping/app/hive-2.3.5
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export PATH=$HIVE_HOME/bin:PATH
3. 建立hive的目录
mkdir /opt/hive/tmp
chmod 666 /opt/hive/tmp
mkdir /root/hive
mkdir /root/hive/warehouse
4. 在hdfs上建立数仓目录
hdfs dfs -mkdir -p /root/hive/
hdfs dfs -mkdir -p /root/hive/warehouse
5. 修改两个目录的权限为777
hdfs dfs -chmod 777 /root/hive
hdfs dfs -chmod 777 /root/hive/warehouse
6. 配置hive-site.xml
cp hive-default.xml.template hive-site.xml
vi hive-site.xml
<!-- 指定HDFS中的hive仓库地址 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/root/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/root/hive</value>
</property>
<!-- 该属性为空表示嵌入模式或本地模式,否则为远程模式 -->
<property>
<name>hive.metastore.uris</name>
<value></value>
</property>
<!-- 指定mysql的连接 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master: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>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
<description>
</description>
</property>
7. 配置hive-site.xml
vi hive-site.xml
${system:java.io.tmpdir}改为: /opt/hive/tmp
${system:user.name}改为: root
8. 修改hive-env.sh
vi hive-env.sh
export HADOOP_HOME=/home/wangping/app/hadoop-2.7.7
export HIVE_CONF_DIR=/home/wangping/app/hive-2.3.5/conf
export HIVE_AUX_JARS_PATH=/home/wangping/app/hive-2.3.5/lib
9. 拷贝mysql连接器jar包
cp mysql-connector-java-8.0.16.jar /home/wangping/app/hive-2.3.5/lib
10. 初始化mysql数据库
cd /home/wangping/app/hive-2.3.5/bin
schematool -initSchema -dbType mysql
11. 查看mysql中的hive数据库
mysql -uroot -p
use hive
show tables;
四、测试hive
1. 创建一个仓库,两张表
create database hiveTest;
create table hiveTest.student(id int,name string) row format delimited fields terminated by '\t';
create table hiveTest.employee(id int,name string) row format delimited fields terminated by '|';
2. 向表里面load数据
load data local inpath ‘/home/wangping/app/hive-2.3.5/examples/files/student.txt’ into table hiveTest.student;
load data local inpath ‘/home/wangping/app/hive-2.3.5/examples/files/employee.dat’ overwrite into table hiveTest.employee;
select * from hiveTest.student;
3. 查看hdfs上的hive仓库的目录结构(一窥数据仓库的组织方式)
hdfs dfs -ls /root/hive/warehouse/
4. 查看表的数据,过渡区通常采用textfile的存储格式(默认也是textfile格式),可以手工检查数据
hdfs dfs -text /root/hive/warehouse/hivetest.db/employee/employee.dat
5. 通过web查看MapReduce任务执行情况
六、拍摄快照
1. 拍摄快照,方便日后快速搭建环境
七、参考资料
https://www.cnblogs.com/xuwujing/p/8045821.html