准备环境:

系统:centos6.5 64

192.168.211.129   master

192.168.211.131   slave1

 

在两台服务器上都要配置ssh免密码登录

192.168.211.129上

vim /etc/hosts最后添加

  192.168.211.129  master

  192.168.211.131  slave1

在192.168.211.131上

vim /etc/hosts最后添加

  192.168.211.129  master

  192.168.211.131  slave1

主机ip:192.168.211.129(hostname: master)

ssh无密码登陆的远程机ip:192.168.211.131(hostname: slave1)

首先要修改master和slave1 的配置文件:

vi  /etc/ssh/sshd_config

(要确保这些字符前无注释符号“#”)

RSAAuthentication  yes

PubkeyAuthentication yes

AuthorizedKeysFile  .ssh/authorized_keys

PasswordAuthentication yes

PeimitEmptyPasswords yes

1.在本地机上输入命令: ssh-keygen -t rsa

2.接着一路按回车,默认情况下ssh生成的公密钥会被存储到目录/root/.ssh下(注意这个文件夹的权限为700),分别为id_rsa id_rsa.pub

3.在本地机上创建文件 authorized_keys(权限为600

touch /root/.ssh/authorized_keys

并将公钥追加到authorized_keys文件中:

cat id_rsa.pub >> authorized_keys

4.修改文件夹/root/.ssh的权限:

(本地机和远程机都要修改)

chmod 700 /root/.ssh

5.修改文件的属性:

chmod 600 /root/.ssh/authorized_keys

6.将公钥复制到ip地址为192.168.211.131的远程机上:

ssh-copy-id  -i  /root/.ssh/id_rsa/pub  root@192.168.211.131 (实践证明在传送公钥时,这个命令好于scp命令 )

笔者在输入命令时已经在远程主机上创建了文件夹如下:/root/.ssh/,并且,已经按上文修改了权限/.ssh (700)

7.在本地机master上执行命令:

ssh-add  /root/.ssh/id_rsa

这个是为了将公钥添加进来。

8.重新启动ssh服务:

service sshd restart

9. 在本地主机上输入:

ssh slave1(回车)

即可登录到远程主机上了。

10.若要配置能在slave1上远程无密码登录master,只需做和master一样的操作即可:首先要修改主机ssh连接到的远程机的配置文件:

11.在本地机上输入命令: ssh-keygen -t rsa

12.接着一路按回车,默认情况下ssh生成的公密钥会被存储到/root/.ssh这个文件夹下(注意这个文件夹的权限为700),分别为id_rsa id_rsa.pub

13.将公钥追加到authorized_keys文件中:

cat id_rsa.pub >> authorized_keys

14.修改文件的属性:

chmod 600 /root/.ssh/authorized_keys

15.将公钥复制到ip地址为192.168.211.129master上:

ssh-copy-id  -i  /root/.ssh/id_rsa/pub  root@192.168.211.129 (实践证明在传送公钥时,这个命令好于scp命令 )

16.重新启动ssh服务:

service sshd restart

17. 在本地主机上输入:

ssh master(回车)

即可登录到master上了。

 

master操作:

1、官网下载Hadoop  hadoop-2.7.3.tar.gz(所有安装包在当前文件夹内都有)
2.安装sshrsyncJava1.7(Java1.7直接去官网下载rpm包,rpm安装即可)

我的网不好,我自己在百度云盘保存了一份java1.7.rpm。链接地址是:http://pan.baidu.com/s/1hs9l8by
3./home下新建文件夹hadoop,然后将hadoop-2.7.3.tar.gz上传至此文件夹下,使用tar命令解压

4.进入到目录/home/hadoop/hadoop-2.7.3/etc/hadoop中,修改相应配置,依次配置

 hadoop-env.shyarn-env.shslavescore-site.xmlhdfs-site.xmlmapred-site.xml yarn-site.xml 7个文件。

    (1)、设置JAVA_HOME环境变量(我的JDK安装目录为/usr/java/latest(rpm默认的安装位置))

     vi命令编辑hadoop-env.sh,找到相应位置修改如下:

      # The java implementation to use.

      #export JAVA_HOME=${JAVA_HOME}

      export JAVA_HOME=/usr/java/latest

(2)、vi命令编辑yarn-env.sh,找到相应位置修改如下:

# some Java parameters

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

export JAVA_HOME=/usr/java/latest

(3)、编辑文件core-site.xml文件,指定默认文件系统和工作空间(现在路径下还没有tmp文件夹,执行完hdfs格式化后便可看到相关文件)

      <configuration>

        <property>

          <name>fs.defaultFS</name>

          <value>hdfs://192.168.211.129:9000</value>#指定默认文件系统,不要写localhost,namenode与datanode使用9000端口进行通信

        </property>

        <property>

          <name>hadoop.tmp.dir</name>

          <value>/home/hadoop/hadoop-2.7.2/tmp/</value>

#指定hadoop工作空间,也就是说master与slave的数据实际存放目录就是/home/hadoop/hadoop-2.7.2/tmp/

        </property>

      </configuration>

(4)、编辑文件etc/hadoop/hdfs-site.xml文件,设置文件副本数,文件副本数不要大于slave节点的实际数量,比如我这里只有一个slave1,所以文件副本数设置为1

      <configuration>

        <property>

          <name>dfs.replication</name>

          <value>1</value>#文件副本数

        </property>

      </configuration>

(5)、编辑文件etc/hadoop/mapred-site.xml文件,此文件其实不存在,而是存在mapred-site.xml.template,所以执行命令mv mapred-site.xml.template mapred-site.xml修改此文件名,来指定资源调度框架

      <configuration>

        <property>

          <name>mapreduce.framework.name</name>

          <value>yarn</value>#指定资源调度框架

        </property>

      </configuration>

(6)、编辑文件etc/hadoop/yarn-site.xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

        <property>

          <name>yarn.nodemanager.aux-services</name>

          <value>mapreduce_shuffle</value>

        </property>

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>   #这里的master也可以写成master的ip

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8035</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

</configuration>

             (7)、在master中编辑文件etc/hadoop/slaves,加入slave1的IP

192.168.211.131

                  为了保证稳定,最好写ip,一般情况下写主机名也可以

至此,master配置就完成了

 

 

slave1配置:

  1. slave1配置步骤的前4步与master的前4步是一模一样的,连配置的内容都是相同的
  2. 2.    slave1不配置/home/hadoop/hadoop-2.7.2/etc/hadoop/slaves文件,把该文件中的默认内容清空,让该文件为空即可。

配置完masterslave后,格式化hdfs系统

  1. 关闭master与slave1的防火墙

service iptables stop

setenforce 0    

  1. hadoop命令一般在bin文件夹下,所以要执行相关命令要在bin目录下进行操作,为了以后方便,所以要先把hadoop的bin目录配置到环境变量中,还有些命令在sbin目录中,所以也要配置到环境变量

vim  /etc/profile   在最后加入

export JAVA_HOME=/usr/java/latest

export HADOOP_HOME=/home/hadoop/hadoop-2.7.

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

保存后记得用命令source /etc/profile配置立即生效
         (执行格式化前可以看到hadoop安装目录/home/hadoop/hadoop-2.7.2不存在tmp文件夹)

然后执行 

hadoop namenode -format命令,会发现以前/home/hadoop/hadoop-2.7.2不存在tmp文件夹,现在已经有了

3.启动HDFS  命令start-all.sh(关闭是stop-all.sh

启动完后用jps命令可以查看正在启动的java服务

[root@master hadoop-2.7.2]# jps

8428 SecondaryNameNode

9265 Jps

8235 NameNode

8582 ResourceManager

netstat -nltp命令查看所监听的端口

[root@localhost hadoop-2.7.2]# netstat -nltp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1100/rpcbind

tcp        0      0 127.0.0.1:58165             0.0.0.0:*                   LISTEN      2529/java

tcp        0      0 0.0.0.0:50070               0.0.0.0:*                   LISTEN      2435/java

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1313/sshd

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1190/cupsd

tcp        0      0 0.0.0.0:57815               0.0.0.0:*                   LISTEN      1118/rpc.statd

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1389/master

tcp        0      0 0.0.0.0:50010               0.0.0.0:*                   LISTEN      2529/java

tcp        0      0 0.0.0.0:50075               0.0.0.0:*                   LISTEN      2529/java

tcp        0      0 0.0.0.0:50020               0.0.0.0:*                   LISTEN      2529/java

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      2435/java

tcp        0      0 0.0.0.0:50090               0.0.0.0:*                   LISTEN      2718/java

tcp        0      0 :::44046                    :::*                        LISTEN      1118/rpc.statd

tcp        0      0 :::111                      :::*                        LISTEN      1100/rpcbind

tcp        0      0 :::22                       :::*                        LISTEN      1313/sshd

tcp        0      0 ::1:631                     :::*                        LISTEN      1190/cupsd

tcp        0      0 ::1:25                      :::*                        LISTEN      1389/master

NameNode和DataNode是通过9000端口通信的

验证:

在master上输入以下命令:

[root@master hadoop-2.7.2]# hdfs dfsadmin –report

Configured Capacity: 18965917696 (17.66 GB)

Present Capacity: 14551302144 (13.55 GB)

DFS Remaining: 14551277568 (13.55 GB)

DFS Used: 24576 (24 KB)

DFS Used%: 0.00%

Under replicated blocks: 0

Blocks with corrupt replicas: 0

Missing blocks: 0

Missing blocks (with replication factor 1): 0

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

Live datanodes (1):

Name: 192.168.211.131:50010 (slave1)

Hostname: slave1

Decommission Status : Normal

Configured Capacity: 18965917696 (17.66 GB)

DFS Used: 24576 (24 KB)

Non DFS Used: 4414615552 (4.11 GB)

DFS Remaining: 14551277568 (13.55 GB)

DFS Used%: 0.00%

DFS Remaining%: 76.72%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

Last contact: Wed Apr 19 22:28:09 CST 2017

50070端口是提供检测hadoop的一个Web页面, 我的master  ip192.168.211.129,访问网址http://192.168.211.129:50070/   可查看效果

到此master与slave已经配置并启动完了。

测试存放文件

在master上执行以下命令,将文件/jdk-7u80-linux-x64.rpm存放到集群中

[root@master hadoop-2.7.2]#hadoop fs -put /jdk-7u80-linux-x64.rpm  hdfs://192.168.211.129:9000/

注意下划线“/”一定要写全了。

[root@master hadoop-2.7.2]# hadoop fs -ls /

Found 1 items

-rw-r--r--   1 root supergroup  138090286 2017-04-19 22:48 /jdk-7u80-linux-x64.rpm

可以看到文件已经存放到集群上了

master上可以看到文件实际并没有存放在master上,而是存放在slave1上。

[root@master hadoop-2.7.2]# ll /home/hadoop/hadoop-2.7.2/tmp/dfs/name/current/

总用量 1052

-rw-r--r--. 1 root root      42 4  19 22:28 edits_0000000000000000001-0000000000000000002

-rw-r--r--. 1 root root 1048576 4  19 22:48 edits_inprogress_0000000000000000003

-rw-r--r--. 1 root root     351 4  19 22:26 fsimage_0000000000000000000

-rw-r--r--. 1 root root      62 4  19 22:26 fsimage_0000000000000000000.md5

-rw-r--r--. 1 root root     351 4  19 22:28 fsimage_0000000000000000002

-rw-r--r--. 1 root root      62 4  19 22:28 fsimage_0000000000000000002.md5

-rw-r--r--. 1 root root       2 4  19 22:28 seen_txid

-rw-r--r--. 1 root root     207 4  19 22:26 VERSION

slave1上查看:

 [root@slave1 hadoop-2.7.2]# ll /home/hadoop/hadoop-2.7.2/tmp/dfs/data/current/BP-293326079-192.168.211.129-1492611998445/current/finalized/subdir0/subdir0/

总用量 135916

-rw-r--r--. 1 root root 134217728 4  19 22:48 blk_1073741825

-rw-r--r--. 1 root root   1048583 4  19 22:48 blk_1073741825_1001.meta

-rw-r--r--. 1 root root   3872558 4  19 22:48 blk_1073741826

-rw-r--r--. 1 root root     30263 4  19 22:48 blk_1073741826_1002.meta

可以看到,标记为蓝色的两行即为存放的文件,它已经被分成了两部分存放。

附加:

Hadoop 添加删除Slave


添加新节点

新机器配置完之后,slave和datanode-allow.list文件加入该主机名。

该节点上启动进程:

hadoop-daemon.sh start datanode

以下文件是访问控制列表,一般不写也行

在hdfs-site.xml文件中添加如下配置:

<property>

<name>dfs.hosts</name>

<value> /home/hadoop/hadoop-2.7.2/etc/hadoop/datanode-allow.list</value>

</property>

<property>

<name>dfs.hosts.exclude</name>

<value> /home/hadoop/hadoop-2.7.2/etc/hadoop/datanode-deny.list</value>

</property>

这两个文件分别是允许Slave连接Namenode的列表和拒绝连接的列表,默认是没有的,需要手动创建。

cat /home/hadoop/hadoop-2.7.2/etc/hadoop/datanode-allow.list

192.168.211.132

/home/hadoop/hadoop-2.7.2/etc/hadoop/datanode-deny.list

没有要删除的,写为空文件即可。

删除节点

在对应目录下新建datanode-deny.list文件,内容为需要删除的Slave的主机名或ip,一行一个。

执行命令重新读取配置:

hdfs dfsadmin -refreshNodes

使用

hdfs dfsadmin -report

可以看到该节点会处于Decommission Status : Decommission in progress的状态。

等待数据迁移完成之后,该状态变为Decommission Status : Decommissioned。

在该节点上停止进程:

hadoop-daemon.sh stop datanode

删除slaves文件中的对应主机名即可。

注意,副本数量要小于或者等于正常节点的数量,否则删除失败

重新添加删除的节点

在slaves文件添加对应主机名,删除datanode-deny.list对应的主机名

执行命令:

hdfs dfsadmin -refreshNodes

在该节点上启动进程:

hadoop-daemon.sh start datanode

添加新节点

新机器配置完之后,slave和datanode-allow.list文件加入该主机名。

该节点上启动进程:

hadoop-daemon.sh start datanode

一、hadoop安装与配置的更多相关文章

  1. [Hadoop入门] - 2 ubuntu安装与配置 hadoop安装与配置

    ubuntu安装(这里我就不一一捉图了,只引用一个网址, 相信大家能力) ubuntu安装参考教程:  http://jingyan.baidu.com/article/14bd256e0ca52eb ...

  2. Hadoop集群--linux虚拟机Hadoop安装与配置、克隆虚拟机

    Hadoop集群 第四章 Hadoop安装与配置.克隆虚拟机 一.Hadoop安装与配置 1.将hadoop安装包通过Xftp传输到虚拟机的/software目录下 2.进入/software目录下, ...

  3. spark学习(2)--hadoop安装、配置

    环境: 三台机器 ubuntu14.04 hadoop2.7.5 jdk-8u161-linux-x64.tar.gz (jdk1.8) 架构: machine101 :名称节点.数据节点.Secon ...

  4. Hadoop安装与配置

    Hadoop介绍 上面是官方介绍,翻一下来总结一句话就是:Hadoop是一个高可用,用于分布式处理大规模计算的工具. Hadoop1.2 下载 . Hadoop1.2 安装 1. 安装jDK 2. 配 ...

  5. 五十九.大数据、Hadoop 、 Hadoop安装与配置 、 HDFS

    1.安装Hadoop 单机模式安装Hadoop 安装JAVA环境 设置环境变量,启动运行   1.1 环境准备   1)配置主机名为nn01,ip为192.168.1.21,配置yum源(系统源) 备 ...

  6. hadoop安装及配置入门篇

    声明: author: 龚细军 时间: -- 类型: 笔记 转载时请注明出处及相应链接. 链接地址: http://www.cnblogs.com/gongxijun/p/5726024.html 本 ...

  7. Hadoop安装及配置

    一.系统及软件环境 1.操作系统 CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 master.fansik.com:192.168.83. ...

  8. hadoop安装和配置

    这里只是涉及了hadoop的一些思路,所以完全分布式配置文件并没有哦!以后会把详细的配置过程和使用环境补充在另外一篇博客中 hadoop的安装: --------------------------- ...

  9. cdh版本的hadoop安装及配置(伪分布式模式) MapReduce配置 yarn配置

    安装hadoop需要jdk依赖,我这里是用jdk8 jdk版本:jdk1.8.0_151 hadoop版本:hadoop-2.5.0-cdh5.3.6 hadoop下载地址:链接:https://pa ...

随机推荐

  1. (转)深入研究MiniMVC之后续篇

    今天在园子看到<深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的>之后,本来是不打算开博来续这个后传,不过,在那边回了个评论之后, ...

  2. JMeter的使用——ApacheJMeterTemporaryRootCA.crt的用法

    在使用JMeter的时候,启动HTTP代理服务器弹出的那个提示框一直不知道是什么意思,刚刚弄明白了,在JMeter2.1之后,通过JMeter的代理服务器来访问https安全连接的网页的时候,浏览器会 ...

  3. python中局部变量和全局变量

    局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作用,为了临时保存数据需要在函数 在函数外边定义的变量叫做全局变量 全局变量能够在所有 ...

  4. 【大数据系统架构师】1.2 大数据基础Hadoop 2.X

    1. hadoop环境搭建 1.1 伪分布式环境搭建 1.1.1 伪分布式环境搭建 1.1.2 伪分布式搭建结果 hdfs可视化界面: http://od001:50070/dfshealth.htm ...

  5. const 迭代器和 const_iterator (vector/set/map)

    vector: 如同一般复合类型一样,vector 迭代器也可以声明成: const vector<int>::iterator it1 = v.begin(); vector<in ...

  6. 整理LVS架构压力测试工作

    首先,测试环境在模拟环境下进行.     测试环境:1director(apache2.2) + 1realserver(jboss4.2.3GA)+1databaseserver(oracle9i) ...

  7. [ADB Shell]Android Debug Bridge常用命令

    ADB用法 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...

  8. 最大子树和 树形dp

    题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明 ...

  9. js 简单数据类型和复杂数据类型的区别

    原始数据类型: number,string,boolean,undefined, null,object 基本类型(简单类型),值类型: number,string,boolean 复杂类型(引用类型 ...

  10. /bin/bash: sshpass: command not found

    按照如下命令进行安装即可: apt-get install sshpass