热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu9.10环境下的Hadoop分布式模式的部署

在经历了几天的Windows下用Cygwin搭建Hadoop开发环境的痛苦后,终于放弃,转而投向Linux环境。现在依旧不明白,为什么OpenSSH5.6下有了

 

 

在经历了几天的Windows下用Cygwin搭建Hadoop开发环境的痛苦后,终于放弃,转而投向Linux环境。

现在依旧不明白,为什么OpenSSH5.6下有了证书(Certificate)机制后,在Cygwin里配置ssh服务器就那么艰难,过几天再搞它了。在Ubuntu下直接运行:

$sudo apt-get install openssh-server

装上OpenSSH5.1版, 再运行个

$ssh localhost

测试登陆本机成功,在Cygwin上终究也没等到成功的一次……再建立无密码登陆方式

$ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

执行后在~/.ssh下生成两个文件:id_rsa和id_rsa.pub,一个是私钥一个是公钥。再把id_rsa.pub(公钥)增加到授权的key里

$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

然后测试本机无密码登陆:

$ssh localhost

下面是我用的软件的版本:

1. jdk 6u21
2. hadoop-0.21.0


1. 准备Host环境和配置ssh

主节点IP是192.168.1.247,子节点1是192.168.1.36,修改两个节点的/etc/hosts文件:

# /etc/hosts (for master AND slave)
192.168.1.247 master
192.168.1.36 slave

分别在两台机器上添加用户hadoop

  ①在master上:

groupadd -g 2000 hadoop
useradd -u 2000 -g hadoop hadoop
su - hadoop
ssh-keygen -t dsa -P '' -f ~/.ssh/identity

Generating public/private dsa key pair.
Created directory '/home/hadoop/.ssh'.
Your identification has been saved in /home/hadoop/.ssh/identity.
Your public key has been saved in /home/hadoop/.ssh/identity.pub.
The key fingerprint is:
44:e5:05:16:a2:33:95:23:3e:54:f8:c7:f1:e5:bc:24 hadoop@localhost.localdomain

mv .ssh/identity.pub .ssh/authorized_keys

ssh master输入yes接受自己的公钥,看能否自动登录,然后
ssh slave输入yes接受36的公钥。

The authenticity of host 'slave (192.168.1.36)' can't be established.
RSA key fingerprint is 40:39:05:3d:3e:6c:9d:1f:8c:d1:40:68:67:65:86:41.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slave,192.168.1.36' (RSA) to the list of known hosts.
hadoop@slave's password:

cat .ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAM4FxFo0oXwj04yyOYQsFe4IeNU/ClXOVxXtTQyQlZHse/Cl9tzKzz
rDxfKkM8K/wjRH3o2gppk2L2VO7SAd8ZYarCKQzCQjQzMa7UcsjQBth9bzde/rafDO2izHyN5d
M9oHMD3p4H9f672pPO0n8oYShrA48ndBn0N8TucrT0t9AAAAFQCy+pU9QOOD4lvp/qipQbJI2J
X7kQAAAIB4lwMLhjcJmtTiQqxUruTm4WgdOhlVz9HJPqv1FipZEhAVIk5xG9X93wUee3zVN+6v
2mOuJlXAiOAbFeY5ba7EgSaL8RAAhUhzFiTNar6jtZJgy36TzOoECL99leX+F9EpYnCyN7zMHj
uOE5nFPV6NgsDJDjt2EPEdoEvyeMz3iAAAAIEAsoGk1TxRN12zq5HjFsPUiwVCKKoi4NKlwCHz
UGNwE875je1ZHOm32SNUzpfwKGT8PR+d530aVzUGTmT7On5mUlD5ZIHPgjn9zXPFZ/ZMV9XAox
hHBNbkCrQlwLgEE7C3nK3xlEGLymdLxGRZpiCctdlromNqNhr33mzJnWWnVPI= hadoop@localhost.localdomain

复制备用

  ②在slave上:

groupadd -g 2000 hadoop
useradd -u 2000 -g hadoop hadoop
su - hadoop
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys

把从master机器上拷贝的authorized_keys文件内容粘贴上。
chmod 644 .ssh/authorized_keys

  ③在master上:

