一、安装Mysql
(1)检查是否已经装了MySql
检查:rpm -qa|grep mysql
使用以下命令卸载,卸载完再用上面命令检查一下
删除:rpm -e --nodeps xxxxxxxx
(2)安装MySql
通过yum安装MySql
yum install -y mysql-server
(3)启动MySql服务
MySQL的服务名:
< 5.5 版本 使用 mysqld
>= 5.5 版本 使用 mysql
启动:
service mysqld start
(4)设置开机启动
使用以下命令查看,我这个是开着的:
chkconfig mysqld --list
这个是开启命令chkconfig mysqld on
,再进行查看应该就和上图一样
(5)设置root用户命名
/usr/bin/mysqladmin -u root password '123456'
(6)登录mysql
mysql -uroot -p123456
(7)更改授权
select user,host,password from user;
添加授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
删除其他授权,只留下:
刷新授权,
flush privileges
重启mysql服务,远程连接
service mysqld restart
到这里就可以远程连接数据库了
二、准备工作
(1)确保Hadoop相关进程启动
NameNode,DateNode,ResourceManager,NodeManager, JobHistoryServer
进入cd /opt/modules/hadoop-2.7.3/
目录下,开启以下进程
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
执行 jps
查看一下:
(2)Mysql服务器启动
确保开启,开机启动
windows 上 Navite等工具可以连上
三、安装 Hive
(1)上传,解压,重命名
上传:
解压:tar -zxvf apache-hive-1.2.1-bin.tar.gz -C ../modules
重命名:mv apache-hive-1.2.1-bin/ hive-1.2.1-bin/
(2)hive目录结构
(3)修改配置
hive-env.sh
修改了一下名字:
mv hive-env.sh.template hive-env.sh
修改配置:
创建数据仓库
hive 的数据需要保存到HDFS,那么保存HDFS那个目录,是不是需要配置
不配置,因为它会去读默认路径,但是这些目录是空,所以需要去创建
bin/hdfs dfs -mkdir -p /user/hive/warehouse
bin/hdfs dfs -mkdir -p /tmp
bin/hdfs dfs -chmod g+w /tmp
bin/hdfs dfs -chmod g+w /user/hive/warehouse
(4)hive的基本使用
启动交互式命令:bin/hive
四、Hive文档
https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation
五、小测试
(1)准备数据
将准备好的数据上传到Linux里
(2)创建数据库&表
直接使用default表
Hive创建表:
CREATE TABLE tb_word(
word STRING,
count INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
(3)加载数据到数据库
LOAD DATA LOCAL INPATH '/opt/datas/tb_word.txt' INTO TABLE tb_word;
(4)测试
SELECT
word,count(word) count
FROM
tb_word
GROUP BY
word
六、和Mysql的对比
database:数据库
将同一类表放在此空间下,以便进行管理操作
table:表
字段:数据类型和字段名称
映射:表对应的数据文件
对应的文件数据在HDFS上
七、使用Mysql存储元数据
(1)交互式命令问题
现象:
bin/hive这个交互性命令不能同时开多个,开第二个就报错
原因:
hive中无论是创建的 数据库还是表,这些元数据metaStore需要存储数据
默认情况下存储在Derby数据库里面的,属于嵌入式数据,每次仅仅支持一个会话
解决:
使用支持多个会话的数据,推荐MySQL存储元素(官方推荐)
(2)配置使用Mysql存储元素
文档:https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
1. 创建配置文件
touch hive-site.xml
2. 修改配置
3. 添加驱动
给lib目录下传所需要的驱动包:mysql-connector-java-5.1.27-bin.jar
(3)测试
1.将metastore_db 和 derbylog删除
2.启动 bin/hive
3.效果:
①可以启动多个bin/hive交互性命令行
②mysql数据库中可以看到那个数据库