使用hive进行数据分析及使用python进行数据可视化
搭建hadoop集群
参考我之前所写的文章
Hadoop伪分布配置
安装hbase
http://archive.apache.org/dist/hbase
选择一个版本的hbase 下载 并导入到虚拟机内
此处通常下载*****.bin.tar包
tar -zxvf ******
解压完成后
vim /etc/profile
加上
export HBASE_HOME=/opt/module/hbase-2.2.1
export PATH=$PATH:$HBASE_HOME/bin
配置成功
搭建Hive
安装Hive
http://www.apache.org/dyn/closer.cgi/hive/
通过官网下载安装包
将安装包导入到虚拟机中
使用
tar -zxvf ******
语句进行解压
配置环境
配置bashrc
vim ~/.bashrc
在最后一行后 加入以下语句
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=/usr/local/hadoop
保存 退出后 使用cource语句使其生效
source ~/.bashrc
配置hive-site.xml
cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml
vim hive-site.xml
在其中添加上以下内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
</configuration>
注意:
若xml文件中已经含有
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
则将这两行删掉
使用:wq保存退出
配置MySQL
安装MySQL
使用以下命令安装MySQL
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
启动MySQL
首先启动MySQL
systemctl start mysqld.service
查看MySQL状态
systemctl status mysqld.service
如图 则为启动成功
更改MySQL密码
使用语句查看密码
grep "password" /var/log/mysqld.log
进入MySQL 输入默认密码
mysql -uroot -p
使用语句更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
注意:
密码中必须带有大小写字母、数字、特殊字符各一个
更改MySQL编码
vim /etc/my.cnf
添加一行
character-set-server=utf8
MySQL配置完成
启动Hive
在启动Hive之前 先启动hadoop
然后再启动Hive
使用Hive进行数据分析
使用以下HiveQL语句 导入csv文件
create database test;
use test;
create table table1(id VARCHAR(50),attitude VARVCHAR(10),date(10));
LOAD DATA INFILE '/var/lib/mysql-files/news_info.csv' INTO TABLE table1 CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"';
使用以下语句导出文件
hdfs dfs -get /var/lib/mysql/teat/table1
使用Python进行数据可视化
代码如下
import matplotlib.pyplot as plt
dic = {}
with open(r'C:\Users\ttumetai\Desktop\数据集\news_info.csv',encoding='utf-8') as f:
for i in f:
line = list(i.split(','))
if line != ['id 正反\t\t 公开日期\n']:
id = line[0]
attitude = line[1]
date = line[2]
if id not in dic:
dic[id] = attitude
list1 = dic.values()
positive = 0
negative = 0
neturul = 0
for i in list1:
if i == '积极':
positive += 1
elif i == '消极':
negative += 1
elif i == '中立':
neturul += 1
plt.rcParams['font.sans-serif']=['SimHei']
attitude_list = ['积极','消极','中立']
attitude_values = [positive,negative,neturul]
plt.pie(attitude_values,labels=attitude_list)
plt.show()
结果如下