Centos7 实现Hadoop-2.9.1分布式集群搭建和部署(三台机器)

一、准备三台虚拟机

hadoop 192.168.131.128
localhost131 192.168.131.131
localhost134 192.168.131.134

(以上是我的三台虚拟机的hostname 和 ip)

hadoop 是 master 的 hostname

剩下的两个是 slave 的 hostname

linux 的 hostname 需要自己手动修改 不然会是 localhost.localdomain

修改 hostname 的命令是:

 hostnamectl set-hostname hadoop

修改 hosts 文件,(三台虚拟机都要添加)添加:

192.168.131.131 localhost131
192.168.131.134 localhost134
192.168.131.128 hadoop

二、然后在 master 机器上配置通过 SSH 远程复制过去就行了,接下来几乎都是在 master 机器上操作

1->安装 jdk

在官网上下载 jdk 是 linux 版本的 (我是在 wins 上下载好之后通过 FTP 上传的 Centos 上的)

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注意记得查看 Centos 是 64 位的还是 32 位的

查看的命令:

uname -r

后缀是 X86_64 是 64 位的,否则是 32 位的

解压 jdk,将 jdk 添加 PATH 中:

vim /etc/profile
    #添加内容:
    export JAVA_HOME=/home/jdkHome #jdk压缩包解压位置
    export PATH=$PATH:$JAVA_HOME/bin

!!!!!退出vim后,别忘了重启文件!!!!
source /etc/profile

2->安装 Hadoop-2.9.1

http://archive.apache.org/dist/hadoop/core/stable/

这是 hadoop 目前比较稳定的版本

将文件通过 FTP 上传的 Centos 上 /home/hadoopCluster 并解压

3->配置 Hadoop-2.9.1

进入到 Hadoop 目录下的 etc/hadoop 的目录下(修改 6 个文件)

① 修改文件 hadoop-env.sh

找到 export JAVA_HOME=$JAVA_HOME 修改为 jdk 所在的路径


②修改文件 core-site.xml

<configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:8020</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoopCluster/hadoop-2.9.1/tmp</value>
    </property>
</configuration>
③修改文件 hdfs-site.xml
<configuration>

    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop:50070</value>
    </property>

    <!-- 设置secondarynamenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>localhost131:50090</value>
    </property>

    <!-- 设置hdfs副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 设置datanode存放的路径 -->
 </configuration>

该配置文件中我之前配置 namenode 和 datanode 的路径,到最后格式化 namenode 的时候,namenode 没有启动,查看 logs 目录下的启动日志时发现,format 的时候,会报找不到 namenode 的错误,jps 查看 java 进程的时候或发现 namenode 没有启动,所以就将 namenode 和 datanode 的路径设置为默认。

④修改文件 mapred-site.xml

mapred-site.xml 文件当你修改时会发现没有这个文件,将 mapred-site.xml.template 文件重命名为 mapred-site.xml

mv  mapred-site.xml.template mapred-site.xml

修改为:

<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
⑤修改文件 yarn-site.xml
<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

⑥修改文件 slaves

localhost131
localhost134


4->修改完成了接下是配置 SSH 免密登录

在这里我使用 root 超级管理员登陆的,所以进入 /root 目录下

执行命令 ls


进入目录 .ssh  --> cd .ssh

ssh-keygen -t rsa
mv id_rsa_pub authorized_keys
ssh-copy-id root@localhost131
ssh-copy-id root@localhost134

配置完以上操作之后测试 SSH

ssh localhost131     !!退出 SSH 命令是 exit
ssh localhost134

不需要输入密码证明 SSH 配置成功,接下来就是远程复制文件,将 jdk 还有 hadoop 复制到另外两台机器上

注意:以上操作都是在一台机器上完成的 master (hadoop : 192.168.131.128)

5->将 Hadoop 添加到 PATH 中去

vim /etc/profile
export JAVA_HOME=/home/jdkHome/jdk1.8.0_171
export HADOOP_HOME=/home/hadoopCluster/hadoop-2.9.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

6->远程复制文件

进入目录 /home 文件夹下(因为 jdk 和 hadoop 文件都在这个文件夹下)

scp -r jdkHome root@localhost131
scp -r hadoopCluster root@localhost131
scp -r jdkHome root@localhost134
scp -r hadoopCluster root@localhost134

7->将另外两台机器也配置 jdk 全局环境

ssh 复制过去的是以文件的形式传输的,所以不用解压,直接修改 profile 文件就行了,修改完之后,hadoop 不用再修改了,s三台机器 hadoop 配置都是一样的 , 注意:如果  jdk 的路径有不同,则需要修改 hadoop 配置文件 hadoop-env.sh 文件,将里面的 JAVA_HOME 配置成该机器的路径

8->格式化 master (hadoop:192.168.131.128) 的 namenode

hdfs namenode -format


9->启动 Hadoop (master)

进去 sbin 目录下 : ./start-all.sh

 另外两台机器:jps


测试:192.168.131.128:50070 进入 namenode 的管理界面

          192.168.131.128:8088   进入resourceManager的管理界面


启动完成

阅读更多

没有更多推荐了,返回首页