您的位置:首页 > 运维架构

Hadoop安装手记

2013-04-19 14:09 218 查看
1. [/b]创建java运行环境[/b]

l 下载jdk for linux: jdk-6u22-linux-i586.bin

http://www.java.com/zh_CN/download/manual.jsp

l 安装jdk:chmod a+x jdk-6u22-linux-i586.bin;

./ jdk-6u22-linux-i586.bin

l 设置环境变量

#vi /etc/profile

export JAVA_HOME=/home/ydzhang/jdk1.6.0_22

export PATH="$JAVA_HOME/bin:$PATH"

export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"

l 确认java安装成功

javac/java –version (正确配置PATH)

运行hello world (正确配置CLASSPATH)

2. [/b]搭建hadoop集群[/b]

Hadoop可以在三种模式下运行,单机模式,伪分布式模式(NameNode与DataNode在一个节点上),分布式模式(NameNode与DataNode分散在多个不同的节点上)。

注:本例为伪分布式模式,搭建hadoop前,确保各个节点已经安装ssh。

参数配置:(配置文件在HADOOP_HOME/conf目录中, HADOOP_HOME为hadoop的根目录)

l 设置环境变量 hadoop-env.sh

如果环境变量都已设置好,此处无需再做配置

l core-site.xml (默认的配置可查看HADOOP_HOME/docs/cn/core-default.html)

修改该配置文件如下,更改fs.default.name,hadoop.tmp.dir选项。

fs.default.name为文件系统默认名字,其默认值为:file:///

hadoop.tmp.di为临时文件路径,其默认值为:/tmp/hadoop-${user.name}

<?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://localhost:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/u/tmp</value>

</property>

</configuration>

l hdfs-site.xml (默认的配置可查看HADOOP_HOME/docs/cn/hdfs-default.html)

修改该配置文件如下,修改dfs.replication,dfs.name.dir,dfs.data.dir。

dfs.replication为副本数,默认值为3。

dfs.name.dir为namenode存储数据的根目录,默认值为${hadoop.tmp.dir}/dfs/name。

dfs.data.dir为datanode存储数据的根目录,默认值为${hadoop.tmp.dir}/dfs/data。

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.name.dir</name>

<value>/home/u/hdfs/name</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/u/hdfs/data</value>

</property>

</configuration>

l mapred.xml(默认的配置可查看HADOOP_HOME/docs/cn/mapred-default.html)

修改该配置文件如下,修改mapred.job.tracker的值。

mapred.job.tracker为jobtracker运行的主机和端口号,默认为localhost;

<?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>localhost:9001</value>

</property>

</configuration>

如果配置有多个DataNode并且运行在不同的机器上,则将配置好的Hadoop文件夹拷贝到对应的DataNode上。

启动hadoop前,需格式化hadoop的文件系统hdfs,在master上,进入hadoop文件夹输入命令:bin/hadoop namenode –format

启动所有的服务:bin/start-all.sh

验证hadoop是否安装成功:
http://localhost:50030 (mapreduce的web页面)
http://localhost:50070 (hdfs的web页面)

对于hadoop来说,mapreduce及hdfs都是必须的,但也可以只启动hdfs(start-dfs.sh)或mapreduce(start-mapred.sh)

向正在运行的集群中添加新的数据节点:

输入以下命令:

bin/hadoop-daemon.sh --config ./conf start datanode

bin/hadoop-daemon.sh --config ./conf start tasktracker

这样就可以把新的节点联入集群中,第一步是启动datanode,第二步是启动tasktracker。

3. [/b]运行WordCount实例[/b]

[/b]

l 方法1:参见HADOOP_HOME/docs/ mapred-default.html

注意:0.20.2版本的hadoop编译WordCount时,还要使用HADOOP_HOME/lib/commons-cli-1.2.jar。

l 方法2:

直接用hadoop提供的jar包(hadoop-0.20.2-examples.jar)中包含的wordcount来运行。(参见方法1,在hdfs中创建输入输出目录,建立输入文件集)

执行以下命令:

bin/hadoop jar hadoop-0.19.2-examples.jar wordcount wordcount/input wordcount/output

通过hadoop fs -ls wordcount/output 查看输出文件信息,并可通过cat查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: