hadoop-2.7.4集群部署

来源:互联网 发布:阻止java跳转页面 编辑:程序博客网 时间:2024/05/18 01:32

1.软件准备

hadoop-2.7.4.tar.gz
jdk-8u131-linux-x64.tar.gz
CentOS-6.5-x86_64-bin-DVD1.iso

2.集群准备

在vm安装centos6.5系统,为了方便我这边安装完成一个后,克隆两台。
三台机器的主机名和ip地址如下:

主机名 ip hadoop1 192.168.142.128 hadoop2 192.168.142.138 hadoop3 192.168.142.139

修改/etc/hosts文件,配置如下:
这里写图片描述
另外两台机器/etc/hosts做同样的修改。修改完成后,ping测试三台机器连通性。

3.ssh无密访问集群

在三台机器上执行命令

ssh-keygen -t rsa

一路回车,会在/root/.ssh/生成两个文件id_rsa、id_rsa.pub,这边我们使用id_rsa.pub(公钥文件)。
在三台机器上执行命令

cat id_rsa.pub > authorized_keys
cat id_rsa_pub > authorized_keys2
cat id_rsa_pub > authorized_keys3

将hadoop2、hadoop3上的authorized_keys2、authorized_keys3上传到hadoop1上,执行命令如下:

scp authorized_keys2 root@hadoop1:/root/.ssh/
scp authorized_keys3 root@hadoop1:/root/.ssh/

完成之后,将authorized_keys2、authorized_keys3追加到authorized_keys中,执行命令如下:

cat authorized_keys2 > authorized_keys
cat authorized_keys3 > authorized_keys

最后将生成的authorized_keys文件上传到hadoop2、hadoop3上,执行命令如下:

scp authorized_keys root@hadoop2:/root/.ssh/
scp authorized_keys root@hadoop3:/root/.ssh/

完成之后进行ssh测试。

4.卸载Linux自带的jdk

在终端输入命令:

rpm -qa|grep java

这里写图片描述

卸载

rpm -e java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
rpm -e java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64

如果有依赖关系,提示无法卸载,使用rpm -e –nodeps卸载就行了。

5.安装jdk和hadoop

将jdk和hadoop安装包分别放在三台机器的/usr/local/目录下,使用tar进行解压,执行命令如下:

tar -zxvf jdk-8u131-linux-x64.tar.gz
tar -zxvf hadoop-2.7.4.tar.gz

解压完成后,配置jdk环境变量,在/etc/profile添加如下:

export JAVA_HOME=/usr/local/jdk1.8.0_131/
export JRE_HOME=/usr/local/jdk1.8.0_131/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

配置完成后,执行命令:

source /etc/profile

查看jdk环境是否配置完成
这里写图片描述
命令显示已经完成jdk环境配置

6.集群配置

6.1.hadoop-env.sh

添加如下配置:

export JAVA_HOME=/usr/local/jdk1.8.0_131/

6.2.core-site.xml

配置如下:

<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://hadoop1:9000</value>    </property>    <property>         <name>hadoop.tmp.dir</name>         <value>/opt/hadoop-2.7.4/tmp</value>    </property></configuration>

6.3.hdfs-site.xml

<configuration>    <property>        <name>dfs.replication</name>        <value>3</value>    </property></configuration>

数据有三个副本

6.4.mapred-site.xml

<configuration>    <property>            <name>mapreduce.framework.name</name>            <value>yarn</value>     </property></configuration>

6.5.yarn-env.sh

增加JAVA_HOME配置

export JAVA_HOME=/usr/local/jdk1.8.0_131/

6.6.yarn-site.xml

<configuration><!-- Site specific YARN configuration properties -->    <property>            <name>yarn.nodemanager.aux-services</name>            <value>mapreduce_shuffle</value>    </property>    <property>            <name>yarn.resourcemanager.hostname</name>            <value>hadoop1</value>    </property></configuration>

6.7.slaves

hadoop1
hadoop2
hadoop3

hadoop1即作为namenode也作为datanode

7.启动hadoop集群

启动之前在hadoop1节点,格式化文件系统,执行命令如下:

hdfs namenode -format

启动集群,执行命令如下:

./start-all.sh

执行完成后,执行jps查看hadoop服务
这里写图片描述

可以看到hadoop1上NameNode和ResourceManager都正常启动。

在hadoop2、hadoop3上执行jps命令,可以看到DataNode、NodeManager都正常启动。

这里写图片描述

这里写图片描述

整个集群已经正常启动了。

原创粉丝点击