ssh slave 看是否能自动登录

  这样host和ssh环境就配好了。

  有人会觉得slave上的操作很麻烦,这是因为这里只添加了用户,而没有给用户密码,这样导致hadoop用户只能用证书登陆,不能用密码方式登录,会更安全。

2. 配置hadoop和jdk1.6
这里下载的jdk是jdk-6u10-rc-bin-b28-linux-i586-21_jul_2008.bin;执行后安装到/usr/java/jdk1.6.0_10

  ①在master上:

su - hadoop
wget http://apache.freelamp.com/hadoop/core/hadoop-0.19.1/hadoop-0.19.1.tar.gz
tar zxvf hadoop-0.19.1.tar.gz
cd hadoop-0.19.1
vi conf/masters

# 把其中的localhost改成master
master
vi conf/slaves
# 把其中的localhost改成两个节点,如果要布两台以上,就依次把剩下的子节点加上。
master
slave

vi conf/hadoop-env.sh
#在文件最前面加两行
export JAVA_HOME=/usr/java/jdk1.6.0_10
export PATH=$JAVA_HOME/bin:$PATH

vi conf/hadoop-site.xml




fs.default.name
hdfs://master:9000


mapred.job.tracker
master:9001


dfs.replication
2

# 格式化namenode
bin/hadoop namenode -format
09/05/18 14:34:02 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost.localdomain/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.19.1
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.19 -r 745977; compiled by 'ndaley' on Fri Feb 20 00:16:34 UTC 2009
************************************************************/
09/05/18 14:34:02 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop
09/05/18 14:34:02 INFO namenode.FSNamesystem: supergroup=supergroup
09/05/18 14:34:02 INFO namenode.FSNamesystem: isPermissiOnEnabled=true
09/05/18 14:34:02 INFO common.Storage: Image file of size 96 saved in 0 seconds.
09/05/18 14:34:02 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
09/05/18 14:34:02 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1
************************************************************/

  ②在slave上:

vi conf/hadoop-env.sh
在文件最前面加两行
export JAVA_HOME=/usr/java/jdk1.6.0_10
export PATH=$JAVA_HOME/bin:$PATH

vi conf/hadoop-site.xml




fs.default.name
hdfs://master:9000


mapred.job.tracker
master:9001


dfs.replication
2

  ③在master上:

bin/start-all.sh
starting namenode, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-namenode-localhost.localdomain.out
master: starting datanode, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-datanode-localhost.localdomain.out
slave: starting datanode, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-datanode-wangyin3.out
master: starting secondarynamenode, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-secondarynamenode-localhost.localdomain.out
starting jobtracker, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-jobtracker-localhost.localdomain.out
slave: starting tasktracker, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-tasktracker-wangyin3.out
master: starting tasktracker, logging to /home/hadoop/hadoop-0.19.1/bin/../logs/hadoop-hadoop-tasktracker-localhost.localdomain.out

export JAVA_HOME=/usr/java/jdk1.6.0_10
export PATH=$JAVA_HOME/bin:$PATH
jps

9208 SecondaryNameNode
9426 TaskTracker
8995 NameNode
9302 JobTracker
9095 DataNode
9536 Jps

看到运行了5个进程,OK
④在slave上:

export JAVA_HOME=/usr/java/jdk1.6.0_10
export PATH=$JAVA_HOME/bin:$PATH
jps

30693 DataNode
30768 TaskTracker
30814 Jps

看到运行了2个进程,Ok

4. 运行hadoop

  拷贝conf目录到hdfs文件系统中

$ bin/hadoop dfs -copyFromLocal conf 111

  查看一下是否已经拷过去了
bin/hadoop dfs -ls
Found 1 items
drwxr-xr-x - hadoop supergroup 0 2009-05-18 15:27 /user/hadoop/111

  在伪分布系统上运行MapReduce,wordcount
