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 测试是否操作成功,如果不需要输入密码就可以登录,表示成功。

备注:如果改变了文件名字 需要用root用户修改/etc/ssh/ssh_config中的key:IdentityFile 和 /etc/ssh/ssh_config中的key:PubkeyAuthentication 默认的不需要修改 ,重启ssh服务service sshd restart。

4 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="https://www.linuxidc.com/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="https://www.linuxidc.com/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="https://www.linuxidc.com/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

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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/8356563f20bfd696a19cb3f49cdd7413.html