一、什么是大数据
大数据(big data),,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
二、大数据与Hadoop
Hadoop是什么
1.Hadoop是一直分析和处理海量数据的软件平台
2.Hadoop是一款 开源软件,使用Java开发
3.Hadoop可以提供一个分布式基础框架
Hadoop的特点
高可靠性、高扩展性、高效性、高容错性、低成本
Hadoop三大核心组件
1.分布式文件系统-HDFS
2.分布式计算框架-MapReduce
3.集群资源管理-yarn
2.1 HDFS结构
概念:
Hadoop体系中数据存储管理的基础,是一个高度容错的系统,用于在低成本的通用硬件上运行
角色及其相关概念:
1.Client:切分文件、访问HDFS、与NameNode交互,获取文件位置信息、与DataNode交互,读取和写入数据
2.Namenode :Master节点。管理HDFS的名称空间和数据块映射信息,配置副本策略,处理所有客户端请求
3.Secondarynode:定期合并fsimage和fsedits,推送给Namenode
紧急情况下,可辅助恢复NameNode
4.Datanode:数据存储节点,存储实际的数据
汇报存储信息给Namenode
2.2部署HDFS集群
https://hadoop.apache.org/docs/r2.7.7/ 官方文档,配置时需要参考
1.在跳板机上配置自动化部署,更改hadoop集群的配置
[root@ecs-mao1 ~]# cat hadopp.yml
---
- hosts: hadoop
tasks:
- name: 移除防火墙
yum:
name: firewalld,firewall-filesystem
state: absent
- name: copy-hosts
copy:
src: /etc/hosts
dest: /etc/hosts
owner: root
group: root
mode: 0644
2.部署密钥,让namenode能够无密码远程到datanode上
[root@ecs-mao1 ~]# scp /root/.ssh/id_rsa 192.168.1.70:/root/.ssh/
//把跳板机的私钥给namenode
[root@hadoop-0001 ~]# cat /etc/ssh/ssh_config //把ssh远程时yes去掉
Host *
.....................
StrictHostKeyChecking no
3.安装hadoop
[root@hadoop-0001 ~]# yum -y install java-1.8.0-openjdk-devel java-1.8.0-openjdk
//部署java环境
[root@hadoop-0001 ~]# wget ftp://192.168.1.252:/public/* //从跳板机下载安装包
[root@hadoop-0001 ~]# tar -xf hadoop/hadoop-2.7.7.tar.gz
[root@hadoop-0001 ~]# mv hadoop-2.7.7/ /usr/local/hadop
[root@hadoop-0001 ~]# cd /usr/local/hadop/
[root@hadoop-0001 hadop]# ls
bin include libexec NOTICE.txt sbin
etc lib LICENSE.txt README.txt share
4.配置HDFS文件
配置四个文件
环境配置文件:hadoop-env.sh
核心配置文件: core-site.xml
HDFS配置文件:hdfs-site.xml
节点配置文件:slaves
1).配置hadoop-env.sh文件
[root@hadoop-0001 hadoop]# vim hadoop-env.sh
25 export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64 /jre" //rpm -ql java-1.8.0-openjdk查看
33 export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop" //指定正确路径
//验证下
[root@hadoop-0001 hadoop]# ./bin/hadoop
[root@hadoop-0001 hadop]# mkdir input
[root@hadoop-0001 hadop]# cp *.txt input/
[root@hadoop-0001 hadop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input output //统计单词数量,输出的目录为output
2).配置core-site.xml文件
[root@hadoop-0001 hadoop]# vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name&