一、环境准备
1.1 配置DNS:
进入配置文件,添加主节点和从节点的IP映射关系
#vim /etc/hosts192.168.254.155 master192.168.254.156 slave1192.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/profileexport JAVA_HOME=/usr/java/jdk1.8.0_112export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport 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/profileexport HADOOP_HOME=/home/hadoop-2.7.3export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbinexport 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集群环境已经搭建好了。