HADOOP 集群安装

  这里的HADOOP集群安装指引是使用网上的一些资料,通过自已的实践,然后整理得出。

  Hadoop是指Hadoop Common,主要提供DFS(分布式文件存储)与Map/Reduce的核心功能。

  注意:这里只指引如何简单直接的搭建成功HADOOP集群,更多配置可根据自身需要参考相关文档

集群安装

  安装环境:LINUX

  安装版本:hadoop1.0.4

  准备安装Hadoop集群之前我们得先检验系统是否安装了如下的必备软件:ssh、rsync和Jdk1.6(因为Hadoop需要使用到Jdk中的编译工具,所以一般不直接使用Jre)。可以使用yum install rsync来安装rsync。一般来说ssh是默认安装到系统中的。Jdk1.6的安装方法这里就不多介绍了。

  1、假设我们用三台机器做Hadoop集群,分别是:192.168.1.101、192.168.1.102和192.168.1.103(下文简称101,102和103)。

  2、建立hadoop用户组与hadoop用户,专门用于进行hadoop的管理运行(# useradd hadoop)
  3、在官方下载hadoop项目,我下载的是hadoop1.0.4版本,我想把他安装在/opt目录下,所以将下载到的项目解压到"/opt/hadoop"目录下

  4、检查权限,为了避免出现问题,将其目录文件权限都改为hadoop,其目录下的bin目录需要给予执行权限

    更改hadoop目录的所有者及组所有者:# chown hadoop hadoop;chgrp hadoop hadoop

    更改hadoop目录下文件及其子目录下的所有者及组所有者# chown -R hadoop hadoop/*;chgrp -R hadoop hadoop/*

    设置hadoop目录下的bin文件夹下的脚本可执行权限# chmod a+x ./bin/*

  5、设置环境变量(当前目录路径是hadoop文件夹,/opt/hadoop):# export HADOOP_HOME=`pwd`

  6、设置环境变量,这样可以直接执行hadoop下的脚本命令:# export PATH=$PATH:/opt/hadoop/bin

  7、在所有服务器的同一路径下都进行这几步,就完成了集群Hadoop软件的安装?安装很简单的,下面进行配置。


集群配置

  Hadoop核心守护程序由NameNode/DataNode 和JobTracker/TaskTracker这几个角色构成。
  Hadoop的DFS需要确立NameNode与DataNode角色,一般NameNode会部署到一台单独的服务器上而不与DataNode共同同一机器。另外Map/Reduce服务也需要确立JobTracker和TaskTracker的角色,一般JobTracker与NameNode共用一台机器作为master,而TaskTracker与DataNode同属于slave。
  在这里我们使用101作为NameNode与JobTracker,其它两台机器作为DataNode和TaskTracker,具体的配置如下:

环境的配置

  在$HADOOP_HOME/conf/hadoop-env.sh中定义了Hadoop启动时需要的环境变量设置,其中我们至少需要配置JAVA_HOME(Jdk的路径)变量;另外我们一般还需要更改HADOOP_LOG_DIR(Hadoop的日志路径)这个变量,一般需要将其配置到一个磁盘空间比较大的目录下。

Hadoop核心程序配置

  Hadoop 包括一组默认配置文件($HADOOP_HOME/src目录下的core/core-default.xml, hdfs/hdfs-default.xml 和mapred/mapred-default.xml)。虽然默认配置文件能让Hadoop核心程序顺利启动,但一般需要自己设置一些常规配置以满足开发和业务的需求,通过对hadoop/conf下的配置文件进行设置可以对默认配置文件的值进行覆盖,具体方法如下。
  $HADOOP_HOME/conf/core-site.xml是Hadoop的核心配置文件,对应并覆盖core-default.xml中的配置项。我们一般在这个文件中增加如下配置:

Core-site.xml代码   收藏代码
  1. <configuration>  
  2.         <property>   
  3.                 <!-- 用于dfs命令模块中指定默认的文件系统协议 -->  
  4.                 <name>fs.default.name</name>   
  5.                 <value>hdfs://192.168.1.101:9000</value>   
  6.         </property>   
  7. </configuration>  

  

  $HADOOP_HOME/conf/hdfs-site.xml是HDFS的配置文件,对应并覆盖hdfs-default.xml中的配置项。我们一般在这个文件中增加如下配置:

Hdfs-site.xml代码   收藏代码
  1. <configuration>  
  2.         <property>  
  3.                 <!-- DFS中存储文件命名空间信息的目录 -->  
  4.                 <name>dfs.name.dir</name>  
  5.                 <value>/opt/hadoop/data/dfs.name.dir</value>  
  6.         </property>  
  7.         <property>  
  8.                 <!-- DFS中存储文件数据的目录 -->  
  9.                 <name>dfs.data.dir</name>   
  10.                 <value>/opt/hadoop/data/dfs.data.dir</value>  
  11.         </property>
  12. </configuration>  

  

  $HADOOP_HOME/conf/mapred-site.xml是Map/Reduce的配置文件,对应并覆盖mapred-default.xml中的配置项。我们一般在这个文件中增加如下配置:

Mapred-site.xml代码   收藏代码
  1. <configuration>  
  2.         <property>  
  3.                 <!-- 用来作JobTracker的节点的(一般与NameNode保持一致) -->  
  4.                 <name>mapred.job.tracker</name>  
  5.                 <value>192.168.1.101:9001</value>  
  6.         </property>  
  7. </configuration>  

 

主从配置

  在$HADOOP_HOME/conf目录中存在masters和slaves这两个文件,用来做Hadoop的主从配置。上面已经提到了Hadoop主要由NameNode/DataNode 和JobTracker/TaskTracker构成,在主从配置里我们一般将NameNode和JobTracker列为主机,其它的共为从机,于是对于此处的配置应该是:
        

Masters代码   收藏代码
  1. 192.168.1.101  

 

Slaves代码   收藏代码
  1. 192.168.1.102  
  2. 192.168.1.103  

  

  在$HADOOP_HOME/conf目录下还包括其它的一些配置文件,但那些都不是必须设置的,当然,在业务需要的情况下,可以了解更新参数以便适用于自已的需求。
  值得注意的是Hadoop集群的所有机器的配置应该保持一致,一般我们在配置完master后,使用scp将配置文件同步到集群的其它服务器上,如:

  # scp -r hadoop hadoop@192.168.1.102:/opt/

  scp -r hadoop hadoop@192.168.1.103:/opt/

  拷贝到其它集群机时注意检查一下权限是否正确

启动

  经过以上两个步骤,Hadoop的安装和配置已经OK了,下面就来启动Hadoop集群。启动前我们需要做一些准备,因为集群的启动是从NameNode开始的,于是DataNode的运行需要NameNode的远程调用,Hadoop使用ssh命令远程运行DataNode节点,这就是为什么Hadoop需要ssh的支持。我们可以想象一下,如果集群里有100台机器,那么我们就需要输入100遍主机的访问密码,但如果配置SSH使用无密码公钥认证的方式,就解决了此问题。
  简单的说,在101上需要生成一个密钥对,即一个私钥和一个公钥。将公钥拷贝到102和103上,如此一来,当101向102发起ssh连接的时候,102上就会生成一个随机数并用101的公钥对这个随机数进行加密,并且发送给101,101收到这个加密的数以后用私钥进行解密,并将解密后的数返回102,102确认解密的数无误后就允许101进行连接了。这就完成了一次公钥认证过程。
  公钥生成的步骤如下:

[root@192.168.1.101] ssh-keygen -t rsa
[root@192.168.1.101] #以下是生成一个为id_rsa/id_rsa.pub的无密码的公/私钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[root@192.168.1.101] ls -l ~/.ssh
[root@192.168.1.101] #这样我们会看到如下所示的结果集:
-rw------- 1 root     root      1675 Jul  5 14:01 id_rsa
-rw-r--r-- 1 root     root       394 Jul  5 14:01 id_rsa.pub

  然后将id_rsa.pub的内容复制到每个机器(也包括本机)的~/.ssh/authorized_keys文件中。如果authorized_keys不存在,则使用touch ~/.ssh/authorized_keys生成一个;如果该文件已经存在,则追加内容进去就OK了,这里我们推荐使用如下命令:

[root@192.168.1.101] cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@192.168.1.101] #因为ssh服务对文件的权限有着非常严格的限制(authorized_keys只能拥有指定用户的写权限)于是需要进行如下处理
[root@192.168.1.101] chmod 644 ~/.ssh/authorized_keys

  经过以上步骤,我们的无密码访问就配置好了,可以通过如下命令进行验证:

[root@192.168.1.101] ssh 192.168.1.112
[root@192.168.1.102] exit
[root@192.168.1.101] ssh 192.168.1.113
[root@192.168.1.103] exit

  如此一来,就可以正常启动Hadoop集群了。

  启动前,我们需要先进行格式化命名空间:

  # hadoop namenode -format

  启动HADOOP集群:

  # sh ./start-all.sh

  用如下命令验证一下是否启动成功:

  #hadoop fs -ls

  我们可以通过访问http://192.168.1.101:50070来查看hdfs的状态,访问http://192.168.1.101:50030来查看map/reduce的状态。

  如果没有错误提示或者出现文件列表,那么恭喜你,Hadoop成功启动了。

  如果出现错误,或Hadoop集群未启动,可以查看$HADOOP_HOME/logs/下的日志文件。

 

  除了多查日志外,要检查各机的防火墙是否限制了端口,会连接不上而导致集群启动失败,一般可把防火墙关掉。

service iptables stop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值