• 关注官方微信 微信公众号 添加方式:
    1:搜索微信号(gogolinux
    2:扫描左侧二维码
  • 登录 注册
  • 一起学LINUX - GOGOLINUX

    查看: 1088|回复: 19
    打印 上一主题 下一主题

    hadoop多台机器集群的配置

    [复制链接]

    2

    主题

    2

    帖子

    22

    积分

    新手上路

    Rank: 1

    积分
    22
    跳转到指定楼层
    楼主
    发表于 2019-4-10 13:48:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      以前也配置过hadoop集群,但是很久没有重新去倒腾配置的细节,导致这次走了不少弯路。为了让后来的人少走弯路,也给我自己留个提醒,于是就有了这篇文章。
      首先配置这个集群主要包括三个部分。三个部分各自都有自己的milestone,可以在配置完之后运行相关的测试来校验是否配置成功。
      1.准备工作
      这之前最好是预先有了几台相同用户名(要特别注意,对于用户名不同的话ssh的时候还需要用户名的信息。)的VM或者主机。我用的三台VM用户名都是hzm 机器的ip分别为192.168.28.130,192.168.28.132,192.168.28.133. 为了省去每次都输入IP的烦恼,可以先把一台机器的/etc/hosts文件添加以下几行:
      192.168.28.130 master
      192.168.28.132 slave1
      192.168.28.133 slave2
      添加完之后,把这个文件scp到其余的两台机器的/etc/目录下。这样从ip到机器名的映射就可以了。这里简单说下scp命令。scp命令是用来在多台机器之间传送文件的,主要是从本地传文件到远程机器。用法如下:
      scp filename username@ip:~/ 注,ip之后的目录接着的是远程的目录(例:scp test.txt hzm@192.168.28.130:~ 是把text.txt 从本地传输到远程的主目录) 如果要传输目录到远程,则用scp -r foldername username@ip:~/ . 这样准备工作就做好了。
      2.配置java
      配置java的过程比较简单。而且每台机器的配置都一样,可以只配一台机器,之后scp到其他的机器即可。先在网上下载对应的java压缩包,用tar -xzvf jre***.tar 解压缩到一个目录(我是解压到home目录)。解压之后还需要配置下/etc/profile 文件,是为了系统能够找到你所配置的java。
      在/etc/profile的文件开始处添加以下三行
      export JAVA_HOME=/home/hzm/jre1.7.0_17
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar
      配置完之后把/etc/profile 和java的目录 分别用scp传输到其他的主机上。完成之后三台机器上都可以运行java -version了就表示配置成功了。
      3. 配置ssh
      这个步骤算是比较麻烦的步骤,没办法在一台机器上完成然后scp到其他的机器。
      先每台机器都运行ssh-keygen ,这样就会在每台机器的用户主目录生成.ssh 文件夹。ssh配置的目标是不用密码就可以ping 通其他的机器。达到这一个目的需要有一个包括所有机器的id_rsa.pub的名为authorized_keys的文件,并放置在.ssh 目录中。
      具体的步骤如下:
      1.先在每台机器上分别运行ssh-keygen
      2.从第一个机器开始,先 cat .ssh/id_rsa.pub>>authorized_keys 然后scp authorized_keys文件到第二台机器
      3.然后在第二台机器上接收到了authorized_keys文件后,再用cat .ssh/id_rsa.pub>>authorized_keys 把本机的id_rsa.pub内容追加到authorized_keys文件中。
      4. 依次方法做下去,直到authorized_keys包含了所有机器中的id_rsa.pub的内容。用scp 把这个文件复制到所有的机器。放在.ssh 目录下。
      5. 这个时候就应该配置完成了。可以在每台机器上试试,ssh ip 是不是可以无密码登陆了。用exit可以退出登陆。如果每台机器都可以不需要密码ssh 到其他的机器就表示这一步完成了。
    4.配置hadoop
    这次我配置的hadoop的版本是hadoop-1.1.2 。配置一点几的版本基本上都差不多。注意,配置hadoop在一台机器上配置好整个hadoop目录的内容,之后只需要将hadoop整个文件夹scp到其他的机器就可以了。
    主要配置六个配置文件
    1. hadoop-env.sh
    将java home的目录配置好,这步不用多说。
    2. core-site.xml
    < configuration>
    < property>
    < name>fs.default.name
    < value>hdfs://master:49000
    < /property>
    < property>
    < name>hadoop.tmp.dir
    < value>/home/hadooper/hadooptmp
    < /property>
    < /configuration>
    3.hdfs-site.xml
    < configuration>
    < property>
    < name>dfs.replication
    < value>2
    < /property>
    < /configuration>

    4.mapred-site.xml
    < configuration>
    < property>
    < name>mapred.job.tracker
    < value>localhost:49001
    < /property>
    < /configuration>
    5. masters 文件
    我的文件内容为
    master
    因为此前已经配置好hosts文件,把ip和机器名对应了起来。如果没有配置hosts文件,此处用对应的ip代替。
    6. slaves 文件
    我的文件内容为
    slave1
    slave2
    同上
    这样在一个机器上的hadoop文件夹就配置好了。现在就可以将这个文件夹用
    scp -r hadoop-1.1.2 hzm@192.168.28.130:~ 来把整个hadoop文件夹复制到其他机器的用户主目录了。
    复制完成之后,可以从master机器上启动hadoop。命令为
    bin/hadoop namenode -format #格式化dfs
    bin/start-all.sh #启动namenode datanode Jobstracker Taskstracker
    不出意外的话,可以从 用浏览器master:50030 和master:50070上查看dfs和mapreduce的状态了。

    5.其他
    在配置的过程中,ssh的过程可能会遇到比较多的问题。这个时候除了以上介绍的方法外,可以去试着改变一下.ssh文件的目录。好像在一些系统下这个会导致.ssh 配置出现问题。如果在添加用户或者之类的文件出现了linux系统的问题,可以用recovery模式下更改权限等。另外尽量不要去直接编辑/etc/sudoers文件
    分享到:

    0

    主题

    568

    帖子

    1258

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1258
    沙发
    发表于 2019-4-14 00:31:09 | 只看该作者

    0

    主题

    460

    帖子

    1147

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1147
    板凳
    发表于 2019-4-14 21:18:44 | 只看该作者

    0

    主题

    568

    帖子

    1258

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1258
    地板
    发表于 2019-4-15 00:09:44 | 只看该作者

    0

    主题

    586

    帖子

    1292

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1292
    5#
    发表于 2019-4-15 07:26:07 | 只看该作者

    0

    主题

    593

    帖子

    1308

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1308
    6#
    发表于 2019-4-16 06:52:29 | 只看该作者

    0

    主题

    460

    帖子

    1147

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1147
    7#
    发表于 2019-4-16 17:47:37 | 只看该作者

    0

    主题

    586

    帖子

    1292

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1292
    8#
    发表于 2019-4-16 19:20:55 | 只看该作者

    0

    主题

    272

    帖子

    644

    积分

    高级会员

    Rank: 4

    积分
    644
    9#
    发表于 2019-4-17 02:53:54 | 只看该作者

    0

    主题

    586

    帖子

    1292

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1292
    10#
    发表于 2019-4-17 06:22:04 | 只看该作者
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    官方微博:

    官方头条号:

    官方微信

    手机访问:

    官方微信

    QQArchiver 手机版 小黑屋 一起学LINUX - GOGOLINUX 闽ICP备18025837号-1 Discuz! X3.4 Powered by © 2001-2013 Comsenz Inc. 

    亚博平台可以赌本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

    快速回复 快速发帖 返回顶部 返回列表