完全分布式 hadoop 1.X集群部署

半腔热情 提交于 2019-12-01 23:08:06

准备工作:配置好两台以上能免密码ssh访问的Linux服务器;下载好jdk和hadoop-1.2.1-bin.tar.gz;确保iptables、selinux等防火墙已关闭

1、解压jdk

$tar -xzvf jdk-7u71-linux-i586.tar.gz

#将解压出来的jdk文件转移到usr目录下,也可以不转移,后面通过环境变量配置到相应的目录即可
$mv ./jdk1.7.0_71 /usr

2、解压hadoop,配置hadoop

$tar -xzvf hadoop-1.2.1-bin.tar.gz

#进入到hadoop-1.2.1下面的conf目录下
$cd hadoop-1.2.1/conf

#配置环境变量 java_home
$vi hadoop-env.sh

  #只修改这一行即可
  export java_home=/usr/jdk1.7.0_71
 
#修改core-site.xml
$vi core-site.xml

  <configuration>
  #自定义namenode的主机名 master.haddop,可以自定义,也可以是IP地址,如果是名称,需要修改hosts
  <property>
  <name>fs.default.name</name>
  <value>hdfs://master.hadoop:9000</value> 
  </property>
  
  #指定hadoop的临时路径,如果不指定使用默认路径,重启hadoop后tmp目录会被清空
  <property>
  <name>hadoop.tmp.dir</name> 
  <value>/home/sweet/hadoop-1.2.1/tmp</value>
  </property>
  </configuration>
  
#修改hdfs-site.xml
$vi hdfs-site.xml
    
  <configuration>
  #指定复制因子,因为是实验环境,只用了一个datanode
  <property>
  <name>dfs.replication</name>
  <value>1</value> 
  </property>
  </configuration>
  
#修改mapred-site.xml
$vi mapred-site.xml
    
  <configuration>
  <property>
  <name>mapred.job.tracker</name>
  <value>master.hadoop:9001</value> 
  </property>
  </configuration>
  
#修改masters
$vi masters
  master.hadoop
  
#修改slaves
$vi slaves
  slave.hadoop01
  
#修改hosts,增加IP到名称的解析,需要登录有相应修改权限的用户操作,其它datanode上的hosts也要作相同修改
$vi /etc/hosts
  #增加下面两条
  192.168.1.100    master.hadoop
  192.168.1.101    slave.hadoop01
  
#可以分别在几台服务器上ping相应的名称试试有没有成功

3、将配置分发到各datanode,有多少个datanode就复制多少份,服务器之间需要能够SSH免密码连入

#先切换到用户目录下 /home/sweet
$scp -r ./hadoop-1.2.1 sweet@192.168.1.101:/home/sweet

#格式化名称节点
$cd hadoop-1.2.1
$bin/hadoop namenode -format

#启动hadoop,如果没有配置本机到本机ssh免密码访问,这里会不断提示输入密码
$bin/start-all.sh

#验证hadoop是否启动
$/usr/jdk1.7.0_71/bin/jps

#master上面应该有NameNode, JobTracker, SecondaryNameNode三个进程
#slave上面应该有DataNode, TaskTracker两个进程

到这里,hadoop 1.X就部署完成了。




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!