ITPub博客

首页 > 大数据 > Hadoop > 续:hadoop在ubuntu下的安装配置(转载二)

续:hadoop在ubuntu下的安装配置(转载二)

Hadoop 作者:hedong0355 时间:2013-04-20 10:03:57 0 删除 编辑

 

修改core-site.xml内容如下:

  1. version="1.0"?>  
  2. type="text/xsl"href="configuration.xsl"?>  
  3. -- Put site-specific property overrides in thisfile. -->  
  4.   
  5.    
  6.    <name>fs.default.namename>  
  7.   hdfs://localhost:9000  
  8.    
  9.    
  10.    <name>hadoop.tmp.dirname>  
  11.    /home/hadoop/program/tmp-${user.name}  
  12.     
  13.   

 

修改conf/hdfs-site.xml为

  1. version="1.0"?>  
  2. type="text/xsl"href="configuration.xsl"?>  
  3. -- Put site-specific property overrides in thisfile. -->  
  4.   
  5.       
  6.         <name>dfs.replicationname>  
  7.         1  
  8.       
  9.   

 

修改conf/mapred-site.xml为:

  1. version="1.0"?>  
  2. type="text/xsl"href="configuration.xsl"?>  
  3. -- Put site-specific property overrides in thisfile. -->  
  4.   
  5.       
  6.        <name>mapred.job.trackername>  
  7.        localhost:9001  
  8.       
  9.   

 

(4) 运行Hadoop(当前用户为hadoop)

        以上操作已经完成对Hadoop的配置,接下来是运行Hadoop。第一步需要进行格式化HDFS,运行脚本主要位于HADOOP_HOME/bin目录下,注意HADOOP_HOME为解压缩之后的Hadoop根目录,此处为/home/hadoop/program/hadoop-0.20.1。格式化HDFS命令为:(假设当前目录是已经在/home/hadoop/program/hadoop-0.20.1/bin/)下
  1. ./hadoop namenode –format  
        启动单节点集群:
  1. ./start-all.sh  
         这个操作会在本机上启动Namenode,SecondaryNameNode,Datanode,JobTracker和TaskTracker共计5个JVM进程,可以通过java自带的jps命令查看。
  1. jps  
        通过jps命令可以查看到进程如下:
  1. 19811 TaskTracker  
  2. 19674 SecondaryNameNode  
  3. 19735 JobTracker  
  4. 19497 NameNode  
  5. 20879 TaskTracker  
  6. 21810 Jps  
        停止单节点集群:
  1. ./stop-all.sh  
        另外可以通过以下网址查看节点的运行情况:
http://localhost:50030/ - Hadoop 管理介面
http://localhost:50060/ - Hadoop Task Tracker 状态
http://localhost:50070/ - Hadoop DFS 状态

 

1.3. 在多节点(分布式)环境下运行Hadoop

        搭建多节点集群的思想主要是在每一台机器上分别搭建好单机环境,再将几台机器整合成一个集群。因此,在此之前,请确保每一台机器都如1.2节中所述搭建好了单机环境(最好是相同的结构)。这里说的相同结构是指hadoop安装在项目的目录下,然后多个节点使用都使用相同的用户名操作hadoop集群。比如使用用户名hadoop。这个在hadoop搭建注意事项汇总中的第一条里面有提到。我第一次部署的时候,因为第一台slave机器使用hadoop账户配置hadoop环境,而第二台master机器使用xuwei这个账户配置hadoop环境,这样在ssh的时候也会出现问题。我使用xuwei账户ssh slave,找到的不是hadoop@slave,而是xuwei@slave。 最后在slave上新建了一个hadoop账户才解决问题。 

(1) 设置/etc/hosts文件

实验中两台机器处于同一局域网中,其中一台作为master,ip地址为192.168.0.55,一台作为slave,ip地址为192.168.0.42。更新两台机器的/etc/hosts文件,使用如下命令:
  1. sudo gedit /etc/hosts  

 

添加以下内容:

  1. # /etc/hosts (for master AND slave)  
  2. 192.168.0.55 master  
  3. 192.168.0.42 slave  

 

(2) 设置节点之间的无密码SSH登录

