Hadoop的三种运行模式
- 单机模式(Standalone,独立或本地模式):安装简单,运行时只启动单个进程,仅调试用途;
- 伪分布模式(Pseudo-Distributed):在单节点上同时启动namenode、datanode、secondarynamenode、resourcemanager 、nodemanager等5个进程,模拟分布式运行的各个节点 ;
- 完全分布式模式(Fully-Distributed) :正常的Hadoop集群,由多个各司其职的节点构成
Hadoop安装步骤
- 配置主机名、网络、编辑hosts文件,重启;
- 配置免密码登陆,连接其他机器;
- Hadoop安装(下载解压到预定目录下)
tar -xzvf hadoop-2.7.7.tar.gz -C 目标文件夹/hadoop- 2.7.2/ - 编辑文件(Hadoop解压目录下etc/hadoop/文件夹)
- 编辑该目录下hadoop-env.sh、yarn-env.sh文件 ;
- 编辑该目录下core-site.xml、hdfs-site.xml和mapred- site.xml、yarn-site.xml四个核心配置文件 ;
- 编辑masters、slaves(或者workers)文件;
- 复制hadoop文件夹到其他节点;
- 格式化HDFS ;
- 启动Hadoop
预备步骤-集群时钟同步
- 自动定时同步(设置系统定时任务)
1. crontab -e (vi操作,i插入,ESC,:wq)
2. 0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
- 手动同步
/usr/sbin/ntpdate cn.pool.ntp.or
Step0:安装jdk
-
上传jdk-7u71-linux-x64(压缩文件)到/usr/java;
不建议使用高版本JDK,查看Hadoop兼容的JDK版本; -
解压文件(root用户操作);
cd /usr/javatar –xzvf /usr/java/jdk-7u71-linux-x64.gz
- 修改个人用户配置文件,vim ~/.bash_profile,在文件尾部添加(i进入编辑)
export JAVA_HOME=/usr/java/jdk1.7.0_71export PATH= $JAVA_HOME/bin: $ PATH
- 保存退出(ESC 退出编辑,:wq 存盘退出)
- 使(用户)配置生效,source ~/.bash_profile
- 测试,java –version
Step1:网络设置
- 桥接模式:VMnet0
- 主机模式:VMnet1
- NAT模式:VMnet8
- 关闭防火墙 (root用户)
chkconfig iptables off (6.x指令)
systemctl disable firewalld (7.x指令)
-
修改/etc/sysconfig/network-scripts/相应的网络配置
-
修改机器名(root用户)
#hostnamectl set-hostname <机器名> (7.x指令)
#hostname <机器名> (6.x指令)
#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop0 #主机名
保存退出,重启终端,测试hostname
- 修改/etc/hosts (root用户)
5.重启网络服务
systemctl restart network.service
service network restart (6.x)
Step2:ssh免密码登录
Hadoop运行过程中需要管理远端Hadoop守护进
程,启动后,NameNode是通过SSH(Secure
Shell)来无密码登录启动和停止各个DataNode上
的各种守护进程的。同理,DataNode上也能使用
SSH无密码登录到NameNode。
- 一般情况下,只需要从master单向SSH到slave
- 在各机器上执行(在免密码登陆的用户下)ssh-keygen -b 1024 -t rsa 一路回车
- 在~/.ssh/下生成文件 id_rsa 、id_rsa.pub
- 生成密码后输入命令 ssh-copy-id hadoop
Step3:Hadoop安装
- 上传hadoop文件到节点/home/zkpk/hadoop目录
- 解压文件
– cd /home/zkpk/ – tar -zxvf hadoop-2.7.7.tar.gz
- 修改(Linux下)/etc/profile—(系统级环境设置,可选)
– vi /etc/profile #在文件最后添加以下语句
– export JAVA_HOME=/usr/java – export HADOOP_HOME=/home/zkpk/hadoop
– export PATH=$JAVA_HOME/bin:$PATH::$HADOOP_HOME/bin – 保存退出
– source /etc/profile //切记修改后,使之立即生效
– 如果指定了用户级的环境变量(.bash_profile),可不编辑;
Step4:修改配置文件
hadoop安装目录下的配置文件路径,即$HADOOP_HOME/etc/hadoop
- 修改hadoop-env.sh、yarn-env.sh
- export JAVA_HOME=/usr/java/jdk1.7.0_71/
- 保存退出
- 配置core-site.xml,增加以下内容
- master机器名的9000端口
- 集群数据目录
– <property>
– <name>fs.default.name</name>
– <value>hdfs://hadoop0:9000</value>
– </property>
– <property>
– <name>hadoop.tmp.dir</name>
– <value>/home/zkpk/hadoopdata</value>
– </property>
- 配置hdfs-site.xml
- 保存副本数量
– <property>
– <name>dfs.replication</name>
– <value>2</value>
– </property>
- 配置mapred-site.xml
- 使用YARN进行资源调度和任务管理
– <property>
– <name> mapreduce.framework.name </name>
– <value>yarn</value>
– </property>
- 配置yarn-site.xml
– <property>
– <name>yarn.resourcemanager.hostname</name>
– <value>hadoop0</value>
– </property>
– <property>
– <name> yarn.nodemanager.aux-services</name>
– <value>mapreduce_shuffle</value>
– </propert>
Step5:编辑masters、slaves(或者workers)文件
- 配置masters
- 管理NN机器名称
Hadoop0
- 配置slaves(workers),可以包含master
- 数据节点DN的机器名称
hadoop1
hadoop2
hadoop3
- 说明:一行一个主机名
Step6:复制hadoop文件夹到其他节点
- 把hadoop0的hadoop目录、jdk目录、/etc/hosts、/etc/profile复制到hadoop1,hadoop2、hadoop3节点
- 复制master机器的hadoop安装目录到slave机器的用户目录(slave的 /home/zkpk/hadoop-2.7.7)
#cd $HADOOP_HOME/..
scp -r hadoop-2.7.7 hadoop1:~/
scp -r hadoop-2.7.7 hadoop2:~/
scp -r hadoop-2.7.7 hadoop3:
Step7:格式化HDFS
第一次启动Hadoop前,必须先格式化namenode
cd $HADOOP_HOME /bin
hdfs namenode –format
Step8:启动Hadoop
cd $HADOOP_HOME/sbin
./start-all.sh //启动所有
# 可分两步启动: start-dfs.sh 、start-yarn.sh
# 第一步启动文件系统,start-dfs.sh
# 出错时,查看logs,检查相关配置文件:hdfs-site.xml,core-site.xml
# 第二步启动yarn计算框架,start-yarn.sh
# 出错时,查看logs,检查相关配置文件:yarn-site.xml,mapred-site.xml
停止Hadoop
~/hadoop-2.5.2/sbin/stop-all.sh
或者分两步停止hadoop集群
可分两步停止: start-yarn.sh、start-dfs.sh
# 第一步停止yarn, stop-yarn.sh
# 第二步停止文件系统,stop-dfs.sh