大数据
什么是大数据?
简单来说大数据就是海量数据及其处理。
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产(资源)。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 [2] 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。——摘自百度百科
为什么要学习大数据?
拓宽发展面
大数据已经成为基础技术,现在最火的人工智能,物联网等就建立在大数据的基础上。
面向面试,提高认知深度,拓宽知识广度,增加面试筹码,提高薪资。
大数据相关技术
海量数据获取
爬虫(分析别人家的事):Python,java…
日志(分析自己的事):log4j、flume(数据的收集聚集加载)
历史数据(分析以前的事):mysql、oracle、ETL(数据的提取转化加载)
海量数据存储
HDFS(Hive、Hbase、Spark依赖存储都是HDFS)Hadoop distributed file system
S3(亚马逊)
NFS(sun公司)
海量数据清洗
数据清洗没有我们想的那么复杂,方式有很多:
过程中可以用代码直接清洗,flume可以清洗,Hive可以清洗,flink可以清洗。整个流程中几乎每个步骤都可以做到数据的清洗。
海量数据处理
离线数据处理:MapReduce(hadoop的一部分)、Hive(底层是MR,业界主流)、SparkSQL、FlinkDataSet
流式数据处理:Flink(全面高效)、Storm(速度快,亚秒级)、SparkStreaming(速度没有Storm快,但是吞吐量高)
网站日志分析系统
数据收集:JS埋点
传统埋点方式的缺点:
直接嵌入业务系统,代码不好维护,影响业务系统性能。
JS埋点优点:
日志收集系统与业务系统相互独立,互不影响,不占用业务系统性能,能收集到更多更详细的用户信息。
日志数据的提交方式
在哪里发起Get请求?
跨域请求
img标签中src实现跨域访问,将该图片插入到真个页面最后,像素1,边框0,用户看不到。
系统架构设计
离线分析:js埋点——日志收集系统(log4j)——flume——HDFS——Hive
实时分析:js埋点——日志收集系统(log4j)——flume——Kafka——Flink
项目搭建
将项目导入指定的eclipse中
部署方式视频连接:
链接:https://pan.baidu.com/s/1jVIrDQGULPEGP0EjBktPKg
提取码:8y5q
集群环境准备
准备虚拟机
克隆三个虚拟机hadoop01、hadoop02、hadoop03均为NAT模式,其中hadoop01内存设置为1G(16G内存以上建议设置为2G),hadoop02和hadoop03为512M。
修改为静态IP
修改配置文件
cd /etc/sysconfig/network-scripts #进入网络配置目录
dir ifcfg* #找到网卡配置文件
ifcfg-ens33 #找到版本最新的文件并修改
vim ifcfg-ens33
或者
vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置文件内容
注意不要写注释部分
TYPE=Ethernet
BOOTPROTO=static #改成static,针对NAT
NAME=eno16777736
UUID=4cc9c89b-cf9e-4847-b9ea-ac713baf4cc8
DEVICE=eno16777736
DNS1=114.114.114.114 #和网关相同
ONBOOT=yes #开机启动此网卡
IPADDR=192.168.65.161 #固定IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.65.2 #网关和NAT自动配置的相同,不同则无法登录
重启网络
以下两种方式任选其一
service network restart #重启网络
systemctl restart network.service #重启网络centos7
查看IP
ip addr #查看IP地址 ip add
关闭防火墙
systemctl stop firewalld.service #关闭防火墙服务
systemctl disable firewalld.service #禁止防火墙开启启动
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
检查防火墙状态
[root@hadoop01 ~]# firewall-cmd --state #检查防火墙状态
not running #返回值,未运行
修改hosts文件
vi /etc/hosts
删掉原来所有内容,改为以下
127.0.0.1 localhost
::1 localhost
192.168.65.161 hadoop01
192.168.65.162 hadoop02
192.168.65.163 hadoop03
设置免密登录
每台都执行以下操作
在XShell中的撰写栏(全部会话)任意路径执行:
ssh-keygen
然后三次直接回车不输入任何内容
得到秘钥后执行:
ssh-copy-id root@hadoop01
同样的操作发送至hadoop02、hadoop03
在01测试
ssh hadoop02
不需要输入密码直接进入说明成功,exit退出
安装JDK
/home下创建目录app
mkdir /home/app
上传安装包并发送至其他节点
scp -r /home/app root@hadoop02:/home
解压
tar -xvf jdk-8u65-linux-x64.tar.gz
修改环境变量
vim /etc/profile
在配置文件末尾添加
#set java environment
JAVA_HOME=/home/app/jdk1.8.0_65
JAVA_BIN=/home/app/jdk1.8.0_65/bin
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
加载环境变量
source /etc/profile
测试
java -version
出现JDK版本号即为成功
复制环境变量到其他两个机器
scp /etc/profile root@hadoop02:/etc
03同理
修改windows中的hosts文件
在windows中的hosts文件里添加如下映射
192.168.65.161 hadoop01
附录:
远程文件传输
scp -r(文件夹)文件路径 root@hadoop02:/目标路径
本文由 liyunfei 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jun 24,2022