安装准备java
1) 3台centOS7.0系统 ecsnode
2) 2.8.0 hadoop 安装包python
准备工做ssh
首先 在ip_01主机上将/etc/hosts文件进行ip映射oop
127.0.0.1 localhost ip_01 NN #名称节点 ip_02 DN01 #数据节点01 ip_03 DN02 #数据节点02
使用scp命令将ip_01上的 hosts文件 复制到其它节点spa
scp -r /etc/hosts root@DN01:/etc/ scp -r /etc/hosts root@DN02:/etc/
⚠️ 最好在覆盖以前进行备份操做.net
mv /etc/hosts /etc/hosts_back
其次 配置ssh免密链接,执行如下命令,回车在~/.ssh/目录下生成id_rsa,id_rsa.pub两个文件code
ssh-keygen -t rsa -P ''
将id_rsa.pub文件分别拷贝到ip_02, ip_03的~/.ssh目录下orm
scp id_rsa.pub root@ip02:~/.ssh/ scp id_rsa.pub root@ip03:~/.ssh/
在ip02和ip03的~/.ssh目录下 将id_rsa.pub文件内容写入authorized_keys文件中,没有此文件就新建此文件写入xml
cat id_rsa.pub >> authorized_keys
操做完成,则完成了ssh从ip_01到ip_02和ip_03的免密登陆操做。
集群配置
配置环境变量:
#在/etc/profile 文件末尾新增hadoop命令目录 #注意此路径为真实安装绝对路径 PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin export PATH
hadoop集群配置需配置其中三个文件core-site.xml;hdfs-site.xml; yarn-site.xml,三个文件存在于hadoop/etc/hadoop/目录中。
<!-- core-site.xml --> <configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://NN</value> </property> </configuration>
<!-- hdfs-site.xml --> <configuration> <property> <name>dfs.replication</name> <!-- 2台数据节点 --> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
<!-- yarn-site.xml --> <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
在slaves文件中进行配置数据节点地址
DN01 DN02
SecondaryNameNode未配置ecs,默认在ip_01名称节点上。
修改文件hadoop-env.sh
JAVA_HOME=${JAVA_HOME}
修改成:
#此路径为本机JDK安装目录的绝对目录 JAVA_HOME=/usr/local/JDK
启动集群:
格式化集群环境
hadoop nodename -formate
启动集群
#进入sbin目录 cd /usr/local/hadoop/sbin #执行启动命令 ./start-all.sh
检测是否启动成功
#jps命令 可查看已启动的java程序 jps
附:若是在启动过程当中报一下错误
java.net.UnknownHostException:xxxx xxxx
此错误意味着hostname映射未生效
快速解决办法是执行hostname 命令
#例如本文中所列举的 ip_01-->NN ip_02-->DN01 ip_03-->DN02需各自执行 hostname NN hostname DN01 hostname DN02