hadoop 多节点安装 ubuntu 11


hadoop 多节点安装

建立一个4台服务器的hadoop集群,4台服务器ip和对应的主机名分别为:

192.168.40.240:dm1

192.168.10.147:dm2

192.168.40.242:dm3

192.168.40.239:dm4

其中dm1为namenode,另外3台为datanode。


版本: hadoop-0.20.203.0

准备:
一、安装JAVA
下载:jdk-6u27-linux-i586.bin

分别在4台机器下安装:

1、在usr下面新建一个文件夹Java,然后将jdk复制过来
sudo mkdir /usr/Java
sudo cp jdk的路径 /usr/Java

2、进入到Java目录下,改变文件权限为可执行
cd /usr/Java
sudo chmod u+x jdk1.6.0_23.bin

3、执行安装
sudo ./jdk1.6.0_23.bin
(现象为Unpacking....加一连串解压信息)

4、配置环境变量
vim /etc/profile
增加内容
export JAVA_HOME=/usr/java/jdk1.6.0_27
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


5、验证需要重新登陆
java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)



二、 创建一个名为hadoop的用户和用户组
分别在4台机器下面操作:

1、创建一个名为hadoop的用户组
addgroup hadoop

2、创建一个名为hadoop的用户,归到hadoop用户组下
adduser --ingroup hadoop hadoop

3、修改sudo文件
vim /etc/sudoers

在 root   ALL=(ALL)  ALL 下面添加
hadoop  ALL=(ALL)  ALL

目的:让 hadoop用户可使用sudo命令

4、配置dm1  namenode 的/etc/hosts增加

192.168.40.240    dm1
192.168.10.147    dm2
192.168.40.242    dm3
192.168.40.239    dm4


5、其他机器的/etc/hosts同样增加(有文档说只要slave识别master即可。不管了,都配)
192.168.40.240    dm1
192.168.10.147    dm2
192.168.40.242    dm3
192.168.40.239    dm4

 

三,安装hadoop

1、在DM1  namenode上安装hadoop,配置完配置文件后直接把目录COPY到其他3台就OK,


将下载的压缩包解压到安装目录下即可,把hadoop 的安装路径添加到环境变量/etc/profile 中

export HADOOP_HOME=/usr/hadoop/hadoop-0.20.203.0
export PATH=$HADOOP_HOME/bin:$PATH

2、编辑3个重要的配置文件:

 

root@dm1:/usr/hadoop/hadoop-0.20.203.0/conf# cat 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://192.168.40.240:9000 </value> 
    </property>
       
    <property> 
           <name>hadoop.tmp.dir</name>
           <value>
/home/hadoop/tmp/hadoop-${user.name} </value> 
    </property>
</configuration>

 

 

root@dm1:/usr/hadoop/hadoop-0.20.203.0/conf# cat 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>/home/hadoop/name </value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/home/hadoop/data </value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2 </value>
        </property>
</configuration>

 


root@dm1:/usr/hadoop/hadoop-0.20.203.0/conf# cat 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.40.240:9001 </value>
     </property> 
</configuration>


3、配置namenode的conf/masters 和conf/slaves 文件
masters:

dm1


slaves:  

dm2
dm3
dm4


至此,hadoop的配置已经完成
,COPY到其他机器即可

4、将在namenode机器上配置好的hadoop部署到datanode机器上


scp -r /usr/hadoop/hadoop-0.20.203.0/ root@dm2:/usr/hadoop/
scp -r /usr/hadoop/hadoop-0.20.203.0/ root@dm3:/usr/hadoop/
scp -r /usr/hadoop/hadoop-0.20.203.0/ root@dm4:/usr/hadoop/


四、启动hadoop

1、回到DM1格式化和启动(后面的操作都在OS 的hadoop用户下):

hadoop@dm1:/usr/hadoop/hadoop-0.20.203.0$ bin/hadoop namenode -format 

hadoop@dm1:/usr/hadoop/hadoop-0.20.203.0$ bin/start-all.sh

 


2、dm1检查启动进程:

hadoop@dm1:/usr/hadoop/hadoop-0.20.203.0$ jps
5944 Jps
5477 NameNode
5744 JobTracker
5665 SecondaryNameNode


其他机器:
hadoop@dm2:~$ jps
4986 DataNode
5125 TaskTracker
5203 Jps



注意事项:

/etc/hosts 不要使用127.0.1.1或localhost

启动和维护在hadoop用户下


用ssh-keygen打通四台机器的无密登录.


参考

 

http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html
http://vampire1126.iteye.com/blog/891693
http://hi.baidu.com/jadmin/blog/item/80a590eceaac693c63d09f31.html
http://shirley-ren.iteye.com/blog/1174622

你可能感兴趣的:(hadoop hbase)