环境:

CentOS7+SunJDK1.8@VMware12。

NameNode虚拟机节点主机名:master,IP规划:192.168.23.101,职责:Name node,Secondary name node,Resource manager。

DataNode虚拟机节点主机名:slave1,IP规划:192.168.23.102,职责:Data node,Node manager。

每个虚拟机分配资源:CPU单颗,内存2GB,硬盘20GB。

过程概要:

  1. 创建2个虚拟机,主机名分别为:master(做NameNode、JobTracker)、slave1(做DataNode、TaskTracker),分配固定ip。
  2. 每个虚拟机都创建一个hadoop用户,并拥有sudo权限。
  3. 解压hadoop包,并把其所属用户及组改为hadoop、hadoop。
  4. 生成openssh密钥对,使master、slave之间的ssh访问免输密码。

过程详细:

  • VMware中建立两个CentOS7主机,创建上述两个主机名和固定IP(VMware CentOS固定IP设置参见http://www.centoscn.com/CentOS/config/2014/1028/4009.html)。

以master节点为例:

修改/etc/hosts为(注意:要把集群所有节点的ip跟主机名映射全加进来):

修改:/etc/sysconfig/network-scripts/ifcfg-eno16777736为(经测试,此种方法可能会被系统再次动态增加一个IP地址,变成双IP。因此不如图形界面的方法可靠):

 或者在CentOS7的图形界面下,点击网络图标,IP改为手动,设置IP地址、掩码、网关、DNS(推荐)

上述为master节点。slave节点类似修改。确保双方IP能互相ping通。

  • 创建hadoop用户,并赋予sudo权限:

命令:su   root  (切换到root用户)

命令:chmod u+w /etc/sudoers (给sudoers增加写权限)

命令:vi /etc/sudoers  (修改sudoers文件)

执行命令后会进入sudoers文件的查看模式,该模式下按“i”进入文件修改模式,

然后在root ALL=(ALL)  ALL下方增加hadoop ALL=(ALL)NOPASSWD:ALL  按 “esc”键推出修改模式,大写模式下,按两次“z”保存退出。

命令:chmod u-w /etc/sudoers (撤销sudoers文件的写权限)。

改后的/etc/sudoers文件内容如下:

把hadoop-2.6.4.tar.gz拷贝到/usr/下,解压:tar zxvf hadoop-2.6.4.tar.gz ,并用chmod、chgrp命令将其所属用户、用户组都改为hadoop(重要!否则hadoop无法在其中新建临时目录和日志)。效果如下:

  • 创建ssh免密码登录:

Master机器上生成密码对。命令:ssh-keygen –t rsa  (生成其无密码密钥对,一路回车键,生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录)

命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (把id_rsa.pub追加到授权的key里面去)

命令:chmod 600 ~/.ssh/authorized_keys(修改文件"authorized_keys"权限,这步骤很重要,很多莫名其妙的错误有可能就是权限的问题)

命令:sudo vi /etc/ssh/sshd_config (修改SSH配置文件"/etc/ssh/sshd_config"),修改如下内容:

RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

命令:service sshd restart(重新启动服务)

命令:ssh localhost  (测试是否成功)

下面是把公钥复制到所有的slave节点上去:

命令:scp ~/.ssh/id_rsa.pub hadoop@192.168.239.129:~/(记得改成自己的ip,这个是我的slave1的ip,就是把master节点的公钥发送到了slave1的根目录下了)

  • 卸载openjdk,安装sun-jdk8(过程不赘述),安装后效果如下:

  • 关闭CentOS7的防火墙:
  • systemctl stop firewalld.service #停止
    systemctl disable firewalld.service #禁用
    之前的版本:
    service iptables stop #停止
    chkconfig iptables off #禁用
  • 修改几个重要的配置文件:

添加环境变量

/etc/profile里添加

export HADOOP_HOME=/usr/hadoop-2.6./
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

修改 Hadoop 配置文件

在 hadoop 解压路径下面,/etc/hadoop/hadoop-env.sh 增加下面两行

export JAVA_HOME=/usr/java/jdk1..0_101
export HADOOP_PREFIX=/usr/hadoop-2.6.

在 hadoop 解压路径下面,/etc/hadoop/core-site.xml增加下面内容:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop-2.6.4/tmp</value>
</property>
</configuration>

在 hadoop 解压路径下面,/etc/hadoop/hdfs-site.xml 增加下面内容:

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

这里设置成2,表示数据有2个副本(数值不大于DataNode数)。

在 hadoop 解压路径下面,/etc/hadoop/mapred-site.xml 增加下面内容:

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

在 hadoop 解压路径下面,/etc/hadoop/yarn-env.sh 增加下面,增加JAVA_HOME 配置:

export JAVA_HOME=/usr/java/jdk1..0_101

在 hadoop 解压路径下面,/etc/hadoop/yarn-site.xml 增加下面内容:

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>Yarn.resourcemanager.address</name>
<value>master:18040</value>
</property> <property>
<description>The address of the scheduler interface.</description>
<name>Yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property> <property>
<description>The address of the RM web application.</description>
<name>Yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property> <property>
<description>The address of the resource tracker interface.</description>
<name>Yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
</configuration>

这里添加的一些端口号,方便从远程通过浏览器查看集群情况,推荐按照这样添加。

在 hadoop 解压路径下面,/etc/hadoop/slaves 增加下面内容:

master
slave1

按照上面流程,把 slaver1上的环境变量添加好,然后直接:

scp -r /hadoop2.6.4 hadoop@slave1:/usr/

复制到 slave1下面。

启动 hadoop 集群:

格式化文件系统:

hdfs namenode -format

启动 NameNode 和 DateNode:

/usr/hadoop-2.6.4/sbin , 运行:

start-dfs.sh

使用 jps 命令查看 master 上的Java进程,我的进程如下:

jps 命令也可以查看 slave1上的 Java 进程。应该可以看到DataNode启动。如:

[hadoop@slave1 hadoop]# jps
6130 DataNode
1264 Jps

查看 NameNode 和 NameNode 信息:

master的浏览器输入:

localhost:50070/dfshealth.html#tab-datanode

可以看到DataNode启动成功。

启动 ResourceManager 和 NodeManager

运行 start-yarn.sh , jps查看进程如下:

切换到 slave1,jps查看进程:

[hadoop@slave1 hadoop]# jps
DataNode
Jps
NodeManager

成功了

Hadoop 集群就已经启动了。

----------------------------------------------------------------------------------------------------------------------------------------

最后,参考文章:

配置sudoer权限、创建免密码登录:http://blog.sina.com.cn/s/blog_95b63fc90102vrvy.html

修改hadoop配置文件、进程查看:http://blog.csdn.net/sa14023053/article/details/51952534

CentOS7搭建hadoop2.6.4双节点集群的更多相关文章

  1. kubeadm安装K8S单master双节点集群

    宿主机:master:172.16.40.97node1:172.16.40.98node2:172.16.40.99 # 一.k8s初始化环境:(三台宿主机) 关闭防火墙和selinux syste ...

  2. centos7搭建hadoop2.10高可用(HA)

    本篇介绍在centos7中搭建hadoop2.10高可用集群,首先准备6台机器:2台nn(namenode);4台dn(datanode):3台jns(journalnodes) IP hostnam ...

  3. centos7搭建hadoop2.10完全分布式

    本篇介绍在centos7中大家hadoop2.10完全分布式,首先准备4台机器:1台nn(namenode);3台dn(datanode) IP hostname 进程 192.168.30.141 ...

  4. centos7搭建hadoop-2.7.3,zookeeper-3.4.6,hbase-1.2.5(root用户)

    环境:[centos7.hadoop-2.7.3.zookeeper-3.4.6.hbase-1.2.5] 两个节点:[主节点,主机名为Master,用户为root:从节点,主机名为Slave,用户为 ...

  5. 搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),hadoop的环境配置不是特别的复杂,但是确实有很多细节需要注意,不然会造成许多配置错误的情况.尽量保证一次配置正确防止反复修改. 网上教程有很多关 ...

  6. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  7. CentOS7搭建Hadoop2.8.0集群及基础操作与测试

    环境说明 示例环境 主机名 IP 角色 系统版本 数据目录 Hadoop版本 master 192.168.174.200 nameNode CentOS Linux release 7.4.1708 ...

  8. Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群

    一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考 ...

  9. CentOS7.5搭建Hadoop2.7.6完全分布式集群

    一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...

随机推荐

  1. centos 服务器内存管理

    du su /目录/ 查看改目录大小 ls -lht /  查看文件详情,显示文件大小(直观) df -h 查看系统内存占用情况

  2. C# has three timers

    结论 *1.窗体timer和线程timer.计时器timer不同,因为后两者dispose之后,GC可以收集,而前者无法收集 *2.如果一个对象的成员函数正在被执行,那么这个对象肯定不会被收集 *3. ...

  3. UITextView的使用详解

    //初始化并定义大小 UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)]; te ...

  4. c++ iterator(迭代器)分类及其使用

    前言: 以下的内容为我阅读c++沉思录18,19,20章的笔记以及自己的想法. 正文: 总所周知,c++的stl中提出了iterator的概念,这是C所没有的.在一般的使用中,iterator的行为很 ...

  5. 《精通CSS网页布局》读书报告 ----2016-12-5补充

    第一章:CSS布局基础 1.CSS的精髓是布局,而不是样式哦!  (定要好好的研究布局哦,尤其配合html5) 2. html标签的语义性,要好好的看看哦! 3.DTD:文档类型定义. 4.内联--& ...

  6. 解决Eclipse项目图标上的红色感叹号,红叉

    从外部导入了几个jar包发现工程上出现红叉,但展开又没有详细的指明任何错误,可能过如下几步: 1.检查Build Path中的各个依赖jar及library是否有warning的标志,若有,处理之:  ...

  7. 手把手windows64位配置安装python2.7

    这几天公司要用到python的一些算法,让我调研一番,之前对Python一次没接触的我在安装配置环境的时候由于版本的问题,折腾了好久,这里简单介绍一下我的安装方法,需要安装pyhton的朋友可以不再向 ...

  8. iOS不得姐项目--精华模块上拉下拉的注意事项,日期显示,重构子控制器,计算cell的高度(只计算一次),图片帖子的显示

    一.上拉下拉注意事项 使用MJRefresh中的上拉控件自动设置透明 当请求下页数据通过page的时候,注意的是上拉加载更多数据失败的问题,下拉加载数据失败了,页数应该还原.或者是请求成功的时候再将页 ...

  9. 使用 Daynamic 动态添加属性

    所谓的Dynamic 动态类型,页面也要是动态的(强撸) 很简单的 直接上代码: //案例一 DynamicpersonCollection = new ObservableCollection(); ...

  10. 【POJ 3041】Asteroids (最小点覆盖)

    每次选择清除一行或者一列上的小行星.最少选择几次. 将行和列抽象成点,第i行为节点i+n,第j列为节点j,每个行星则是一条边,连接了所在的行列. 于是问题转化成最小点覆盖.二分图的最小点覆盖==最大匹 ...