Hadoop集群有三种运行模式:单机模式、伪分布模式、完全分布模式。我们这里搭建第三种完全分布模式,即使用分布式系统,在多个节点上运行。
1 环境准备 1.1 配置DNS进入配置文件,添加主节点和从节点的ip映射关系:
# vim /etc/hosts 10.0.0.45 master 10.0.0.46 slave1 10.0.0.47 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_keys
(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
(5)将主节点上合并后的公钥复制到从节点上:
[root@master .ssh]# scp authorized_keys slave1:/root/.ssh [root@master .ssh]# scp authorized_keys slave2:/root/.ssh
配置完成,在各个节点上进行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 -vesrion
若出现下面的配置信息则表示java环境配置成功了:
2 部署Hadoop集群在各个节点上安装与配置Hadoop的过程都基本相同,因此可以在每个节点上安装好Hadoop后,在主节点master上进行统一配置,然后通过scp命令将修改的配置文件拷贝到各个从节点上即可,下面介绍部署过程。
2.1 安装Hadoop# tar xvf hadoop-2.7.3.tar.gz
配置环境变量:
# 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
slaves、hadoop-env.sh、yarn-env.sh
下面就介绍文件的具体配置,按实际情况修改配置信息:
(1)core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop _tmp</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.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/dfs_data</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/dfs_name</value>
</property>
<property>
<name>dfs.namenode.rpc-address</name>
<value>master:9000</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>slave1:50091</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
(3)yarn-site.xml