CentOS6.4环境下Hadoop单机+集群的安装和配置

准备工作

系统安装环境:Linux CentOS 32bit系统。

两台相同环境的Liunx虚拟机,Master  IP:192.168.15.129,Slave IP:192.168.15.131。在进行单机上的Hadoop安装配置时,使用Master主机。

两台主机中都配置完成了SSH无密码登录,以满足配置Hadoop集群时的要求。Linux系统环境下配置SSH无密码登录,详见:CentOS6.4配置SSH无密码登录

Linux单机环境中Hadoop的安装与配置

1. 下载Hadoop安装文件

在之前的一片文章中提到过Hadoop各个版本的下载路径:Hadoop Releases。这里使用hadoop-2.6.4的版本,并将下载好的安装文件拷贝到linux Master虚拟机中,存放目录为:/home/hadoop/Desktop/hadoop-2.6.4.tar.gz

使用root用户登录Master主机,创建hadoop安装目录/usr/hadoop/:

sudo mkdir /usr/hadoop

解压hadoop安装文件到安装目录:

sudo tar -zxvf /home/hadoop/Desktop/hadoop-2.6.4.tar.gz -C /usr/hadoop

2. 单机hadoop配置

Hadoop默认配置是以非分布式模式运行,即单Java进程,方便进行调试。可以执行附带的例子WordCount来感受下Hadoop的运行。例子将Hadoop的配置文件作为输入文件,统计符合正则表达式dfs[a-z.]+的单词的出现次数

使用用户:root

工作目录:/usr/hadoop/hadoop-2.6.4/

cd /usr/hadoop/hadoop-2.6.4
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar grep input output 'dfs[a-z.]+'
cat ./output/*

执行成功后,在输出文件夹中查看相关信息,输出的结果是符合上述正则表达式的单词dfsadmin出现了一次。

image

在次运行会提示出错,需要删除:./output:

rm -R ./output

3. 单机hadoop伪分布式配置

这里将该部分内容单独的写成了一章,详情见:[Hadoop] Linux(CentOS6.4)单机Hadoop伪分布式配置

Hadoop集群的配置安装

Hadoop集群安装配置过程基本和单机版是一样的,主要是在配置文件方面有所区别,以及ssh无密登陆要求master和slave能够互相无密登陆(!!!重要说明:因为之前作为Slave的主机192.168.15.131的网络配置异常,因此,之后的操作将使用IP:192.168.15.139的主机作为Slave,继续后面的设置,除了IP改变外,其他的配置均不变!!!

Liunx虚拟机环境:

  • master  IP:192.168.15.129
  • slave IP:192.168.15.139

准备工作:

分别修改master主机和slave主机中的hostname以方便区分集群的配置环境。在master主机中,修改/etc/hosts文件(需要root用户),添加集群中所有的主机信息(这里只有两台主机):

image

文件内容如下,高亮文本处为新增加的部分:

image

修改上述文件完成后,修改重新启动虚拟机才能生效。同时注意:同样的配置需要在集群中所有主机中进行!

提示:在有些修改主机hostname的方式中,需要修改/etc/hostname文件,将本机的ip和hostname添加到该文件中。但在我的实验环境下,该目录中不存在/hostname文件。但经过测试,只需要修改hosts文件即可满足要求,还有临时修改hostname的方式,详见页面最后的参考资料。

配置完成master主机和slave主机的hostname之后,对相互主机间的ssh无密码登录进行测试,保证相互的SSH无密码可以正常登录

# master主机中
ssh slave
# slave主机中
ssh master

hadoop集群设置需要修改的配置文件(所在目录etc/hadoop/)如下:

实现步骤:首先在Master主机上,配置好需要修改的配置文件,在将Master主机上配置好的hadoop文件夹打包,发送至各个Slave主机上,进行解压安装。

1. Master主机Hadoop集群配置master主机中修改hadoop配置文件如下:

工作目录:/usr/hadoop/hadoop-2.6.4/

登录用户:hadoop(保证/usr/hadoop目录下所有文件夹和文件的权限属于hadoop:hadoop)

(1) slave文件

slave

(2) core-site.xml

<configuration>
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/hadoop/hadoop-2.6.4/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
</property>
</configuration>

(3) hdfs-site.xml

<configuration>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
</property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/hadoop/hadoop-2.6.4/tmp/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/hadoop/hadoop-2.6.4/tmp/dfs/data</value>
</property>
</configuration>

(4) mapre-site.xml

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

(5) yarn-site.xml

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

2. 打包Master主机上配置完成的hadoop文件夹,发送至各个Slave机器上

Master主机中的hadoop配置完成之后,将所在的目录文件(/usr/hadoop)打包,使用scp命令发送至slave主机中,进行解压:

cd /usr
sudo tar -zcf ./hadoop.tar.gz ./hadoop

在slave主机中,解压hadoop.tar.gz文件至/usr/目录下(与master主机中的hadoop解压目录相同):

sudo tar -zxf /home/hadoop/tmp/hadoop.tar.gz -C /usr
sudo chown -R hadoop:hadoop /usr/hadoop

3. 在Master主机上启动hadoop集群

工作目录:/usr/hadoop/hadoop-2.6.4

(1) 初始化NameNode

bin/hdfs namenode -format

出现如下信息,说明初始化成功:

image

(2) 启动Hadoop守护进程

sbin/start-dfs.sh

(3) 启动集群管理器yarn

sbin/start-yarn.sh

4. 通过jps命令查看集群中各个节点所启动的进程:

在Master主机中:

image

在Slave主机中:启动了DataNode和NodeManager进程

image

5. 也可以使用bin/hdfs dfsadmin -report查看DataNode是否正常启动:

image

这里集群没有正常启动,同样,可以通过查看hadoop的日志记录,发现错误并解决:

image

也可以通过Web页面看到查看DataNode和NameNode的状态:http://master:50070/

发现问题:

通过查看slave主机(因为datanode的启动在slave节点上)中的/usr/hadoop/hadoop-2.6.4/logs/hadoop-hadoop-datanode-slave.log的日志文件,发现:

image

解决问题:

详细的解决方法见另一篇文章:

[Hadoop] 解决Hadoop集群启动时DataNode: Problem connecting to server的问题

解决问题后,Hadoop集群正常启动如下图:

image

6. 关闭hadoop集群也是在Master主机上运行:

sbin/stop-dfs.sh
sbin/stop-yarn.sh

至此,hadoop集群配置成功。之后,进行spark集群的配置详解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值