hadoop分布式 安装(3台节点)

1 环境准备:3台CentOS5.5操作系统的主机,jdk为OpenJDK1.6.0 ,Hadoop版本为0.20.2。

2 修改hosts文件,把整个聚群的主机名和IP对应起来,每台机器都需要做。(我用主机名来做hadoop标志,为后续zookeeper做准备,zookeeper只能用主机名,比较搓)

  vi /etc/hosts 

  192.168.110.223  Paas1

  192.168.110.222 Pass2

  192.168.110.224 Paas3

3 配置免密码SSH登录 (保证master和slave之间的通信,slave之间可以不做要求)。

  原理是在本机生成一个key,然后附加到对方机器的key文件中,这样就可以实现免密码登录。

  $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  ###在本机产生key

 $ ssh-copy-id -i id_dsa.pub hadoop@Pass3 将本机的公钥传输到对方机器的autorized_key文件中,如果没有此文件,则会自动创建此文件。(如果有则添加)

 $ ssh hadoop@paas3 测试是否操作成功,如果不需要输入密码就可以登录,表示成功。

备注:如果登录不了 可以查看系统日志 /var/log/secure

hadoop的初始化文件 
#tar -zxvf hadoop-0.20.2.tar.gz 
#ln -s hadoop-0.20.2 hadoop 
由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因 此将配置文件与安装目录分离,一 种比较好的方法就是建立一个存放配置文件的目录,/hadoop/hadoop-config/,然后将 /hadoop/hadoop/conf/目录中的core-site.xml,slaves,hadoop-env.sh,masters, hdfs- 
site.xml,mapred-site.xml,这6个文件拷贝到 /hadoop/hadoop-config/目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。

( 环境变量在~/.bashrc 中设定 ,

    vim ~/.bashrc 添加

    export HADOOP_CONF_DIR=/hadoop/hadoop-config
    export HBASE_CONF_DIR=/hadoop/hbase-config

  ) 

#mkdir /hadoop/hadoop-config 
#cd /hadoop/hadoop/conf/ 
#cp core-site.xml slaves hadoop-env.sh masters hdfs-site.xml mapred-site.xml /hadoop/hadoop-config/   拷贝这些文件到hadoop-config下。

修改6个文件 
masters: 
Paas1

slaves: 
Pass2 (机器名字起错了,后期也没有修改)
Paas3 

#切忌不要创建:/hadoop/hadoop/tmp 
hadoop-env.sh: 
export JAVA_HOME=/usr/local/jdk6 
export HADOOP_PID_DIR=/hadoop/hadoop/tmp 

core-site.xml: 
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
<property> 
   <name>fs.default.name</name> 
   <value>hdfs://master:54310</value> 
</property> 
</configuration> 

#切忌不要创建:/hadoop/hadoop/name 
#mkdir /hadoop/hadoop/data 
hdfs-site.xml: 
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
<property> 
<name>dfs.name.dir</name> 
<value>/hadoop/hadoop-data/dfs.name.dir</value>   #hadoop的name目录路径     
</property> 
<property> 
<name>dfs.data.dir</name> 
<value>/hadoop/hadoop-data/dfs.data.dir</value>    #hadoop的data目录路径 
</property> 
<property> 
   <name>dfs.replication</name> 
   <value>3</value>     #指定 HDFS 中每个 Block 被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数常常设置为3 
</property> 

 <property>  
                <name>dfs.permissions</name>   ## 是否要做权限限制
                <value>false</value>  
   </property> 

</configuration> 

mapred-site.xml: 
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
          <property>  
                <name>mapred.job.tracker</name>  
                <value>192.168.110.223:9001</value>    ##  mapred 设置job端口
        </property>  
        <property>  
                <name>mapred.system.dir</name>  
                <value>/hadoop/hadoop-data/mapred.system.dir</value>    ##  mapred 设置系统目录
        </property>  
        <property>  
                <name>mapred.local.dir</name>  
                <value>/hadoop/hadoop-data/mapred.local.dir</value>    ##  mapred 设置本地目录
        </property> 
</configuration>

5 开始启动hadoop 
进入master的hadoop的bin目录./hadoop namenode -format 格式化namenode 
./start-all.sh 启动hadoop 

如果启动了 可以通过http://192.168.110.223:50070访问hadoop的web控制台。

如果没有启动 需要查看日志。

备注:在linux下用jdk自带的工具jps非常辩解,一般这样使用#$JAVA_HOME/bin/jps,能反应出各java进程的具体内容,如namenode进程,jobtrack进程等。当然有些openjdk版本可能简化了这个功能,这样可以换一个jdk。


6 hadoop简单测试 
#cd /hadoop/hadoop/bin 
#./hadoop dfs -mkdir testdir 
#./hadoop dfs -put /root/install.log testdir/install.log-dfs 
将/root/install.log 存储到hdfs中的testdir中,重命名为install.log-dfs 
#./hadoop dfs -ls 
#./hadoop dfs -ls testdir 

7 重启

重启或添加节点:
$bin/hadoop-daemon.sh start datanode 
   $bin/hadoop-daemon.sh start tasktracker
当然,添加的话需要copy配置文件到新节点。
  重启的话先   $bin/hadoop-daemon.sh stop datanode/  tasktracker
 
 重新balancer(可选)
$bin/hadoop balancer
其实集群自己会balancer,当然也可以像上面那样手动balancer,不然在繁忙时段最好避免。


  

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值