Hadoop简介
Hadoop 是Apache 软件基金会旗下的开源平台
可支持多种编程语言——跨平台
- Hadoop两大核心——HDFS+MapReduce
集群分布式处理 - 大型公司都在用。
- Hadoop具有可靠性
- Hadoop具有高效性
- Hadoop具有很好的可扩展性
- Hadoop具有高容错性
- Hadoop具有成本低
Hadoop的不同版本
Apache Hadoop
Hadoop1.0
HDFS 与 MapReduce
Hadoop 2.0
由HDFS、MapReduce、YARN三个分支构成
Hadoop的项目结构
HDFS(分布式文件系统)→YARN进行资源管理与调度→MapReduce、Tez(构建有向无环图)、Hive(数据仓库、决策分析、OLAP分析)、Pig(流数据处理)、Oozie (作业流调度)、Zookeeper(分布式协调服务、集群管理)、HBase(列族数据库)、Flume(日志收集)、Sqoop(数据互导)→Ambari(安装部署工具)
注 Mapreduce 基于磁盘 VS Spark基于内存 (更快更稳)
Hadoop的安装
关于Linux的基础知识
Shell: 是指“提供使用者使用界面”的软件(命令解析器)。类似于DOS下的Command 和后来的cmd.exe。
sudo命令:是ubuntu中一种权限管理机制,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。当使用sudo命令式,就需要输入您当前用户的密码。
Hadoop安装模式
1.创建hadoop用户
首先按ctrl+alt+t打开终端窗口,输入如下命令创建新用户:
$ sudouseradd–m hadoop–s /bin/bash
上面这条命令创建了可以登陆的hadoop 用户,并使用/bin/bash 作为shell接着使用如下命令设置密码,可简单设置为hadoop,按提示输入两次密码:
$ sudopasswdhadoop
可为hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
$ sudoadduserhadoopsudo
2.SSH登录权限设置
SSH是什么?
SSH为Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH是由客户端和服务端的软件组成,服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求,客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序
配置SSH原因: Hadoop名称节点(NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有机器配置为名称节点可以无密码登录它们。
3.安装Java环境
Java环境可选择Oracle 的JDK,或是OpenJDK•可以在Ubuntu中直接通过命令安装
$ sudoapt-get install openjdk-7-jre openjdk-7-jdk
•还需要配置一下JAVA_HOME 环境变量•具体请参考网络教程:http://dblab.xmu.edu.cn/blog/install-hadoop/
Hadoop集群的部署和使用
Hadoop两大核心组件:①HDFS ②MapReduce
节点:
① Name Node:名称节点(唯一)。 相当于目录服务器
② Data Node : 数据节点(若干)。
MapReduce:
①JobTracker :总管家,协调若干Tasktracker作业
②TaskTracker:跟踪执行分配给自己的作业
Secondary NameNode :冷备份。
集群硬件配置:
1.Data Node/TaskTracker的硬件规格可以采取以下方案:
①4个磁盘驱动器(单盘1-2T),支持JBOD
②2个4核CPU至少2-2.5GHz
③内存16-24GB
④千兆以太网
2.NameNode
管理各种元数据并提供服务
里面有很多元数据都是直接保存在内存当中
①内存设置为16-72GB
②内存进行通道优化
③两个四核或八核CPU
④网络带宽高
3.Secondary NameNode
Hadoop 集群基准测试:
①Hadoop 自带有一些基准测试程序,被打包在测试程序JAR文件中
②用Test DFSIO基准测试,来测试HDFS的IO性能
③用排序测试MapReduce
这里是引用