Hadoop初识
- 
    
狭义的Hadoop: 是一个舍和大数据分布式存储(HDFS)、分布式计算(MapReduce)和资源调度(YARN)的平台
 - 
    
广义Hadoop: 指的是Hadoop的生态系统,包含各种只解决某一个特定问题域的子系统,zk、hiv(sql查询)、pig(脚本)、R语言、Hbase、sqoop(将关系型数据库与hadoop的数据进行交换)、Flume(日志收集框架)
 
基础
- 定义
    
- 提供分布式的存储(一个文件被拆分成很多歌快,并且以副本的方式存储在各个节点中)和计算
 - 是一个分布式的系统基础架构: 用户可以在不了解分布式底层细节的情况下进行使用
 
 - 核心模块
    
- Hadoop Common
 - Hadoop Distributed File System 【(HDFS) 分布式文件系统,将文件分布式存储在很多的服务器上】
 - Hadoop YARN(作业调度资源管理)
 - Haddop MapReduce(分布式计算框架,在很多机器上分布式并行计算)
 
 
HDFS
- 源自Google的GFS论文
 - HDFS是GFS的克隆版
 - HDFS的特点(扩展性、容错性、海量数据存储)
 
特性
- 将文件切分成指定大小的数据快,并以多副本的方式存储在多个机器上
    
- 块(block): 默认的blocksize是128M
 - 副本: 默认3个副本
 
 - 数据切分,多副本容错,操作对用户透明
 
MapReduce
- 源自Google的MapReduce论文
 - MapReduce是Google MapReduce的克隆版
 - MapReduce特点: 扩展性、容错性、海量数据离线处理
 
YARN
- YARN : Yet Another Resource Negotiiator
 - 负责整个集群资源的管理和调度
 - YARN特点: 扩展性、容错性、多框架资源统一调度
 
优势
- 高可靠性
    
- 数据存储: 数据多副本
 - 运行可靠
 
 - 搞扩展性
    
- 存储/计算资源不够时,可以横向的线性扩展机器
 - 一个集群中可以包含数以千计的节点
 
 - 成熟的生态圈
 
发行版本选择
- Apache
    
- 纯开源
 - 不同版本、不同框架整合不方便
 
 - CDH: https://www.cloudera.com
    
- cm (cloudera manager) 通过页面一键安装各种框架,方便升级,支持impala
 - cm不开源,与社区版本有些出入
 
 - Hortonworks: HDP
    
- 纯开源,支持tez,企业发布自己的数据平台可以直接基于页面框架改造
 - 企业级安全不开源
 
 - MapR
 
使用CDH安装
- CDH 相关软件包下载地址
    
http://archive.cloudera.com/cdh5/cdh/5/
 - 使用版本:hadoop-2.6.0-cdh5.15.1
 - Hadoop 下载
 - JDK 下载
 - hive 下载
 
安装
JDK 安装
- 拷贝JDK到虚拟机
    
scp jdk-8u201-linux-x64.tar.gz hadoop@172.16.114.132:~/software/ - 解压到~/app/ 目录
    
tar -zxvf jdk-8u201-linux-x64.tar.gz -C ~/app/ - 配置无密码登陆
    
- ssh-keygen -t rsa
 - cat id_rsa.pub » authorized_keys
 - chmod 600 authorized_keys
 
 
Hadoop安装
- 下载安装包拷贝到虚拟机
 - 解压到对应目录
 - 目录结构
    
- bin : hadoop客户端命令
 - etc/hadoop : 相关配置文件目录
 - sbin : 启动hadoop相关进程的脚本
 - lib : 依赖包
 - share : 常用例子
 
 
基础配置
- /etc/hadoop/hadoop-env.sh (配置JAVA_HOME)
 - /etc/hadoop/core-site.xml (配置文件系统主节点)
 
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop000:8020</value>
</property>
- /etc/hadoop/hdfs-site.xml (配置文件副本系数)
 
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
默认文件存储目录在 /tmp/目录下,这个目录在重启的时候会清空
所以重新指定一下目录
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/app/tmp</value>
</property>
- slaves (单机的时候修改 localhost为hadoop000(自己设置的))
 
启动
- 第一次执行的时候一定要格式化文件系统,不要重复执行(hdfs namenode -format)
 - 启动集群 /sbin/start-dfs.sh
 - 查看是否启动成功,输入命令 jps –> 显示应该有4个进程
 - 启动日志 /home/hadoop/app/hadoop-2.6.0-cdh5.15.1/logs/
 - 启动成功过后默认hdfs端口为 50070,可浏览器访问,若访问不到,可能是防火墙原因
    
- 查看防火墙是否打开 firewall -cmd –state
 - 若打开,可以将其关闭 sudo systemctl stop firewalld.service
 
 - start/stop-dfs.sh 与 hadoop-daemons.sh的关系
    
- start/stop-dfs.sh 是后面那个命令的组合
 - hadoop-daemons.sh start namenode
 - hadoop-daemons.sh start datanode