文章目录
搭建简单的Hadoop完全分布式模式
分析
- 最少准备多台客户机(Zookeeper至少需要三台)
- 安装jdk
- 安装Hadoop
- 配置环境变量
- 单点启动
- 配置ssh
- 群起并测试集群
首先设置集群规划
hadoop100 | hadoop101 | hadoop102 | |
---|---|---|---|
HDFS | NameNode,DataNode | DataNode | SecondaryNameNode,DataNode |
YARN | NodeManager | Resourcemanager,Nodemanager | Nodemanager |
虚拟机准备
注 : 我用的centos7,系统通过关闭firewalld,但是主机还是不能访问虚拟机的端口,端口还是默认关闭的,需要注意下
注: centos7 系统,如果你的系统在某一天hostname,变成了初始化,然后发现配置文件,没有变化,使用命令形式 hostname set-hostname name 来重新设定
设置静态ip与主机名,设置用户为超级用户
注:如果使用Vmare,克隆,注意分配给虚拟机的网卡地址是一样的,自己需要重新生成
-
/etc/sysconfig/network-scripts/ifcfg-ens32 设置静态ip
-
vim /etc/sysconfig/network(改变主机名),NETWORKING=yes,HOSTNAME=hadoop10*
-
vim /etc/hosts (设置对应IP地址的主机名)
-
达到要求:
- 各个主机,能够ping通
- 主机与各个虚拟机,能够ping通
-
如果图方便,可以在主机的hosts ,里面可以写入例:
192.168.11.100 hadoop100 -
新建用户
- useradd lan
- vim /etc/sudoers 在root下面,添加一样格式的lan
配置java环境
- 解压java在一个文件夹下(我的是/opt/module)
- 配置环境
vim /etc/profile ##JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin source /etc/profile 更新文件配置
hadoop
安装
- 解压在一个文件夹下
- 配置环境
## HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin 记得source 下
- 目录说明
- bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
- etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
- lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
- sbin目录:存放启动或停止Hadoop相关服务的脚本
- share目录:存放Hadoop的依赖jar包、文档、和官方案例
配置集群
配置core-site.xml
hadoop100 配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
HDFS 配置文件
- hadoop-env.sh 配置
hadoop100 配置 vi hadoop-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144
- hdfs-site.xml
<property> <name>dfs.replication</name> <value>3</value> </property> <!-- 指定Hadoop辅助名称节点主机配置 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop102:50090</value> </property>
YARN 配置文件
- yarn-env.sh
vi yarn-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144
- yarn-site.xml
<!-- Reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop101</value> </property>
MapReduce 配置文件
- mapre-env.sh
vi mapred-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144
- mapre-site.xml
cp mapred-site.xml.template mapred-site.xml vi mapred-site.xml 添加配置 <!-- 指定MR运行在Yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
这是一台主机的配置,其他另外两台要一摸一样
配置群起集群
1. 配置slaves
/opt/module/hadoop-2.7.2/etc/hadoop/slaves
vi slaves
hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
然后同步所有结点配置文件
2. 启动集群
-
如果集群第一次启动,需要格式化namenode
bin/hdfs namenode -format -
启动HDFS ;
sbin/start-dfs.sh -
启动yarn
sbin/start-yarn.sh
注意::namenode和resourcemanger如果不是同一台机器,不能在namenode上启动yarn,应该在Resourcemanager所在的机器上启动yarn
测试是否启动成功
- web查看 ,例子URL
- http://hadoop100:50070/
- hadoop102:50090
集群启动/停止方式
组件分别启动停止
-
分别启动-停止HDFS组件
hadoop-daemon.sh start/stop namenode/datanode/secondarynamnode
-
启动停止YARN
yarn-daemon.sh start/stop resourcemanager/nodemnaager
整体启动
各个模块分开启动停止(ssh配置是前提)
-
整体启动停止HDFS
start-dfs。sh/ stop-dfs.sh
-
整体启动停止yarn
start-yarn.sh / stop-yarn.sh
需要注意
== 集群需要时间同步服务器==
因为Zookeeper 如果时间 相差太大的话,会启动失败
如果出现一些问题,参考博客
参考:http://www.cnblogs.com/zlslch/p/6604189.html