这里要求master上的用户hadoop必须能够无密码登录到master和slave两台机器上。经过1.2节第(2)步的配置,已经可以在单机上进行密码SSH登录,这里只需设置由master无密码登录到slave,采用如下命令即可:在master上运行:
  1. ssh-copy-id -i $HOME/.ssh/id_rsa.pub hadoop@slave  

 

这条命令的意思是将master上的公钥拷贝到slave上,这样下次ssh slave的时候slave就认识master,无需在输入密码验证。

如下命令可以测试SSH连接成功与否:
  1. ssh master  
  2. ssh slave  

(3) 修改集群配置文件

        hadoop集群的架构分为两层:HDFS层和MapReduce层,在HDFS层,master将作为NameNode和DataNode,slave作为DataNode;在MapReduce层,master将作为JobTracker和TaskTracker,而slave将作为TaskTracker。值得一提的是,本次实验中master节点既作为管理节点,又担当数据节点。接下来需要修改$HADOOP_HOME/conf/下的配置文件。在master节点上修改conf/masters文件,添加如下内容:
  1. master  
        在master节点上修改conf/slaves文件,添加如下内容(这表明master节点具有双重角色,即做master,又做slave):
  1. master  
  2. slave  
        如果需要添加更多slave,则可以在conf/slaves中将其他节点的名称添加进去,如下所示:
  1. master  
  2. slave  
  3. anotherslave01  
  4. anotherslave02  
在所有节点上修改conf/core-site.xml,更改fs.default.name的值为hdfs://master:9000,具体为:
  1.   
  2.     <name>fs.default.namename>  
  3.     hdfs://master:9000  
  4.   
在所有节点上修改conf/mapred-site.xml,将JobTracker的地址改为master具体为:
  1.   
  2.     <name>mapred.job.trackername>  
  3.     hdfs://master:9001  
  4.   
在所有节点上修改conf/hdfs-site.xml,将更改dfs.replication的值,这个参数决定了集群中一个文件需要保存为多少个拷贝。其默认值为3,因本次试验节点数为2,故更改为2。具体为:
  1.   
  2.       <name>dfs.replicationname>  
  3.       2  
  4.   

 

(4) 格式化HDFS

注意:如果之前单机环境下格式化过HDFS建议把之前的文件删除,否则可能会出现异常(HDFS目录即之前设置的${hadoop.tmp.dir}dfs目录)。格式化命令和单机情况下类似,只是需要在master节点上运行。
  1. ./hadoop namenode -format  

(5) 启动和停止集群

在master节点上首先启动HDFS,其命令为:
  1. ./start-dfs.sh  
其结果是在master节点上启动NameNode,SecondaryNameNode和DataNode,在所有slave节点上启动DataNode,通过jps命令可以查看master上启动的服务列表:
  1. hadoop@master:~$ jps  
  2. 14799 NameNode  
  3. 15314 Jps  
  4. 14880 DataNode  
  5. 14977 SecondaryNameNode  
此时slave上的进程列表如下:
  1. hadoop@master:~$ jps  
  2. 15183 Jps  
  3. 15616 DataNode  
其次,在master节点上启动MapReduce,其命令为:
  1. ./start-mapred.sh  
这样将会在master 节点上启动JobTracker 和TaskTracker , 在所有slave 节点上启动TaskTracker,通过jps命令可以查看master上启动的服务列表:
  1. hadoop@master:~$ jps  
  2. 14799 NameNode  
  3. 15314 Jps  
  4. 14880 DataNode  
  5. 14977 SecondaryNameNode  
  6. 15686 TaskTracker  
  7. 15596 JobTracker  
此时slave上的进程列表如下:
  1. hadoop@slave:~$ jps  
  2. 15183 DataNode  
  3. 15897 TaskTracker  
  4. 16284 Jps  
如要停止集群,则需要将上述步骤反过来运行,首先在master上运行
  1. ./stop-mapred.sh  
其次在master上运行以下命令停止HDFS:
  1. ./stop-dfs.sh  
这个过程也可通过jps命令来查看是否完成。
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23728918/viewspace-1120112/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-04-15