这里写自定义目录标题
Hadoop2.7.7版本
- 在Xshell分别连接三个节点,New Session->在name处填写IP地址->设置密码连接即可。
- 三节点配置互信:192.168.97.60为主节点master,61和62为从节点slave
SSH互信原理:预先在目标机用户的authorized_keys文件中保存本机的公钥文件,当本机需要访问目标机时,目标机通过读取本机的公钥信息,从而实现对本机的无密码访问。
互信步骤:
前提:如果主机没有ssh可以使用该命令进行安装:yum install ssh
以下操作均在.ssh目录下进行操作,不然需要添加路径全称
1>在三个节点均生成密钥
ssh-keygen -t rsa 用rsa生成密钥
2>三节点均复制主机ip
ssh-copy-id 192.168.97.60
3>主节点发送公证文件到两个从节点
scp authorized_keys 192.168.97.61:/root/.ssh
scp authorized_keys 192.168.97.62:/root/.ssh
4>测试
在192.168.97.60下输入:ssh 192.168.97.61 记得exit再测试下一个
ssh 192.168.97.62
无需再输入密码即显示配置成功。
备注:ifconfig 查看连接的哪台机器
cat authorized_keys 查看有几条连接
rm -f authorized_keys 删除公证文件 - 解压hadoop安装包 tar -zxvf 压缩包 -C 解压路径
- 设置环境变量
修改/etc/profile配置文件,在文件末尾添加下面配置:
HADOOP_HOME=/home/hadoop/install/hadoop-2.7.7
PATH= P A T H : PATH: PATH:HOME/bin: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin
然后source /etc/profile更新环境变量
复制到从节点!
然后source /etc/profile更新环境变量
更改hostname
hostname+主机名,临时性更改,运行后立即生效,但是在系统重启后会丢失所做的修改。把vim /etc/sysconfig/network下的HOSTNAME赋值主机名为永久性更改,修改之后需要reboot重启服务器永久生效。
做映射
补全vim /etc/hosts中的内容。hosts文件的作用相当于DNS,提供ip地址到hostname的对应关系。文件格式是一行一条记录,分别是ip地址、hostname、aliases用空格分隔。
eg:192.168.97.60 1master
192.168.97.61 1slave0
192.168.97.62 1slave1
复制到从节点!
5.更改hadoop配置文件
1>cd /home/hadoop/install/hadoop-2.7.7/etc/hadoop
2>core-site.xml设置
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://1master:9000</value>
<!-- 1master:主机名,9000:端口 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
3>hadoop-env.sh,JDK配置;
vim hadoop-env.sh
//修改等号后面的值
//使用echo $JAVA_HOME 查看JDK安装路径
export JAVA_HOME=/usr/local/jdk
4>HDFS相关配置;
vim hdfs-site.xml
<!-- secondaryNamenode地址 -->
<property>
<name>dfs.secondary.http.address</name>
<value>1master:50090</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>1master:50070</value>
</property>
<!-- 数据块冗余份数-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- edtis文件存放地址-->
<property>
<name>dfs.namenode.edits.dir</name>
<value>/data/hadoop/namenode/name</value>
</property>
<!-- datanode数据目录存放地址-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode/data</value>
</property>
<!-- checkpoint数据目录存放地址-->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/data/hadoop/namenode/namesecondary</value>
</property>
5>mapred-env.sh
vim mapred-env.sh
//修改export JAVA_HOME=/usr/local/jdk
6>MR相关配置
vim mapred-env.sh
//修改export JAVA_HOME=/usr/local/jdk
cp mapred-site.xml.template ./mapred-site.xml
vim mapred-site.xml
<!-- 集群调度框架为YARN-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 注意:"1master"替换为NameNode所在主机名-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>1master:19888</value>
</property>
7>YARN相关配置;
vim yarn-site.xml
8>vim slaves
//将三台主机名写入后保存
1master
1slave0
1slave1
6.创建数据目录
1>创建Datanode节点数据目录(三节点);
su – root
mkdir -p /data/hadoop/tmp
mkdir -p /data/hadoop/datanode/data
chown hadoop:hadoop -R /data/hadoop
2>创建Namenode节点数据目录(1master节点);
su – root
mkdir -p /data/hadoop/tmp
mkdir -p /data/hadoop/namenode/name
mkdir -p /data/hadoop/datanode/data
mkdir -p /data/hadoop/namenode/namesecondary
chown hadoop:hadoop -R /data/hadoop
7.格式化hdfs
在1master家目录下执行hdfs namenode -format
关闭服务器防火墙:chkconfig iptables off
8.在hadoop下的sbin目录下执行./start-dfs.sh启动hdfs,启动yarn命令./start-yarn.sh
分别在三个节点jps查看启动进程
./stop-dfs.sh关闭hdfs
./stop-yarn.sh关闭yarn
9. 进入HDFS管理页面:http://192.168.1.10:50070,查看DataNode节点信息;
查看yarn框架管理:http://192.168.1.11:8088,查看NodeManager节点;
- 集群的时间,差距不能太大。提交作业的时候,会因为各个节点差距过大,导致集群作业提交失败。