注释:MySQL和Mariadb都为Hadoop的数据库软件,两者有一个即可。
进入正题
Mariadb安装
1.安装:
yum install -y mariadb-server
2.启动maria DB服务:
systemctl start mariadb.service
(说明:CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。)
3.添加至开机自启动:
systemctl enable mariadb.service
初始化数据库配置
mysql_secure_installation
首先是设置密码,会提示先输入密码:
设置密码
Enter current password for root (enter for none):<–直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,Y回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录, N回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,Y回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,Y回车
初始化MariaDB完成,接下来测试本地登录。
开启远程访问
本地登录数据库执行下面命令:
首先配置允许访问的用户,采用授权的方式给用户权限
mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '000' WITH GRANT OPTION;
最后配置好权限之后不应该忘记刷新使之生效 说明:root是登陆数据库的用户,000是登陆数据库的密码,*就是意味着任何来源任何主机反正就是权限很大的样子。
flush privileges;
Hive安装
1、首先使用Mariadb建hive用户
登录mysql数据库
mysql -uroot -p
【mysql -uroot -p这里是可以直接跟密码的,例如mysql -uroot -p000】
展示当前数据库
show databases;
创建hive用户密码是hive
create user hive identified by 'hive';
展示当前数据库用户
select user from mysql.user;
hive用户授权
grant all privileges on *.* to hive@'%' identified by 'hive';
刷新使授权立即生效
flush privileges;
退出当前root用户
exit;
2、使用hive用户登录
mysql -uhive -p
创建hive数据库
create database hive;
使用hive数据库
use hive;
3、往master主机上做以下操作
创建hive文件夹:
mkdir /hive cd /hive
传hive安装包,下载 地址 :点击下载Hive包
解压:
tar -xvzf apache-hive-1.2.2-bin.tar.gz
4、配置hive环境变量
vi /etc/profile
在文件 最后一行添加:【注意路径位置】
export HIVE_HOME=/hive/apache-hive-1.2.2-bin export PATH=$PATH:$HIVE_HOME/bin
执行source命令,使配置文件立即生效
source /etc/profile
5、上传mysql-connector-java-5.1.49.jar包到 /hive/apache-hive-1.2.2-bin/lib
mysql-connector-java-5.1.49.jar 包下载地址:点击下载mysql-connector-java-5.1.49.jar包
cd /hive/apache-hive-1.2.2-bin/lib
rz
mysql-connector-java-5.1.49.jar 包
6、配置hive-site.xml【注意自己存放的路径】
cd /hive/apache-hive-1.2.2-bin/conf
生成配置文件
cp hive-default.xml.template hive-site.xml
清空配置文件
echo "">hive-site.xml
配置文件添加内容
vi hive-site.xml
<configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value> </property> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://<del><span style="color: #ff0000;">你的master地址【例如:192.168.1.4:3306】</span></del>:3306/hive</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> </configuration>
7、配置hive-env.sh
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
在env.sh内容添加
export HADOOP_HOME=/home/zjw/hadoop-2.6.0 export HIVE_CONF_DIR=/hive/apache-hive-1.2.2-bin/conf
8、在HDFS上建立/tmp和/user/hive/warehouse目录,并赋予组用户写权限。
hadoop dfs -mkdir /tmp【创建文件夹】 hadoop dfs -mkdir -p /hive/warehouse【创建文件夹】 hadoop dfs -chmod g+w /tmp【加权限】 hadoop dfs -chmod g+w /hive/warehouse【加权限】
9、统一jar包
(1)删除Hadoop下的jar包
cd $HADOOP_HOME/share/hadoop/yarn/lib
ll
rm -rf jline-0.9.94.jar
(2)将hive下的jlin jar包 复制到hadoop目录下面
cd /hive/apache-hive-1.2.2-bin/lib/
cp jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib
(3)运行hive
/hive/apache-hive-1.2.2-bin/bin/hive #或直接输入【hive】
(4)常用命令使用:
show databases;
Hive相关命令
1)创建数据库
create database school;
2)展示数据库
show databases;
3)创建表
create table teacher(id string,name string,age int ) row format delimited fields terminated by ‘,’;
【翻译】:创建表teacher(id string,name string,age int)以’,’结尾的行格式分隔字段;
4)加载数据
提前准备data.txt的数据
【Windows系统新建一个data.txt文本文档格式文件】
【输入序号和名称和ID,注意看上面一条标红翻译】
load data local inpath '/hive/data.txt' into table teacher;
5)查询表数据
select * from teacher;
拓展:
【Hadoop的hdfs中删除文件或文件夹命令】:
hadoop fs -rm -r /hive/warehouse/school.db/teacher/*