前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop安装教程_分布式集群

Hadoop安装教程_分布式集群

作者头像
用户1147754
发布2019-05-26 12:10:46
4440
发布2019-05-26 12:10:46
举报
文章被收录于专栏:YoungGyYoungGy
  • 安装前的准备
    • 伪分布式的设置
    • 集群的规划
    • 集群的初始设置
      • 网络配置
      • SSH无密码登陆
      • java及apache环境设置
  • 安装流程
    • 主机的安装
    • 集群的安装
    • 效果与验证
  • 安装注意
  • 模式切换
  • 参考资料

安装前的准备

伪分布式的设置

首先,需要对一台机器进行单机和伪分布式的设置及验证,可以参考单机伪分布式设置

集群的规划

选择典型的集群规划,即一台Master,两台Slave的设置。 主机名及局域网IP配置如下:

主机名

角色

IP

Master

主机

192.168.1.108

Slave1

从机1

192.168.1.106

Slave2

从机2

192.168.1.107

集群的初始设置

对于集群中的任意主机和从机都需要完成如下配置: 1. 网络配置 2. SSH无密码登陆 3. java及apache环境设置

网络配置

首先,默认每个机器都已经能够连上互联网,有自己的ip

代码语言:javascript
复制
$ ifconfig #查看ip及网关
$ ping www.baidu.com

$ vim /etc/hostname #修改主机名

Master

$ vim /etc/hosts #修改主机名与IP的映射

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.108 Master
192.168.1.106 Slave1
192.168.1.107 Slave2

$ ping Master
$ ping Slave1
$ ping Slave2

需要注意的是,上述配置只表示了主机的配置,对应的从机也需要设置相应的配置及验证。

SSH无密码登陆

这里的要求是Master和Slave1、Slave2可以相互无密码ssh登陆。 下面以Master无密码登陆Slave1举例配置。 同样地,还需要配置Master~Slave2、Slave1~Master、Slave2~Master。

代码语言:javascript
复制
$ cd ~/.ssh                      # 如果没有该目录,先执行一次ssh localhost
$ ssh-keygen -t rsa              # 生成的密钥保存为.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #将本机的公匙在本机添加授权
$ ssh Master                     # 免密码登陆本机验证
$ scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/ #将本机的公匙给Slave1
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys #将本机的公匙在Slave1添加授权
$ ssh Slave1                     # 免密码登陆Slave1验证

java及apache环境设置

这里可以参考单机伪分布式设置

安装流程

主机的安装

主机的安装,主要在原来伪分布式的基础上,修改如下5个配置文件。

1.文件slaves

代码语言:javascript
复制
$ vim etc/hadoop/slaves

Slave1
Slave2

2.文件core-site.xml(注意原来的localhost这里变成了Master)

代码语言:javascript
复制
$ vim etc/hadoop/core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://Master:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
</property>

3.文件hdfs-site.xml(注意加了secondary,另外slave的个数变化了)

代码语言:javascript
复制
$ vim etc/hadoop/hdfs-site.xml
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>Master:50090</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>

4.文件mapred-site.xml(无变化)

代码语言:javascript
复制
$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
$ vim etc/hadoop/mapred-site.xml

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

5.文件yarn-site.xml(注意增加了master)

代码语言:javascript
复制
$ vim etc/hadoop/yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>Master</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

集群的安装

配置好后,下面需要将Master上的hadoop文件夹复制到各个节点上。因为之前跑过伪分布式模式,所以建议切换到集群模式之前先删除临时文件。

代码语言:javascript
复制
$ cd /usr/local
$ rm -r ./hadoop/tmp
$ tar -zcf ./hadoop.tar.gz ./hadoop
$ scp ./hadoop.tar.gz Slave1:/home/hadoop
$ scp ./hadoop.tar.gz Slave2:/home/hadoop

然后在Slave1,Slave2上执行

代码语言:javascript
复制
$ cd ~
$ tar -zxf ~/hadoop.tar.gz -C /usr/local
$ chown -R hadoop:hadoop /usr/local/hadoop

效果与验证

下面,就可以在Master节点上启动hadoop

代码语言:javascript
复制
$ cd /usr/local/hadoop
$ bin/hdfs namenode -format 
$ sbin/start-dfs.sh
$ sbin/start-yarn.sh
$ jps #验证
$ bin/hdfs dfsadmin -report

应该能看到Master节点启动了NameNodeSecondrryNameNodeResourceManager进程。 Slave节点则启动了DataNodeNodeManager进程。 同时,登陆http://master:50070/查看相关状态

执行分布式实例与伪分布式相同

代码语言:javascript
复制
$ bin/hdfs dfs -mkdir -p /user/hadoop
$ bin/hdfs dfs -put etc/hadoop input 
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
$ /usr/local/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver #手动开启 jobhistory server
$ bin/hdfs dfs -cat output/*

关闭

代码语言:javascript
复制
$ sbin/stop-dfs.sh
$ sbin/stop-yarn.sh
$ sbin/stop-all.sh

安装注意

  1. 防火墙必须关闭
  2. 注意伪分布式与分布式集群配置文件的区别,主要在slavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml的区别。
  3. 50070查看NameNode,8088查看ResorceManager。
  4. 常用命令

hdfs dfsadmin -report hdfs namenode -format(需要实现删除tmp临时文件) service iptables stop service iptables status 查看log日志文件

模式切换

将主机的分布式模式改变成伪分布式模式。从机的不变。

  1. 将slaves中的Slave12变成Master
  2. 将hdfs文件中的从机个数改成1

参考资料

  1. hadoop集群
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年08月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装前的准备
    • 伪分布式的设置
      • 集群的规划
        • 集群的初始设置
          • 网络配置
          • SSH无密码登陆
          • java及apache环境设置
      • 安装流程
        • 主机的安装
          • 集群的安装
            • 效果与验证
            • 安装注意
            • 模式切换
            • 参考资料
            相关产品与服务
            大数据
            全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档