1.首先安装Mysql:
1.1 检查是否已经安装MySQL
检查:rpm -qa | grep mysql
删除:sudo rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64
1.2 安装的版本
一般情况下,企业使用MySQL的版本:5.7,和Java项目中使用MySQL是一致的
5.1和5.7区别:
服务的名称:<5.5:mysqld >=5.5:mysql
1.3通过Yum安装
sudo yum install -y mysql-server (sudo是非root用户 行使root的权限)
1.4启动MySQL服务
sudo service mysqld start
1.5设置开机启动
sudo chkconfig mysqld on
sudo chkconfig mysqld --list (查看开启状态 )
1.6设置管理员密码
/usr/bin/mysqladmin -u root password '123456'
1.7登录MySQL
mysql -uroot -p123456
1.8修改权限
1.8.1授权:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option
1.8.2 删除其他授权
use mysql
select host,password,user from user
delete from user where host='xxxxx'
删除结果:
1.8.3 刷新授权
flush privileges
1.9重启MySQL服务,远程连接
sudo service mysqld restart
2.准备工作
2.1确保Hadoop相关进程启动
NameNode、DataNode
ResourceManager、NodeManager
JobHistoryServer
2.2 MySql服务器启动
确保开启、开机启动
windows 上Navicat等工具可以连上
3、Hive功能介绍
hive是Apache的顶级项目,
http://hive.apache.org/
3.1 hive是干什么
将SQL语句转换成MapReduce程序,并且提交到Yarn上运行,读取HDFS上的数据进行处理。
SQL语句:和MySQL数据库中SQL语句非常非常类似
3.2概念:SQL on Hadoop
建立在Hadoop之上提供SQL方式分析的框架
- 最早的框架就是 Hive
facebook开源
- impala
- presto
- sparkSQL/shark
-kylin
3.3要学好hive,需要什么
Hadoop基础:HDFS、MapReduce、Yarn
MySQL数据库
DML(数据操作语言)、DDL(数据定义语言)
4.使用sql语句实现wordcount程序:
Hadoop的处理过程
Hadoop spark hive spark hive spark scala
分割、
(hadoop,1),(spark,1),(hive,1)…
合并,然后在相加得到结果
假设:我们将数据已经放到MySQL中:
同样的结果,用SQL语句几行就O了,就是比MapReduce简单
5、hive软件版本的问题
其实使用的3大版本:
0.13.1:经典稳定的版本(2104)
1.2.1 :较新的一个版本
2.X:2017发布,
底层推荐使用Spark或者TeZ框架分析数据,而不是MapReduce
下载地址:http://apache.org/dist/hive
6、安装Hive
6.1上传、解压、重命名
1.上传下载好的hive压缩包
2.解压
3.重命名(为了方便tab补全):mv apache-hive-1.2.1-bin/ hive-1.2.1-bin/
6.2 hive目录结构
6.3修改配置 conf中:
修改文件名称(可以不改):mv hive-env.sh.template hive-env.sh
在hadoop下创建数据仓库
hive 的数据需要保存到HDFS,那么保存HDFS那个目录,是不是需要配置
不配置,因为它会去读默认路径,但是这些目录是空,我需要去创建
6.4 hive的基本使用
启动交互式命令:bin/hive
7 测试!!!!
直接将Mysql表中的数据复制出来
将它上传到Linux(选择好路径 后面会使用路径)
7.1创建数据库&表
直接使用default数据表
创建表(以下是我的建表语句 可以参考)
CREATE TABLE word1
word STRING,
count INT
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
7.2加载数据到数据库
LOAD DATA LOCAL INPATH '/opt/datas/word1.txt' INTO TABLE word1;
7.3测试
SELECT word,count(word) count FROM word1 GROUP BY word;
8、hive文档:
https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation、
下一篇博客:介绍如何修改hive使用mysql存储元数据