转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46352315

1.hadoop的分布式安装过程

1.1 分布结构

主节点(1个,是hadoop0):NameNode、JobTracker、SecondaryNameNode

从节点(2个,是hadoop1、hadoop2):DataNode、TaskTracker

主机名映射ip: vi /etc/sysconfig/network   ip地址=主机名  比如 192.168.106.130=hadoop0

1.2 各节点又一次产生ssh加密文件

ssh-keygen -t rsa    一路回车

进入/root/.ssh文件夹  cat id_rsa.pub >> authorized_keys

1.3 编辑各个节点的/etc/hosts,在该文件里含有全部节点的ip与hostname的映射信息

1.4 两两节点之间的SSH免password登陆

ssh-copy-id -i  hadoop1      把公钥复制到hadoop1主机

            scp /root/.ssh/authorized_keys   hadoop1:/root/.ssh/    把authorized.keys文件复制到hadoop1主机下

1.5 把hadoop0的hadoop文件夹下的logs和tmp删除

1.6 把hadoop0中的jdk、hadoop目录拷贝到hadoop1和hadoop2节点

scp  -r /usr/local/jdk   hadoop1:/usr/local/

1.7 把hadoop0的/etc/profile拷贝到hadoop1和hadoop2节点,在目标节点中运行source  /etc/profile

1.8 编辑hadoop0的配置文件slaves,改为从节点的hostname。各自是hadoop1和hadoop2,编辑hadoop1,hadoop2的配置文件masters,改为主节点的hostname。即hadoop0。注意:masters文件中配置的是secondarynamenode所在的主机名

1.9 格式化,在hadoop0节点运行hadoop namenode -format

1.10 启动,在hadoop0节点运行start-all.sh

改动hadoop配置文件

1.hadoop-env.sh

export JAVA_HOME=/usr/local/jdk/

2.core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>

3.hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

4.mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
<description>change your own hostname</description>
</property>
</configuration>

****注意:对于配置文件core-site.xml和mapred-site.xml在全部节点中都是同样的内容。

core-site.xml主要是配置namenode,mapred-site.xml主要是配置jobtracker,而namenode和jobtracker主要是分配到一台主机上,所以配置文件core-site.xml和mapred-site.xml在全部节点中都是同样的内容。

2.动态的添加一个hadoop节点

2.1 配置新节点的环境

2.2 把新节点的hostname配置到主节点的slaves文件里

2.3 在新节点,启动进程

hadoop-daemon.sh start datanode

            hadoop-daemon.sh start tasktracker

2.4 在主节点运行脚本 hadoop dfsadmin -refreshNodes

3.动态的下架一个hadoop节点

3.1、在hadoop0上改动conf/hdfs-site.xml文件

<property>

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

          <value>/usr/local/hadoop/conf/excludes</value>

         </property>

3.2、确定要下架的机器

dfs.hosts.exclude定义的文件内容为,每一个须要下线的机器,一行一个。

3.3、强制又一次载入配置

#hadoopdfsadmin  -refreshNodes

3.4、关闭节点

hadoopdfsadmin -report

        能够查看到如今集群上连接的节点

        正在运行Decommission,会显示:

             DecommissionStatus : Decommission in progress   

        运行完成后,会显示:

             DecommissionStatus : Decommissioned

3.5、再次编辑excludes文件

一旦完毕了机器下架,它们就能够从excludes文件移除了

        登录要下架的机器,会发现DataNode进程没有了,可是TaskTracker依旧存在,须要手工处理一下

最新文章

  1. springmvc+mybatis+spring 整合 bootstrap
  2. 如何识别是visual studio下头的哪种类型程序
  3. idea tomcat +eclipse式的部署
  4. hdu - 2083 - 简易版之最短距离
  5. Linux 安装挂载时注意事项
  6. windows 服务 安装 删除 启动 停止
  7. Using newInstance() to Instantiate a Fragment(转)
  8. Android项目svn代码管理问题[转]
  9. SpringMVC整合极光推送报错ClassNotFound
  10. python函数与方法装饰器
  11. Gradle DSL method not found: &#39;android()
  12. iOS之PCH文件
  13. 第二次项目冲刺(Beta阶段)--第二天
  14. 通过 AJAX 加载的 JavaScript 脚本的调试
  15. Mysql索引介绍及常见索引的区别
  16. P2158 [SDOI2008] 仪仗队(欧拉函数模板)
  17. ssh多台主机实现互相认证
  18. Django -- 部署Django 静态文件不能获取
  19. C#以管理员用户打开某个程序
  20. C++ virtual函数重写,在继承的时候没有在函数前写virtual关键字也依然是虚函数吗?

热门文章

  1. url为什么要编码及php中的中文字符urlencode基本原理
  2. FreeFileSync
  3. PHP开发
  4. IOS VLC编译步骤(包含移植和截图功能)
  5. VS2013 更改MFC标题栏图标和生成的执行文件图标
  6. python bisect模块二分法查找
  7. POJ 2689.Prime Distance-区间筛素数
  8. Codeforces Round #262 (Div. 2) A. Vasya and Socks【暴力/模拟/袜子在可以在合法情况下增加后用几天】
  9. POJ 3470 Walls(线段树+扫描线)
  10. 收纳箱1号 | GitHub Pages部署静态网页的一点私货