目录
一、项目总体介绍
1. 项目介绍
本项目要求使用Hadoop及其生态圈相关的组件来实现企业级大数据开发的整套流程,即数据的采集、数据的存储、数据的分析处理及数据的可视化。其中数据的采集部分会介绍两种方式,一种介绍网络爬虫及其Java代码实现步骤,另外一种是基于学习成本及侧重点考虑可利用Spring MVC技术来构建一个简易的电商平台,采取AB压测的方式模拟海量日志的产生,通过使用Nginx和Tomcat实现动静资源分开部署的方式,采取flume日志采集组件来实现日志的采集;数据的存储部分,将采用MySQL和HDFS来分别存储关系型数据和非关系型数据,其中将会使用到sqoop组件作为MySQL和HDFS之间数据的转换桥梁和通道;数据分析处理部分,采用MapReduce程序实现数据的清洗和分析;数据可视化部分,采用echarts图表来展现。最终的效果是通过压测产生电商系统日志、flume采集日志、MapReduce分析处理日志、sqoop将分析后的结果导入到MySQL中、spring mvc项目前端对分析结果进行可视化,即展现商品的topN信息。
2. 项目数据流程
二、项目准备工作
1. 虚拟机的安装
虚拟机版本:
VMware-workstation-full-15.5.1-15018445.exe网上自行找资源下载
安装步骤,请参考:
https://blog.csdn.net/sujiangming/article/details/87991536
2. 虚拟机的创建及CentOS7安装
操作系统及版本:CentOS-7-x86_64-DVD-1511.iso
安装步骤,请参考我另外一篇博文:
https://blog.csdn.net/sujiangming/article/details/87992373
三、项目实施过程
1、CentOS7下MySQL-5.7使用yum方式安装
1、安装MySQL YUM源到本地
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2、检查 mysql 源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
安装成功后会看到如下:
!mysql-connectors-community/x86_64 MySQL Connectors Community 153
!mysql-tools-community/x86_64 MySQL Tools Community 110
!mysql57-community/x86_64 MySQL 5.7 Community Server 424
3、使用 yum install 命令安装
yum -y install mysql-community-server
4、安装完毕后,启动MySQL数据库
systemctl start mysqld
5、查看MySQL的启动状态
systemctl status mysqld
6、设置开机自启动
systemctl enable mysqld
7、重载所有修改过的配置文件
systemctl daemon-reload
8、修改root账户默认密码
mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。
执行:
grep 'temporary password' /var/log/mysqld.log
比如:
A temporary password is generated for root@localhost: WMYu.#o8o#30
9、修改密码
使用mysql -uroot -p 回车, 注意密码改为:Sjm@!_123456 输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Sjm@!_123456';
10、配置root用户远程登录及添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,两种方式:
1)设置root用户允许远程登录:
执行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Sjm@!_123456' WITH GRANT OPTION;
flush privileges;
2)可以添加一个允许远程连接的普通帐户
执行:
GRANT ALL PRIVILEGES ON *.* TO 'suben'@'%' IDENTIFIED BY 'Sjm@!_123456' WITH GRANT OPTION;
flush privileges;
12、设置默认编码为 utf8
mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf 配置文件,在相关节点(没有则自行添加)下添加编码配置,如下:
执行:vi /etc/my.cnf
在文件的末尾添加如下信息:
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
补充:CentOS7下MySQL-5.7使用yum方式卸载:
1、 停止MySQL
systemctl stop mysqld
2、查看已安装的mysql:
rpm -qa |grep -i mysql
3、卸载mysql,依次卸载第2步骤所列出的有关MySQL的安装包后进行删除,执行删除命令:
yum remove -y mysql-community-server-5.6.36-2.el7.x86_64 4
4、删除mysql相关目录
- 使用命令查看mysql相关的文件目录:
find / -name mysql
- 依次删除所查到的目录,执行命令:
rm -rf /xxx/xxx/mysql
2、CentOS7下Nginx的安装
1、编写安装脚本:nginx_install.sh,添加如下内容:
#!/bin/bash
yum install -y gcc
#install pcre
yum install -y pcre-static.x86_64
#install nginx
tar -zvxf /tools/nginx-1.15.12.tar.gz -C /training/
cd /training/nginx-1.15.12
./configure --prefix=/training/nginx --without-http_gzip_module
make && make install
#set .bash_profile
echo '#nginx' >> ~/.bash_profile
echo 'export PATH=$PATH:/training/nginx/sbin' >> ~/.bash_profile
# source .bash_profile
source ~/.bash_profile
2、赋予nginx_intall.sh执行权限:
chmod +x nginx_install.sh
3、安装nginx,进入到nginx_intall.sh脚本所在目录,执行:
./nginx_intall.sh
4、编写启动nginx的脚本nginx_start.sh,执行 vi nginx_start.sh添加如下内容:
#!/bin/bash
cd /training/nginx/sbin
./nginx
5、启动nginx,执行
./nginx_start.sh
6、验证nginx是否启动成功:
netstat -anop|grep nginx 或者 netstat -anop|grep 80
成功信息:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 59717/nginx: master off (0.00/0/0)
7、编写停止nginx脚本,执行vi nginx_stop.sh ,添加如下内容:
#!/bin/bash
cd /training/nginx/sbin
./nginx -s stop
8、停止nginx,执行
./nginx_stop.sh
9、编写热加载nginx脚本,执行vi nginx_reload.sh ,添加如下内容:
#!/bin/bash
cd /training/nginx/sbin
./nginx -s reload
10、重新加载nginx,执行:
./nginx_reload.sh
3、部署前端网站到nginx下
1、上传电商网站OnlineShop文件夹到/training/nginx/html/目录下,
将OnlineShop文件夹重命名为shop
mv OnlineShop shop
2、修改nginx配置文件nginx.conf,执行:
vi /training/nginx/conf/nginx.conf
添加如下内容:
# add shop
location /shop/ {
root html;
index index.html index.htm;
}
3、重新记载nginx,执行:
./nginx_reload.sh
4、验证:在浏览器中验证下是否可以访问到网站,输入:
http://虚拟机ip地址/shop/
5、效果如下:
4、Tomcat的安装
0、前提条件:JDK1.8的安装
- 上传jdk-8u171-linux-x64.tar.gz到tools目录下,然后执行下面的命令进行解压安装
tar -zvxf jdk-8u171-linux-x64.tar.gz -C /training/
- 配置环境变量:
在.bash_profile文件中添加如下信息:vi ~/.bash_profile
export JAVA_HOME=/training/jdk1.8.0_171 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin;
- 让环境变量生效
source ~/.bash_profile
- 验证jdk是否安装成功
java -version
1、下载tomcat-8.5.40,到官网上下
2、安装tomcat
-
上传tomcat到/tools目录下
-
解压安装:
tar -zvxf apache-tomcat-8.5.61.tar.gz -C /training/
-
配置环境变量 vi ~/.bash_profile
#tomcat export PATH=$PATH:/training/apache-tomcat-8.5.61/bin
-
生效:
source ~/.bash_profile
-
启动
startup.sh
-
验证,在浏览器输入: http://192.168.215.131:8080/或者在命令行里面输入:netstat -anop|grep 8080
5、电商后台系统部署到Linux服务器上
-
将代码导入到eclipse或者idea中
-
将代码中的接口地址、数据库链接地址等修改成服务器地址,具体需要修改的代码如下:
GoodsController.java:- 修改上传图片地址为服务器地址 - 将代码中的localhost或者IP地址改成服务器IP地址
RemoteExecuteCommand.java,将如下改成你自己虚拟机的相关信息
private RemoteExecuteCommand() { this.ip = "192.168.112.128"; // 需要修改 this.userName = "root"; // 如不是这个用户名,则需要修改 this.userPwd = "123456"; // 需要修改 }
UploadUtils.java:
- 将代码中的localhost或者IP地址改成服务器IP地址
hibernate.properties:
- 修改数据库名及地址为服务器的数据库名及地址 - 修改数据库用户明、密码为服务器的用户密码
修改webapp目录下的所有html及jsp页面
- 将代码中的localhost或者IP地址改成服务器IP地址
-
选择export->war
-
上传war至Linux服务器的Tomcat安装目录下
-
启动或重启Tomcat
-
配置Tomcat支持UTF-8字符集
由于后台项目页面部分采用了html和jsp结合嵌套的方式,即在jsp中嵌套了html代码段,会存在html代码段显示中文乱码的问题,故需要做配置
1)修改tomcat/conf目录下的server.xml,添加URIEncoding=“UTF-8”配置项,配置位置如下:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" URIEncoding="UTF-8" />
2)修改tomcat/conf/web.xml,在 节点中添加如下内容:
<init-param> <param-name