Centos云服务器搭建Hadoop2.7完全分布式集群

一 安装环境:

三台云服务器,我使用的是华为云

一台为centos7,主机名:master,ip:192.168.0.1

另外两台为centos6.5,主机名分别为node1node2,ip分别为192.168.0.2,192.168.0.3。

hadoop版本:hadoop-2.7.6.tar.gz

java jdk版本:jdk-8u171-linux-x64.tar.gz

大家根据实际情况自行选择,linux系统版本没有什么影响

二 配置SSH 免密码登录:

2.1 检查机器名称

  为了后续操作方便,确保机器的hostname是我们想要的。拿192.168.0.1这台机器为例,用root账户登录,然后使用

hostname

命令查看机器名称,如果不是master,使用命令:

hostname master

修改为master。笔者在使用过程中有时候会发现重启服务器会导致名字重置为默认,此时参考此博客自行修改就可以。

使用相同的方法修改其他两台机器的名字分别为node1和node2。

完成以上操作后,修改这3台机器的/etc/hosts文件,在文件中添加以下内容:

vim /etc/hosts

#在文件中添加以下三行内容
192.168.0.1   master
192.168.0.2   node1
192.168.0.3   node2

   说明:IP地址没必要和我的一样,这里只是做一个映射,只要映射是对的就可以,至于修改方法,可以用vim命令,也可以在你的本地机器上把hosts文件内容写好后,拿到Linux机器上去覆盖。

  配置完成后使用ping命令检查这3个机器是否相互ping得通,以master为例,执行命令:

 ping  -c 3  node1

可以查看是否能够ping的通。

2.2 给3台机器生成秘钥文件

以master为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:

ssh-keygen  -t   rsa   -P  ''

遇到需要输入的时候直接按回车即可。 

 因为我现在用的是root账户,所以秘钥文件保存到了/root/.ssh/目录内,可以使用命令查看,命令是:

ls    /root/.ssh/

2.3在master上创建authorized_keys文件

 接下来要做的事情是在3台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为3台机器生成的公钥。为了方便,我下面的步骤是现在master上生成authorized_keys文件,然后把3台机器刚才生成的公钥加入到这个masterauthorized_keys文件里,然后在将这个authorized_keys文件复制到node1node2上面。

       首先使用命令,在master的/root/.ssh/目录中生成一个名为authorized_keys的文件,命令是:

touch  /root/.ssh/authorized_keys

 其次将master上的/root/.ssh/id_rsa.pub文件内容,node1上的/root/.ssh/id_rsa.pub文件内容,node2上的/root/.ssh/id_rsa.pub文件内容复制到这个authorized_keys文件中,复制的方法很多了,可以用cat命令和vim命令结合来弄,也可以直接把这3台机器上的/root/.ssh/id_rsa.pub文件下载到本地,在本地将authorized_keys文件编辑好在上载到这3台机器上。

2.4将authorized_keys文件复制到其他机器

   master机器的/root/.ssh/目录下已经有authorized_keys这个文件了,该文件的内容也已经OK了,接下来要将该文件复制到node1的/root/.ssh/和node2的/root/.ssh/。

2.4测试使用SSH免密登录

在master机器上输入

ssh node1
ssh node2

查看是否能够分别登录进入,注意需要退出到原机器使用命令

exit

并按回车。

三 安装JDK

请参考的我的另外一篇博客

注意:需要在三台机器都进行此操作,都安装上jdk

四 安装HADOOP2.7

1,下载Hadoop2.7

下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz

2,解压安装 
1)复制 hadoop-2.7.6.tar.gz 到/usr/local/目录下, 

然后使用命令

tar -zxvf hadoop-2.7.6.tar.gz
解压,解压后目录为:/usr/local/hadoop-2.7.6
2)在/usr/local/hadoop-2.7.6/目录下,建立tmp、hdfs/name、hdfs/data目录,执行如下命令 
#mkdir /root/hadoop/tmp   
#mkdir /root/hadoop/hdfs   
#mkdir /root/hadoop/hdfs/data   
#mkdir /root/hadoop/hdfs/name 
3)输入 vim /etc/profile,配置环境变量,输入以下内容,保存退出
HADOOP_HOME=/usr/local/hadoop-2.7.3/

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

输入

source /etc/profile
使环境变量生效
3)进入/usr/local/hadoop-2.7.6/etc/hadoop中分别配置以下文件。

(1)输入 vi hadoop-env.sh 修改配置文件

        将原有的JAVA_HOME注释掉,根据自己的JDK安装位置,精确配置JAVA_HOME如下,保存并退出

        export JAVA_HOME=/usr/local/java/jdk1.8.0_102/

(2)输入 vim yarn-env.sh修改配置文件

        在里面添加如下内容:export JAVA_HOME=/usr/local/java/jdk1.8.0_102

(3)输入vim core-site.xml修改配置文件

        在configuration标签中,添加如下内容,保存并退出,注意这里配置的hdfs:master:9000是不能在浏览器访问的

<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
    <description>HDFS的URI,文件系统://namenode标识:端口号</description>
</property>

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    <description>HDFS的URI</description>
</property>


<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop-2.7.6/tmp</value>
    <description>namenode上本地的hadoop临时文件夹</description>
</property>

如图所示:


(4)输入vim hdfs-site.xml修改配置文件:

         在configuration标签中,添加如下内容,保存并退出 

<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop-2.7.6/hdfs/name</value>
    <description>namenode上存储hdfs名字空间元数据 </description>
</property>


<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop-2.7.6/hdfs/data</value>
    <description>datanode上数据块的物理存储位置</description>
</property>


<property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>副本个数,配置默认是3,应小于datanode机器数量</description>
</property>

(5)输入 cp mapred-site.xml.template mapred-site.xml 将mapred-site.xml.template文件复制到当前目录,并重命名为mapred-site.xml

        输入 vim mapred-site.xml修改配置文件,在configuration标签中,添加如下内容,保存并退出

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>指定mapreduce使用yarn框架</description>
</property>

(6)输入 vi yarn-site.xml 修改配置文件

        在configuration标签中,添加如下内容,保存并退出   

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>master</value>

        <description>指定resourcemanager所在的hostname</description>
</property>

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
</property>

<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8099</value>
</property>

        

(7)输入 vi slaves 修改配置文件

        将localhost删掉,加入如下内容,即dataNode节点的主机名

node1
node2

        注:上面所有的设置和配置在所有的云服务器上都要设置,且设置内容都一样。

五 启动Hadoop

    (1)在master机器上,任意目录输入 hdfs namenode -format 格式化namenode,第一次使用需格式化一次,之后就不用再格式化,如果改一些配置文件了,可能还需要再次格式化。

    

    格式化完成

   

(2)在master机器上,进入hadoop的sbin目录,输入 ./start-all.sh 启动hadoop

    

    输入yes,回车

    

(3)输入 jps 查看当前java的进程,该命令是JDK1.5开始有的,作用是列出当前java进程的PID和Java主类名,nameNode节点除了JPS,还有3个进程,启动成功

    

(4)在node1机器和node2机器上分别输入 jps 查看进程如下,说明配置成功

    

(5)在浏览器访问nameNode节点的8088端口和50070端口可以查看hadoop的运行状况

    

(6)在master机器上,进入hadoop的sbin目录,输入 ./stop-all.sh 关闭hadoop

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值