大数据
1、海量数据
2、处理海量数据的一系列技术:存储和计算
大数据技术解决两个问题
1、存储数据
2、计算数据
准备工作
- 准备三台虚拟机 (hadoop101,hadoop102,hadoop103),他们之间可以相互拼通
NAT模式:
-
配置ip和主机的映射
[root@hadoop101 ~]# vim /etc/hosts 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103
-
创建hadoop用户,设置密码,hadoop用户配上sudo权限
[root@hadoop101 ~]# useradd hadoop [root@hadoop101 ~]# passwd hadoop
配置sudo:
[root@hadoop101 ~]# vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
-
三台虚拟机之间配上ssh免密(root和hadoop的免密)
#配置root用户的免密 [root@hadoop101 ~]# ssh-keygen [root@hadoop101 ~]# ssh-copy-id root@hadoop101 [root@hadoop101 ~]# ssh-copy-id root@hadoop102 [root@hadoop101 ~]# ssh-copy-id root@hadoop103 #配置hadoop用户的免密 [hadoop@hadoop101 ~]$ ssh-keygen [hadoop@hadoop101 ~]$ ssh-copy-id hadoop@hadoop101 [hadoop@hadoop101 ~]$ ssh-copy-id hadoop@hadoop102 [hadoop@hadoop101 ~]$ ssh-copy-id hadoop@hadoop103
-
在其中一个服务器节点上的hadoop home目录下创 建以下文件夹
installPkg 存放安装包 apps 存放程序 data 存放数据文件 script 存放脚本文件 [hadoop@hadoop101 ~]$ mkdir installPkg apps data script
大数据技术体系
Hadoop 介绍
官网地址:http://hadoop.apache.org/
https://www.cloudera.com —
CDH系列 Hortonworks 、cloudera、MapR
Hadoop之父 ------ Doug Cutting
Maven父子工程
Hadoop是由以下的模块组成的:
Hadoop Common:支持其他Hadoop模块的通用实用程序。
Hadoop分布式文件系统(HDFS):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
Hadoop YARN:用于作业调度和群集资源管理的框架。
Hadoop MapReduce:基于YARN的系统,用于并行处理大数据集。
狭义的Hadoop:Hadoop本身
广义的Hadoop:指的是整个Hadoop生态圈。一系列的 大数据技术。
Google
Google的三篇论文:
GFS---- HDFS、MapReduce — MapReduce、BigTable — HBase
分布式文件系统设计思想
HDFS下载安装
下载地址:https://archive.apache.org/dist/hadoop/common/
CRT: Alt + P 上传资源
Hadoop是基于Java编写
HDFS集群规划:
hadoop101:NameNode、DataNode
hadoop102:DataNode
hadoop103:DataNode
1、安装jdk
## 1.解压
[hadoop@hadoop101 installPkg]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C ../apps/
## 2.创建软连接
[hadoop@hadoop101 apps]$ ln -s jdk1.8.0_144/ jdk
## 3、配置环境变量
[hadoop@hadoop101 jdk]$ sudo vim /etc/profile
export JAVA_HOME=/home/hadoop/apps/jdk
export PATH=$PATH:$JAVA_HOME/bin
# 运行全局配置文件,让环境变量生效
[hadoop@hadoop101 jdk]$ . /etc/profile
2、安装HDFS
2.1 上传资源包
2.2 解压
[hadoop@hadoop101 installPkg]$ tar -zxvf hadoop-2.7.3.tar.gz -C ../apps/
2.3 创建软连接
[hadoop@hadoop101 apps]$ ln -s hadoop2.7.3/ hadoop
可以删除一些文件(也可以不删除):
/apps/hadoop/bin下以.cmd结尾的文件(是windows下的文件)
[hadoop@hadoop101 bin]$ rm -rf *.cmd
/apps/hadoop/etc/hadoop下以.cmd结尾的文件
[hadoop@hadoop101 hadoop]$ rm -rf *.cmd
/apps/hadoop/libexec下以.cmd结尾的文件
[hadoop@hadoop101 libexec]$ rm -rf *.cmd
/apps/hadoop/sbin下以.cmd结尾的文件
[hadoop@hadoop101 sbin]$ rm -rf *.cmd
/apps/hadoop/share下的doc文件夹(官方文档)
[hadoop@hadoop101 share]$ rm -rf doc
2.4 配置运行环境
[hadoop@hadoop101 hadoop]$ vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/apps/jdk
2.5 配置NameNode的位置
[hadoop@hadoop101 hadoop]$ vim core-site.xml
<property>
<!--NameNode的位置-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
2.6 配置DataNode
[hadoop@hadoop101 hadoop]$ vim slaves
hadoop101
hadoop102
hadoop103
2.7 配置NameNode(NN)和DataNode(DN)的数据目录
[hadoop@hadoop101 hadoop]$ vim core-site.xml
<property>
<!--NN和DN数据存储的位置-->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop/data</value>
</property>
注:在/home/hadoop/apps/hadoop目录下创建一个data目录
2.8 配置hdfs的环境变量
[hadoop@hadoop101 ~]$ sudo vim /etc/profile
## hadoop的环境变量
export HADOOP_HOME=/home/hadoop/apps/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
2.9 分发到其他节点
[hadoop@hadoop101 ~]$ scp -r apps/ hadoop@hadoop102:$PWD
[hadoop@hadoop101 ~]$ scp -r apps/ hadoop@hadoop103:$PWD
[hadoop@hadoop101 ~]$ sudo scp /etc/profile root@hadoop102:/etc/
[hadoop@hadoop101 ~]$ sudo scp /etc/profile root@hadoop103:/etc/
2.10 格式化hdfs
[hadoop@hadoop101 ~]$ hdfs namenode -format
## 出现以下提示表示格式化成功
19/11/14 00:04:17 INFO common.Storage: Storage directory
/home/hadoop/apps/hadoop/data/dfs/name has been successfully formatted.
2.11 启动NameNode
[hadoop@hadoop101 sbin]$ ./hadoop-daemon.sh start namenode
2.12 查看NameNode的webUI端口
[hadoop@hadoop101 sbin]$ jps
29253 NameNode
29324 Jps
[hadoop@hadoop101 sbin]$ netstat -nltp | grep 29253
2.13 浏览器访问NameNode的webUI
http://hadoop101:50070
2.14 启动DataNode
[hadoop@hadoop101 sbin]$ ./hadoop-daemon.sh start datanode
[hadoop@hadoop102 sbin]$ ./hadoop-daemon.sh start datanode
[hadoop@hadoop103 sbin]$ ./hadoop-daemon.sh start datanode
注意:如果浏览器不能访问,可能是防火墙没有关闭
关闭防火墙
service iptables stop
service iptables status 查看防火墙状态
chkconfig –list 查看打开关闭情况
chkconfig iptables off 关闭级别,开机重启就不会开启防火墙
[hadoop@hadoop101 sbin]sudo service iptables stop
[hadoop@hadoop101 sbin]sudo chkconfig iptables off
关闭虚拟机前一定要先关进程,所有的虚拟机都要先关进程
# jps查看进程编号
[hadoop@hadoop101 sbin]$ jps
2691 NameNode
2887 Jps
2810 DataNode
[hadoop@hadoop101 sbin]$ kill -9 2691
[hadoop@hadoop101 sbin]$ kill -9 2810