当前位置: > Linux集群 > Hadoop >

Hadoop集群的安装 .

时间:2014-07-24 00:29来源:linux.it.net.cn 作者:it
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. (一)配置环境  
  2. 1.1.硬件:  
  3. 三台机器:ubuntu12.04-64 server  
  4. 1.2 软件:  
  5. jdk 1.6.0_45 64位  
  6. hadoop-1.0.3   
  7. 1.3 分工如下:  
  8. node00:NameNode/JobTracker/SecondaryNameNode(这里最好用一台机来单独做SecondaryNameNode)  
  9. node01:DataNode/TaskTracker  
  10. node02:DataNode/TaskTracker  
  11. 假定三台虚拟机的Ip地址如下:  
  12. node00:192.168.0.145  
  13. node01:192.168.0.146  
  14. node02:192.168.0.147  
  15. (二)准备工作  
  16. 2.1 首先在三台机器上创建相同用户(Hadoop集群基本要求)  
  17. 创建用户的方法:  
  18. (1)sudo addgroup hadoop  
  19. (2)sudo adduser --ingroup hadoop hadoop  
  20. 编辑/etc/sudoers编辑文件,在root ALL=(ALL)ALL行下添加haduser ALL=(ALL)ALL。如果不添加这行,haduser将不能执行sudo操作。  
  21. 或者:在root ALL=(ALL)ALL行下添加haduser ALL =NOPASSWD :ALL,这样的话,sudo的时候就不用输密码。  
  22. 2.2 安装jdk1.6.0_45  
  23. $ tar xvf jdk1.6.0_45.tar.gz  
  24. $ sudo mv jdk1.6.0_45 /usr/lib/java  
  25. $ sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_45/bin/java 300  
  26. $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 300  
  27. $ sudo update-alternatives --config java  
  28. $ sudo update-alternatives --config javac  
  29. hadoop@node00:~$ java -version  
  30. java version "1.6.0_45"  
  31. Java(TM) SE Runtime Environment (build 1.6.0_45-b06)  
  32. Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)  
  33. jdk配置成功!  
  34. ps: jdk卸载非常简单,仅需要删除jdk的安装目录和/etc/profile的环境配置信息即可。  
  35. 2.3 分别给三台机器设置:/etc/hosts 和/etc/hostname (好处是直接可以通过别名进行相互间访问)  
  36. (1)将三台机分别设置成nod00,node01,node02 。vim /etc/hostname  
  37. (2)将三台机器的/etc/hosts都设置成主机名和IP地址之间的映射关系  
  38.     127.0.0.1            localhost  
  39.     192.168.0.145    node00  
  40.     192.168.0.146    node01  
  41.     192.168.0.147    node02  
  42. (3)重启机器让hostname修改生效。  
  43. (4)验证以上配置是否成功:在node00机器上ping /node00/node01/node02  
  44. 如果都能ping通,则说明这步配置成功。  
  45. 2.4 配置ssh及无密码访问  
  46. (1)一般来说系统都是会默认安装sshd服务的。如果没有,或者版本比较老,可以重新安装:sudo apt-get install ssh  
  47. (2)设置node00可以无密码访问node01,node02  
  48. 具体步骤如下:  
  49.     1)ssh-keygen -t rsa 一路回车(产生密钥)  
  50.     2)把id_rsa.pub追加到授权的key里面去(cat id_rsa.pub >> authorized_keys)  
  51.     3)重启SSH服务命令使其生效.(sudo /etc/init.d/ssh )  
  52. (4)将生成的authorized_keys文件拷贝到node01,node02这两台从节点的相同文件夹下。  
  53.     cd .ssh/  
  54.     scp authorized_keys node01@hadoop:~/.ssh/  
  55.     scp authorized_keys node01@hadoop:~/.ssh/  
  56. (4)配置到这里应该就可以进行ssh的无密码登录,验证是否无密码登录访问配置成功。  
  57.     $ssh localhost (验证是否可以无密码访问localhost)  
  58.     $ssh node01  
  59.     $ssh node02  
  60.     ps:这步骤有时候配置会出现问题,自己再将报错帖到网上搜索下。  
  61. 以上步骤完成并配置成功后,接下来就正式开始安装Hadoop  
  62. ps:以上操作都是以hadoop用户登录进行操作  
  63. (三)Hadoop安装  
  64. Description: Hadoop集群中每个机器上面的配置基本相同,所以我们只需要在一台机器上配置部署好之后,直接scp将hadoop安装目录下所以文件复制到其他节点即可。  
  65. 3.1下载并解压  
  66. 下载:hadoop-1.0.3.tar.gz   
  67. ps:最新版本的hadoop-2.2.0.tar.gz不支持64位。要自己下载源码重写编译。  
  68. 解压:  
  69. $cd /home/hadoop/  
  70. $tar xvf hadoop-1.0.3.tar.gz  
  71. 3.2配置hadoop  
  72. 配置文件在hadoop-1.0.3/conf文件夹下,需要配置的主要包括:hadoop-env.sh,core-site.xml,mapred-site.xml,masters,slaves.  
  73. 1. vim hdfs-site.xml  
  74. <configuration>  
  75.         <property>  
  76.                 <name>dfs.name.dir</name>  
  77.                 <value>/home/hadoop/hadoop-1.0.3/hddata/dfs/name</value>  
  78.         </property>  
  79.         <property>  
  80.                 <name>dfs.data.dir</name>  
  81.                 <value>/home/hadoop/hadoop-1.0.3/hddata/dfs/data</value>  
  82.         </property>  
  83.         <property>  
  84.                 <name>dfs.replication</name>  
  85.                 <value>3</value>  
  86.         </property>  
  87. </configuration>  
  88. 2. vim core-site.xml  
  89. <configuration>  
  90.         <property>  
  91.                 <name>fs.default.name</name>  
  92.                 <value>hdfs://node00:9000</value>  
  93.         </property>  
  94.         <property>  
  95.                 <name>hadoop.tmp.dir</name>  
  96.                 <value>/home/hadoop/hadoop-1.0.3/hddata/tmp</value>  
  97.         </property>  
  98. </configuration>  
  99. 3 vim mapred-site.xml  
  100. <configuration>  
  101.         <property>  
  102.                 <name>mapred.job.tracker</name>  
  103.                 <value>node00:9001</value>  
  104.         </property>  
  105.         <property>  
  106.                 <name>mapred.local.dir</name>  
  107.                 <value>/home/hadoop/hadoop-1.0.3/hddata/localData</value>  
  108.         </property>  
  109. </configuration>  
  110. 4. vim master  
  111.     node00  
  112. 5. vim slaves  
  113.     node01  
  114.     node02  
  115.   
  116. 3.3 同步到其他机器  
  117. 1 cd /home/hadoop/  
  118. 2 scp -r hadoop-1.0.3 hadoop@node01:~/  
  119. 3 scp -r hadoop-1.0.3 hadoop@node02:~/  
  120.   
  121. 3.4 启动namenode节点(即node00节点)  
  122.     cd /home/hadoop/hadoop-1.0.3  
  123.     bin/hadoop namenode -format  
  124. ps:这一步没有格式化hdfs文件系统成功的话,后面的就不用浪费时间了,一定要重写仔细检查下哪里配错了,再进行下去。另外,排除错误之后一定要把本次操作生产的那些临时文件删掉才能再次格式化。我这里配置在/home/hadoop/hadoop-1.0.3/hddata/dfs/data(即删除dfs文件夹)。  
  125.   
  126. 3.5 检查hadoop启动是否成功  
  127. 1.jps  
  128.     8379 JobTracker  
  129.     8290 SecondaryNameNode  
  130.     7943 NameNode  
  131.     14298 Jps  
  132. 2.netstat -nl  
  133. ​  
  134. 3.HDFS测试  
  135. Description:  
  136. hadoop环境启动成功,我们进行一下hdfs的简单测试。  
  137. 通过命令在hdfs上面,创建一个目录bin/hadoop fs -mkdir /test  
  138. 通过命令复制一个本地文件到hdfs文件系统中,bin/hadoop fs -copyFormLocal README.txt /test  
  139. 通过命令查看刚刚上传的文件bin/hadoop fs -ls /test  
  140. 代码部分:  
  141. node00:  
  142.     cd /home/hadoop/hadoop-1.0.3  
  143.     bin/hadoop fs -mkdir test  
  144.     bin/hadoop fs -copyFormLocal README.txt test  
  145.     bin/hadoop fs -ls test  
  146.     Found 1 items  
  147.         -rw-r--r--   2 hadoop supergroup       1366 2012-08-30 02:05 /test/README.txt  
  148. 到这里,hadoop完全分布式安装就大功告成了!  
(责任编辑:IT)
------分隔线----------------------------