bin/hadoop jar hadoop-0.19.1-examples.jar wordcount 111 111-out
09/05/14 10:08:19 INFO mapred.FileInputFormat: Total input paths to process : 12
09/05/14 10:08:21 INFO mapred.JobClient: Running job: job_200905181001_0002
09/05/14 10:08:22 INFO mapred.JobClient: map 0% reduce 0%
09/05/14 10:08:48 INFO mapred.JobClient: map 7% reduce 0%
09/05/14 10:08:54 INFO mapred.JobClient: map 15% reduce 0%
09/05/14 10:09:06 INFO mapred.JobClient: map 15% reduce 5%
09/05/14 10:09:12 INFO mapred.JobClient: map 23% reduce 5%
09/05/14 10:09:13 INFO mapred.JobClient: map 30% reduce 5%
09/05/14 10:09:25 INFO mapred.JobClient: map 38% reduce 10%
09/05/14 10:09:27 INFO mapred.JobClient: map 46% reduce 10%
09/05/14 10:09:35 INFO mapred.JobClient: map 53% reduce 15%
09/05/14 10:09:40 INFO mapred.JobClient: map 61% reduce 15%
09/05/14 10:09:45 INFO mapred.JobClient: map 69% reduce 15%
09/05/14 10:09:50 INFO mapred.JobClient: map 76% reduce 20%
09/05/14 10:09:57 INFO mapred.JobClient: map 84% reduce 20%
09/05/14 10:10:01 INFO mapred.JobClient: map 92% reduce 20%
09/05/14 10:10:06 INFO mapred.JobClient: map 100% reduce 28%
09/05/14 10:10:11 INFO mapred.JobClient: map 100% reduce 30%
09/05/14 10:10:14 INFO mapred.JobClient: map 100% reduce 100%
09/05/14 10:10:20 INFO mapred.JobClient: Job complete: job_200905181001_0002
09/05/14 10:10:20 INFO mapred.JobClient: Counters: 16
09/05/14 10:10:20 INFO mapred.JobClient: File Systems
09/05/14 10:10:20 INFO mapred.JobClient: HDFS bytes read=64223
09/05/14 10:10:20 INFO mapred.JobClient: HDFS bytes written=30615
09/05/14 10:10:20 INFO mapred.JobClient: Local bytes read=47194
09/05/14 10:10:20 INFO mapred.JobClient: Local bytes written=94824
09/05/14 10:10:20 INFO mapred.JobClient: Job Counters
09/05/14 10:10:20 INFO mapred.JobClient: Launched reduce tasks=1
09/05/14 10:10:20 INFO mapred.JobClient: Launched map tasks=13
09/05/14 10:10:20 INFO mapred.JobClient: Data-local map tasks=13
09/05/14 10:10:20 INFO mapred.JobClient: Map-Reduce Framework
09/05/14 10:10:20 INFO mapred.JobClient: Reduce input groups=1780
09/05/14 10:10:20 INFO mapred.JobClient: Combine output records=2425
09/05/14 10:10:20 INFO mapred.JobClient: Map input records=1939
09/05/14 10:10:20 INFO mapred.JobClient: Reduce output records=1780
09/05/14 10:10:20 INFO mapred.JobClient: Map output bytes=84749
09/05/14 10:10:20 INFO mapred.JobClient: Map input bytes=62908
09/05/14 10:10:20 INFO mapred.JobClient: Combine input records=6370
09/05/14 10:10:20 INFO mapred.JobClient: Map output records=6370
09/05/14 10:10:20 INFO mapred.JobClient: Reduce input records=2425

  OK,一切搞定了。

 


推荐阅读
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细解析了客户端与服务器之间的交互过程,重点介绍了Socket通信机制。IP地址由32位的4个8位二进制数组成,分为网络地址和主机地址两部分。通过使用 `ipconfig /all` 命令,用户可以查看详细的IP配置信息。此外,文章还介绍了如何使用 `ping` 命令测试网络连通性,例如 `ping 127.0.0.1` 可以检测本机网络是否正常。这些技术细节对于理解网络通信的基本原理具有重要意义。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文详细介绍了 Charles 工具的下载、安装、配置及使用方法,特别针对 HTTP 和 HTTPS 协议的数据抓取进行了说明。 ... [详细]
author-avatar
林伯勋玉萍竣梅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有