注释: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/*