什么是大数据
概念
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产(资源)。简单来说大数据就是海量数据及其处理。
特点
大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
Hadoop集群环境准备
善用Tab补全,在vim中安dd删除
准备虚拟机
克隆三个虚拟机hadoop01、hadoop02、hadoop03均为NAT模式,其中hadoop01内存设置为1.5G(16G内存以上建议设置为2G),hadoop02和hadoop03为512M。
注:虚拟机登录的用户名和密码都是root
修改为静态IP
修改IP地址,将:
第一台hadoop01的虚拟机ip地址改为:192.168.64.101
第二台hadoop02的虚拟机ip地址改为:192.168.64.102
第三台hadoop03的虚拟机ip地址改为:192.168.64.103
配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改IP地址的BOOTPROTO为static,ONBOOT修改为yes,IPADDR和GATEWAY修改的要和自己的网段相同(此项目为64网段)
最后将三台虚拟机都修改好,地址在上面,配置在下面
注意不要写注释部分
```shell 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.64.101 #固定IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.64.2 #网关和NAT自动配置的相同,不同则无法登录 ``
重启网络
以下两种方式任选其一
service network restart #重启网络
systemctl restart network.service #重启网络centos7(这个常用)
查看IP
ip addr #查看IP地址
用MobaXterm登录
关闭防火墙(只执行上面)
systemctl stop firewalld.service #关闭防火墙服务
systemctl disable firewalld.service #禁止防火墙开启启动
systemctl restart firewalld.service #重启防火墙使配置生效
systemctl enable firewalld.service #设置防火墙开机启动
#检查防火墙状态
shell [root@hadoop01 ~] firewall-cmd --state #检查防火墙状态 false #返回值,未运行
修改主机名
vim /etc/hostname 修改主机名
hostname 查看主机名
修改hosts文件
vim /etc/hosts
在配置文件中增加ip地址映射
192.168.64.101 hadoop01
192.168.64.102 hadoop02
192.168.64.103 hadoop03 ```
三台机器重启
reboot
或者
init 6 关机
设置免密登录
1.三台机器生成公钥与私钥
ssh-keygen
执行该命令之后,按下三个回车即可
2.拷贝公钥到同一台机器
三台机器执行命令:
ssh-copy-id hadoop01
3.复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上
在第一台机器上面执行以下命令
scp /root/.ssh/authorized_keys hadoop02:/root/.ssh
scp /root/.ssh/authorized_keys hadoop03:/root/.ssh
4.测试
在hadoop01上进行远程登录测试
ssh hadoop02
不需要输入密码直接进入说明成功,exit退出
三台机器时钟同步
通过网络进行时钟同步 通过网络连接外网进行时钟同步,必须保证虚拟机连上外网
ntpdate us.pool.ntp.org;
阿里云时钟同步服务器
ntpdate ntp4.aliyun.com
三台机器定时任务
crontab -e
*/1 * * * * /usr/sbin/ntpdate us.pool.ntp.org; ```
或者直接与阿里云服务器进行时钟同步
crontab -e
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
*/1指的是每隔一分钟操作一次
1 * * * * 指的是每01分的时候,操作一次
shift+insert:一起复制
三台机器安装jdk
查看自带的openjdk
rpm -qa | grep java
如果有,请卸载系统自带的openjdk,方式如下(注:目前系统已经卸载)
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps
三台机器创建目录
所有软件的安装路径
mkdir -p /opt/servers
所有软件压缩包的存放路径
mkdir -p /opt/softwares
上传jdk到/export/softwares路径下去,并解压
tar -xvzf jdk-8u65-linux-x64.tar.gz -C ../servers/
其中-C指定目录
-z指定打包同时压缩
-v指定显示详细信息
-x指定解压.tar文件
-f指定压缩后的文件名
配置环境变量
vim /etc/profile
export JAVA_HOME=/opt/servers/jdk1.8.0_65
export PATH=:$JAVA_HOME/bin:$PATH
#$:引用变量
修改完成之后记得 source /etc/profile生效
source /etc/profile
发送文件到hadoop02和hadoop03
scp -r /opt/servers/jdk1.8.0_65/ hadoop02:/opt/servers/
scp -r /opt/servers/jdk1.8.0_65/ hadoop03:/opt/servers/
注意:发送完成后要配置环境变量并生效
-r:指的是递归遍历。
测试
java -version
出现JDK版本号即为成功。
上面执行成功后,然后再把/etc/profile的文件发给hadoop02和hadoop03
scp /etc/profile hadoop02:/etc/
scp /etc/profile hadoop03:/etc/
再执行
source /etc/profile
最后测试
java -version
修改windows中的映射
去C:\Windows\System32\drivers\etc配置
以管理员运行
Hadoop介绍
含义
hadoop是一个分布式存储和分布式计算的框架
组件
HDFS:分布式存储组件
MapReduce:分布式计算组件
Yarn:资源调度管理器
模块
Hadoop Common:支持其他 Hadoop 模块的通用实用程序。
Hadoop 分布式文件系统 (HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
Hadoop YARN:作业调度和集群资源管理的框架。
Hadoop MapReduce:基于 YARN 的系统,用于并行处理大型数据集。
结构图
Hadoop 的安装有三种方式
- 单机模式:直接解压,只支持MapReduce的测试,不支持HDFS,一般不用。
- 伪分布式模式:单机通过多进程模拟集群方式安装,支持Hadoop所有功能。
优点:功能完整。
缺点:性能低下。学习测试用。 - 完全分布式模式:集群方式安装,生产级别。
HA:高可用。
伪分布式模式部署
注意:我们只将其安装在hadoop01节点上。
1. 进入目录
cd /opt/softwares
2. 上传安装包并解压
tar -xvzf hadoop-2.7.7.tar.gz -C ../servers/
3. 进入配置文件
cd /opt/servers/hadoop-2.7.7/etc/hadoop
3.1.修改hadoop-env.sh
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hadoop-env.sh
或
vim hadoop-env.sh
修改
export JAVA_HOME=/opt/servers/jdk1.8.0_65
export HADOOP_CONF_DIR=/opt/servers/hadoop-2.7.7/etc/hadoop
3.2.修改 core-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/core-site.xml
或
vim core-site.xml
增加namenode配置、文件存储位置配置:粘贴代码部分到标签内
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/servers/hadoop-2.7.7/tmp</value>
</property>
3.3.修改 hdfs-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
或
vim hdfs-site.xml
配置包括自身在内的备份副本数量到标签内
<property>
<!--指定hdfs的保存副本数量,包括自己,默认为3-->
<!--对于伪分布式副本为1-->
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<!--指定hdfs的权限,false表示任何用户都可以在hdfs上操作文件-->
<name>dfs.permissions</name>
<value>false</value>
</property>
3.4.修改 mapred-site.xml
说明:在/opt/servers/hadoop-2.7.7/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,复制一个。
cp mapred-site.xml.template mapred-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/mapred-site.xml
或
vim mapred-site.xml
配置mapreduce运行在yarn上:粘贴高亮部分到标签内
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3.5.修改 yarn-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/yarn-site.xml
或
vim yarn-site.xml
配置:粘贴高亮部分到标签内
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3.6.修改slaves
vim /opt/servers/hadoop-2.7.7/etc/hadoop/slaves
或
vim slaves
修改
hadoop01
3.7.配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
环境变量配置完成,测试环境变量是否生效
echo $HADOOP_HOME
启动
1.初始化
hdfs namenode -format
2.启动
start-all.sh
3.停止
stop-all.sh
4.测试
jps
5.停止服务
stop-all.sh
6.访问浏览器
windows的浏览器中访问http://hadoop01:50070
安装成功!
安装失败后
看日志,看看哪里错了
cd /opt/servers/hadoop-2.7.7/logs/
如果没有安装成功
如果没有成功(进程数不够)
1.stop-all.sh 停掉hadoop所有进程
2.删掉hadoop2.7.7下的tmp文件
3.hdfs namenode -format 重新初始化(出现successfully证明成功),如果配置文件报错,安装报错信息修改相应位置后重新执行第二步。
4.start-all.sh 启动hadoop
完全分布式部署(基于伪分布式)
修改 hdfs-site.xml(重新修改)
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
- 配置包括自身在内的备份副本数量到标签内
<property>
<!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
<!--伪分布式模式,此值必须为1-->
<name>dfs.replication</name>
<value>2</value>
</property>
<!--设置hdfs操作权限,false表示任何用户都可以在hdfs上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
修改slaves(重新修改)
vim /opt/servers/hadoop-2.7.7/etc/hadoop/slaves
修改
hadoop01
hadoop02
hadoop03
把hadoop-2.7.7和etc/profile配置完后,在重新发送给hadoop02,hadoop03
cd /opt/servers/
scp -r hadoop-2.7.7/ hadoop02:$PWD
scp -r hadoop-2.7.7/ hadoop03:$PWD
scp -r /etc/profile hadoop02:/etc
scp -r /etc/profile hadoop03:/etc
改完etc/profile,记得执行source /etc/profile
再次启动
1.初始化
hdfs namenode -format
2.启动
start-all.sh
3.停止
stop-all.sh
4.测试
jps
5.停止服务
stop-all.sh
6.访问浏览器
windows的浏览器中访问
http://hadoop01:50070
yarn集群访问地址
http://hadoop01:8088/
安装成功!
mapreduce程序初体验
计算圆周率:
hadoop jar /opt/servers/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar pi 2 5
关于圆周率的估算,感兴趣的可以查询资料 Monte Carlo 方法来计算 Pi 值。