支持32位系统, 64位系统需要编译源码
一 准备阶段
1、系统:CentOS 32位
2、关闭防火墙和SELinux
关闭防火墙
service iptables status
service iptables stop
chkconfig iptables off 永久关闭
禁用SELINUX
vi /etc/sysconfig/selinux
设置 SELINUX=disabled
3、 设置静态IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR
注:如果是复制wmware的虚拟机,需要更改Mac地址
1) 通过VMWare -> Edit -> Virtual Network Editor打开如下对话框,列表中选中VMnet8 NAT那一行,
之后点击NAT Setting按钮,查看Gateway IP
2) 将其中的 HWADDR 修改为新虚拟机的网卡地址
具体查看方式为:在虚拟机设置中选中Network Adapter,选择Advanced,查看Mac地址
3) 如果虚拟机不能联网,增加一行DNS设置
DNS1=202.96.128.166 #主DNS1地址
4、修改HostName
hostname master.apache.org 立即生效
vi /etc/sysconfig/network 下次启动生效
5、IP与HostName绑定
vi /etc/hosts
内容:
192.168.131.130 master.apache.org master
192.168.131.131 slave1.apache.org slave1
192.168.131.132 slave2.apache.org slave2
6、安装JDK 1.6以上
7、SSH 协议配置 ?
配置ssh,免密码登录自己的用户
# 生成rsa 密钥
ssh-keygen -t rsa
# 直接3 次回车
# 给自己的帐号提供rsa 公钥 (主机)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh-add id_rsa
【设置SSH 打开三台虚拟机,登录到master中,执行如下命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh slave1 "mkdir ~/.ssh"
scp ~/.ssh/id_dsa.pub slave1:~/.ssh/authorized_keys
ssh slave2 "mkdir ~/.ssh"
scp ~/.ssh/id_dsa.pub slave2:~/.ssh/authorized_keys
中间可能需要输入密码 ,按提示输入即可。现在分别执行如下命令
ssh localhost
ssh slave1
ssh slave2
不需要再输入密码就对了。】
二 、 安装配置
1 ) 解压 hadoop-2.2.0.tar.gz 到安装目录
2 ) 安装目录
HADOOP_HOME=/opt/local/hadoop-2.2.0
3)配置
-----------------------------------------------------------
etc\hadoop 目录,修改配置文件
1、hadoop-env.sh
export JAVA_HOME=/opt/local/jdk1.7.0_67
2、yarn-env.sh
export JAVA_HOME=/opt/local/jdk1.7.0_67
3、mapred-env.sh
export JAVA_HOME=/opt/local/jdk1.7.0_67
-----------------------------------------------------------
4、core-site.xml
fs.default.name
hdfs://master.apache.org:8020
hadoop.tmp.dir
/opt/soft/hadoop-2.2.0/data/tmp
5、hdfs-site.xml
dfs.replication
2
6、yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
7、mapred-site.xml
mapreduce.framework.name
yarn
8 slaves 文件
slave1
slave2
masters的内容为空,此文件用于配置secondary name node,我这次建立的集群不需要此节点,
如果需要的话可以将其主机名加入此文件中(别忘了在/etc/hosts中加入相应的条目)。
4)启动
1、启动HDFS
NameNode、DataNode、SecondaryNameNode
* NameNode 格式化
bin/hdfs namenode -format -- 产生一个Cluster ID
* 指定Cluster ID
bin/hdfs namenode -format -clusterid yarn-cluster
* Block Pool ID 数据块池ID
* 启动NameNode
sbin/hadoop-daemon.sh start namenode
* 启动DataNode
sbin/hadoop-daemon.sh start datanode
* 启动SecondaryNameNode
sbin/hadoop-daemon.sh start secondarynamenode
#查看进程
jps
如果hadoop 启动成功,可以看到如下进程
ResourceManager
SecondaryNameNode
NameNode
DataNode
NodeManager
2、启动YARN
ResourceManager、NodeManager
* 启动ResourceManger
sbin/yarn-daemon.sh start resourcemanager
* 启动NodeManager
sbin/yarn-daemon.sh start nodemanager
命令
bin/yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 10 20 执行mapreduce
7)启动历史服务器
用于查看MapReduce 应用程序的历史运行情况
sbin/mr-jobhistory-daemon.sh start historyserver
端口
hdfs :
NameNode 50070 master.apache.org:50070/
SecondaryNameNode 50090 master.apache.org:50090/
yarn :
resourcemanager master.apache.org:8088/
nodemanager master.apache.org:8042/
Hadoop Common
HDFS
Hadoop YARN
Hadoop MapReduce
1》目录结构
bin: 最基本的管理脚本和使用脚本所在木库
sbin : Hadoop管理脚本所在目录 HDFS和YARN各类服务的启动/关闭脚本
etc : 配置文件目录
lib : 对外提供的编程动态库和静态库
share : 各个模块的jar包所在位置
2》HDFS
NameNode
NameNode是HDFS的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块被存储到哪些数据节点上。
它的功能是对内存及I/O进行集中管理。
SecondaryNameNode 同步元数据和日志
DataNode
集群中每个从服务器都运行一个DataNode后台程序,后台程序负责把HDFS数据块读写到本地文件系统。
需要读写数据时,由NameNode告诉客户端去哪个DataNode进行具体的读写操作。
dataNode 会向 nameNode 发送心跳信息
dataNode 会向 nameNode 发送块存储信息
3》YARN
1. ResourceManager(RM)
RM是一个全局的资源管理器,负责整个系统的资源管理和分配。
2. ApplicationMaster(AM)
3. NodeManager(NM)
NM是每个节点上的资源和任务管理器
一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态
另一方面,它接收并处理来自AM的Container启动/停止等各种请求
4. Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,
RM为AM返回的资源便是用Container表示的。
启动方式
1 start-dfs.sh
start-yarn.sh
配置文件
share\hadoop\common\hadoop-common-2.2.0.jar\core-default.xml
hadoop.tmp.dir
fs.defaultFS
fs.default.name
hadoop.http.staticuser.user
share\hadoop\hdfs\hadoop-hdfs-2.2.0.jar\hdfs-default.xml
dfs.replication
dfs.blocksize
dfs.namenode.http-address
dfs.namenode.secondary.http-address
dfs.namenode.name.dir
文件系统镜像文件
dfs.namenode.edits.dir
编辑日志文件
dfs.datanode.data.dir
-- secondarynamenode
dfs.namenode.checkpoint.dir
dfs.namenode.checkpoint.edits.dir
share\hadoop\yarn\hadoop-yarn-common-2.2.0.jar\yarn-default.xml
yarn.resourcemanager.hostname
yarn.nodemanager.log-dirs
share\hadoop\mapreduce\hadoop-mapreduce-client-core-2.2.0.jar\mapred-default.xml
mapreduce.jobhistory.address
mapreduce.jobhistory.webapp.address
yarn.app.mapreduce.am.staging-dir
mapreduce.jobhistory.intermediate-done-dir
mapreduce.jobhistory.done-dir
分布式多节点
etc\hadoop\slaves 配置节点