(默认装好jdk hadoop)
首先,安装MySQL
在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
下载mysql源安装包
shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
开始安装MySQL
yum install mysql-community-server
启动MySQL
systemctl start mysqld
配置开机启动
systemctl enable mysqld
systemctl daemon-reload
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
grep 'temporary password' /var/log/mysqld.log
使用密码登录
mysql -uroot -p
然后修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
set password for 'root'@'localhost'=password('MyNewPass4!');
注意密码需要有大小写数字和标点
Hive安装
- 首先下载hive安装包 Hive下载
下载你需要的版本(下载有文件名中有bin的,没有bin字段的是源码) - 解压并重命名为
hive
,复制到/usr/local
文件夹下
tar -xzf apache-hive-2.3.2-bin.tar.gz
mv apache-hive-2.3.2-bin /usr/local/hive
修改Hive的配置文件
vim /usr/local/hive/conf/hive-site.xml
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root
datanucleus.autoCreateSchema
true
datanucleus.fixedDatastore
true
datanucleus.autoCreateTables
True
下载jdbc驱动放到 /usr/local/hive/lib
文件夹中
jdbc驱动下载
解压并将里面的jdbc驱动复制到相应文件夹下
tar -xzf mysql-connector-java-5.1.45.tar.gz
cp mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar /usr/local/hive/lib/
设置hive环境变量
vim ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.
将这一段复制到文件最下方,保存之后刷新
source ~/.bashrc
然后初始化Hive元数据库
schematool -dbType mysql -initSchema
最后就可以在终端输入hive命令开启
hive
随便建一个表
create table test_table(id int);
到此,安装结束.
Hive 实现 WordCount
打开hive
首先创建一个数据库用于存储相关数据,并切换到该数据库
create database wordcount;
use wordcount;
创建一张表,并导入数据
create table text(line string);
load data inpath "/input/allLog" overwrite into table text;
注意 /input/allLog
是我自己在HDFS中保存文件的位置,根据自己保存的位置替换
拆分单词
导入新的表
create table words(word string);
insert into table words select explode(split(line, " ")) as word from text;
根据控制台输出可以发现,仍然是调用了MapReduce。Hive其本质就是对MapReduce的一层封装。
最后查询统计,并且按词频降序(为便于展示只输出十条)
select word, count(*) as c from words group by word order by c desc limit 10;
最后输出