集群说明
域名 | 服务器地址 | HDFS 角色 | YARN 角色 |
---|---|---|---|
node01 | 192.168.202.135 | DataNode, NameNode | NodeManager |
node02 | 192.168.202.136 | DataNode | NodeManager, ResourceManager |
node03 | 192.168.202.134 | DataNode, SecondaryNameNode | NodeManager |
1.安装JDK
由于 hadoop 部署需要 jdk 请 根据 https://my.oschina.net/u/943316/blog/794029 部署
2.安装 hadoop
#获取 hadoop 压缩包
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
#创建 hadoop 安装目录
mkdir /usr/local/hadoop
#解压 hadoop到 安装目录
tar -zxvf hadoop-2.7.2.tar.gz /usr/local/hadoop/
#配置 hadoop 环境变量
vim /etc/profile
#添加 hadoop 环境变量
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
#重新加载 环境配置
source /etc/profile
#验证
hadoop version
3.修改环境配置 文件
#编辑环境配置文件
vim /usr/local/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
#修改 java环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_231
3.修改 集群全局参数
#修改 集群 全局配置
vim ${HADOOP_HOME}/etc/hadoop/core-site.xml
#添加 xml 标签
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.202.135:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
4.配置 hdfs
#配置 hdfs配置
vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
#添加 xml 标签
<configuration>
<!--副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- secondarynamenode的地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.202.134:50090</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/root/data/hadoop/name/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/data/hadoop/data/</value>
</property>
<!--默认为true,namenode连接datanode时,会进行host解析查询-->
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
</configuration>
5 配置 yarn
#配置yarn
vim ${HADOOP_HOME}/etc/hadoop/yarn-site.xml
<configuration>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.202.136</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
</configuration>
6. 配置 MapReduce
#进入 hadoop配置文件
cd ${HADOOP_HOME}/etc/hadoop/
#重命名 配置
mv mapred-site.xml.template mapred-site.xml
#配置 mapred-site.xml
vim mapred-site.xml
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7.指定从节点
vim slaves
#内容
192.168.202.135
192.168.202.134
192.168.202.136
8.设置/etc/hosts
#修改 host
vim /etc/hosts
#添加
192.168.202.135 node01
192.168.202.136 node02
192.168.202.134 node03
#重启 网络
systemctl restart network
9.免密登陆
#生成 密钥
ssh-keygen
#复制密钥 到 全部 机器 包括 本机 否则 集群启动报错
ssh-copy-id -i /root/.ssh/id_rsa.pub node01
ssh-copy-id -i /root/.ssh/id_rsa.pub node02
ssh-copy-id -i /root/.ssh/id_rsa.pub node03
10. 单点启动
注意:如果集群是第一一次启动,需要在Namenode所在节点格式化NameNode,非非第一一次不不用用执行行行格式化Namenode操作
#初始化 nameNode
hadoop namenode -format
#启动 nameNode
cd ${HADOOP_HOME}
./sbin/hadoop-daemon.sh start datanode
#启动 datanode
cd ${HADOOP_HOME}
./sbin/hadoop-daemon.sh start datanode
停止其他角色脚本
/usr/local/hadoop/hadoop-2.7.2/sbin/hadoop-daemon.sh stop namenode|datanode|secondarynamenode /usr/local/hadoop/hadoop-2.7.2/sbin/yarn-daemon.sh stop resourcemanager|nodemanager
11. 集群启动
#集群 在namenode节点启动 启动/停止hdfs
cd ${HADOOP_HOME}
./sbin/start-dfs.sh
./sbin/stop-dfs.sh
集群 在resourcemanager节点 启动/停止yarn
cd ${HADOOP_HOME}
./sbin/start-yarn.sh
./sbin/stop-yarn.sh
问题:
配置缺少 host 导致
3.结果