一、环境准备
1.1 配置DNS:
进入配置文件,添加主节点和从节点的IP映射关系
#vim /etc/hosts
192.168.254.155 master
192.168.254.156 slave1
192.168.254.157 slave2
1.2 关闭防火墙
#service iptables stop //关闭服务
#chkconfig iptables off //关闭开机自启动
1.3 配置免密登陆
1. 每个节点都首先要进入/root/.ssh
目录下,生成密钥:
#ssh-keygen -t rsa //输入命令之后连续回车就行了
2. 在主节点上,将公钥拷贝到一个特定的文件中
[root@master .ssh]# cp id_rsa.pub authorized_key
3. 将每个从节点上生成的公钥复制到主节点上:
[root@slave1 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave1.pub
[root@slave2 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave2.pub
4. 在主节点上合并从节点的公钥:
[root@master .ssh]# cat id_rsa_slave1.pub>>authorized_keys
[root@master .ssh]# cat id_rsa_slave2.pub>>authorized_keys
配置完成后、在各个节点上进行ssh访问,若无需密码就能访问,则配置成功
1.4 配置JAVA环境
首先下载jdk,保存到指定目录下,设置环境变量
# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile //使配置生效
验证配置是否成功:
java -version
二、 部署Hadoop集群:
在各个节点上安装和配置Hadoop的过程都基本相同,因此可以在每个节点上安装好hadoop后,在主节点master上进行统一配置,然后通过scp
命令将修改的配置文件拷贝到各个从节点上即可。
2.1 安装Hadoop
下载安装hadoop安装包;
#1. 下载并解压:
#tar -zxvf hadoop-2.7.3.tar.gz
#2. 配置环境变量:
# vim /etc/profile
export HADOOP_HOME=/home/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
2.2 修改配置文件:进入hadoop的配置文件目录$HADOOP_HOME/etc/hadoop
,可以看到有许多配置文件,Hadoop集群配置主要是对以下几个文件的修改
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
slave、hadoop-env.sh、yarn-env.sh
下面介绍文件的具体配置、按照实际情况修改配置信息;
(1) core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name> #默认文件系统名称,用于指定host,post
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name> #指定临时文件的存储路径
<value>file:/home/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name> #用于指定序列文件的缓冲区大小
<value>131702</value>
</property>
</configuration>
(2) hdfs-site.xml
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.name.dir</name> #用于指定namenode存储路径
<value>file:/home/michael/soft/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name> #用于指定datenode存储路径
<value>file:/home/michael/soft/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name> #用于指定副本个数
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name> #二主节点的端口
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value> #启用webHDFS检测namenode和datanode
</property>
</configuration>
(3) yarn-site.xml
此目录下没有该文件,我们需要将mapred-site.xml.template 复制一份,改成此名。然后再修改:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>10240</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>5</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
(4) mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5) slaves
启动hadoop集群需要读取该文件,以确定从节点主机名,从而启动Datanode,Nodemanager
等守护进程,因此需要在该文件中添加从节点主机名。
slave1
slave2
(6) hadoop-env.sh
修改如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_171
(7) yarn-env.sh
添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_171
到此,完成了主节点上所有配置,只需要将这些配置信息复制到各个节点:
# scp /home/hadoop-2.7.3/etc/hadoop/* slave1:/home/hadoop-2.7.3/etc/hadoop/
# scp /home/hadoop-2.7.3/etc/hadoop/* slave2:/home/hadoop-2.7.3/etc/hadoop/
2.3 启动Hadoop
(1)第一次启动HDFS需要初始化,在节点上执行:
# cd /home/hadoop-2.7.3
# ./bin/hadoop namenode -format
(2) 启动HDFS:
# ./sbin/start-dfs.sh //启动后,访问http://master:50070/ 可以看到HDFS WEB 界面
(3)启动YARN:
#。/sbin/start-yarn.sh //成功启动后,访问http://master:8088/即可看到YARN Web界面。
这里也可以直接执行下面的命令一键启动,但第一次启动不建议这样做:
# start-all.sh
到此、Hadoop集群环境已经搭建好了。
网友评论