java环境搭建

hadoop是基于java的,所以必须首先安装jdk。

1. 下载jdk bin,chmod a+x jdk-6u34-ea-bin-b03-linux-amd64-20_jun_2012.bin

2. ./jdk-6u34-ea-bin-b03-linux-amd64-20_jun_2012.bin 执行,即可生成jdk1.6.0_34目录

3. 将jdk1.6.0_34目录mv到合适的位置

4. 在~/.bash_profile或者/etc/profile里配置java环境:

# java env
JAVA_HOME=/home/chengy/local/jdk1.6.0_34
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME PATH CLASSPATH

hadoop多机版搭建

单机版很简单,直接参考下面的url即可。多机版需要配置免密钥的ssh,可以参考我的blog

hadoop中有4种服务器角色,官方定义请自行google,我的浅薄理解如下:

1. namenode:存储的调度节点。

2.jobtracker:job的调度节点。

3.datanode:真正存储数据的节点。

4.tasktracker:真正干活的job节点。

一般会使用一台服务器作为namenode,一台作为jobtracker,其余服务器作为slaves,同时部署datanode和tasktracker。但是我目前只有两台服务器,所以使用其中一台A作为namenode、datanode和tasktracker。另一台B作为jobtracker、datanode和tasktracker。需要指出的是,其实这些服务器的部署是可以完全一致的。

解压安装完之后,需要在hadoop/conf/hadoop-env.sh中设置export JAVA_HOME=/path/to/jdk。

另外还最少需要配置以下参数:

$ 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://hostnameA:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/chengy/local/hadoopdata/tmp/${user.name}</value>
</property>
</configuration>

[chengy@yf-dba-darwin-uc-mongodb00 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>hostnameB:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/chengy/local/hadoopdata/system/${user.name}</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/chengy/local/hadoopdata/local01/${user.name},/home/chengy/local/hadoopdata/local02/${user.name}</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>8</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>8</value>
</property>
</configuration>

[chengy@yf-dba-darwin-uc-mongodb00 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/chengy/local/hadoopdata/name/${user.name}</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/chengy/local/hadoopdata/data/${user.name}</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

$ cat slaves
hostnameA
hostnameB

初始化和启动、停止

以上conf配置完毕后,可以推送到每台hadoop服务器上,采取同构部署。

这时,需要初始化namenode:在namenode上,执行bin/hadoop fs -format,如果之前有初始化信息,这时会询问是否要覆盖,如果选择覆盖的话,之前的信息就没了。

启动分两部分:

1. 在namenode上,执行 bin/start-dfs.sh

2. 在jobtracker上,执行bin/start-mapred.sh

停止也一样:

1. 在namenode上,执行 bin/stop-dfs.sh

2. 在jobtracker上,执行bin/stop-mapred.sh

如果出问题,可以查看log,默认在hadoop/logs下面(log很多,建议在异常时tail -f * )。

参考url:

http://hadoop.apache.org/docs/r0.19.2/cn/quickstart.html 官方单机和单机多线程hadoop搭建guide

http://hadoop.apache.org/docs/r0.19.2/cn/cluster_setup.html 官方分布式hadoop搭建guide

http://hadoop.apache.org/releases.html#Download hadoop官方下载(直接下载了bin版,解压即可)

http://ecmp.baidu.com/page/site/vsopnewbit/document-details?nodeRef=workspace://SpacesStore/6106e412-a165-4848-bbce-134bdde0fb30 (内网,也是单机版安装guide)

http://blog.linezing.com/2011/05/hadoop%E8%B6%85%E7%BA%A7%E5%AE%89%E8%A3%85%E6%89%8B%E5%86%8C

Leave a Reply