共计 17025 个字符,预计需要花费 43 分钟才能阅读完成。
近期对 Hadoop 很感兴趣,下面是在 CentOS 系统上进行编译的分享
系统情况如下:
1. CentOS 6.2 64 位
2. hadoop-2.2.0
3. jdk 1.6.0_31
4. maven 3.1.0
5. protobuf-2.5.0
6. cmake 2.8.12.1
系统中已经安装好了 JDK,并正确进行了设置,这里不说明 JDK 的安装与设置,请自行查阅
第一步:安装 maven
1.1 下载文件 apache-maven-3.1.0-alpha-1-bin.tar.gz
1.2 执行命令 tar zvxf apache-maven-3.1.0-alpha-1-bin.tar.gz
1.3 配置环境变量,编辑 etc/profile 文件,添加如下代码
MAVEN_HOME=/home/youUser/apache-maven-3.1.0-alpha-1
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME
export PATH
1.4 保存文件,并运行如下命令使环境变量生效
source /etc/profile
1.5 通过如下命令可以查看是否安装正常
mvn -version
第二步:安装 protobuf
2.1 下载文件 protobuf-2.5.0.tar.gz
2.2 执行命令 tar zvxf protobuf-2.5.0.tar.gz
2.3 进入 protobuf-2.5.0 目录,执行下面的命令
./configure
make
make check
make install
2.4 通过如下命令可以查看是否安装正常
protoc --version
第三步:安装 cmake
3.1 下载安装文件 cmake-2.8.12.1.tar.gz
3.2 执行如下命令 tar zvxf cmake-2.8.12.1.tar.gz
3.3 进人 cmake-2.8.12.1 目录,执行如下命令
./bootstrap
make
make install
3.4 通过如下命令检查安装是否正常
cmake -version
第四步:安装必要的包
4.1 执行如下命令,安装 autotool
yum install autoconf automake libtool
4.2 执行如下命令,安装 openssl-devel
yum install openssl-devel
第五步:正式编译 hadoop
5.1 下载源码包 hadoop-2.2.0-src.tar.gz
5.2 执行解包命令 tar zvxf hadoop-2.2.0-src.tar.gz
5.3 由于源码有问题,需要进行修改,修改 hadoop-common-project/hadoop-auth/pom.xml 文件,添加如下内容
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>
5.4 进入 hadoop-2.2.0-src 目录,执行如下命令
mvn clean package -Pdist,native -DskipTests -Dtar
5.5 如果能看到类型下面的输出就证明编程成功,这个过程中要保证网络通畅,需要下载很多包。
5.6 进入 hadoop-dist/target 目录,看一下编译成果吧
注明:
有人说可能还需要安装 ncurses-devel,可以通过 yum install ncurses-devel 进行安装
相关阅读 :
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
以下是进行单节点 Hadoop 配置的内容,多节点也类似
1. 进行 Hadoop 的安装
1.1 上文进行了 Hadoop 的编译,将编译结果目录 hadoop-2.2.0 拷贝为 /usr/hadoop 目录
1.2 编辑 /etc/profile 文件,增加如下的内容
export HADOOP_PREFIX=/usr/hadoop
export PATH=$PATH:$HADOOP_PREFIX/bin
export PATH=$PATH:$HADOOP_PREFIX/sbin
export HADOOP_MAPRED_HOMD=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export YARN_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
1.3 执行
操作,使配置生效 source /etc/profile
2. 进行 Hadoop 的设置
2.1 修改 core-site.xml 文件(文件位置 /usr/hadoop/etc/hadoop/),添加如下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
2.2 修改 hdfs-site.xml 文件,位置如上,添加如下内容
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
2.3 创建 mapred-site.xml 文件,可以使用 mapred-site.xml.template 模板,书写如下的内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.4 编辑 yarn-site.xml 文件,增加如下内容
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
</configuration>
2.5 创建必要的目录
因为配置中有 usr/hadoop/dfs/data,/usr/hadoop/dfs/name 两个不存在的目录,请建立这两个目录
3. 启动 Hadoop
3.1 格式化 namenode
hdfs namenode -format
3.2 运行 start-dfs.sh,执行的过程中需要多次输入密码
3.3 执行 jps 命令,查看一下,如果有类似如下的显示,证明启动成功
4792 NameNode
5168 Jps
1679 Bootstrap
1633 Launcher
4910 DataNode
5062 SecondaryNameNode
4. 停止 Hadoop
4.1 执行 stop-dfs.sh 命令,执行过程中需要多次输入密码
4.2 执行 jps 命令,查看一下,所有的 NameNode 和 DataNode 应该都消失了
5. 正常的情况下应该首先配置 SSL 免密码连接,此文不具体说明,请参考其他资料
近期对 Hadoop 很感兴趣,下面是在 CentOS 系统上进行编译的分享
系统情况如下:
1. CentOS 6.2 64 位
2. hadoop-2.2.0
3. jdk 1.6.0_31
4. maven 3.1.0
5. protobuf-2.5.0
6. cmake 2.8.12.1
系统中已经安装好了 JDK,并正确进行了设置,这里不说明 JDK 的安装与设置,请自行查阅
第一步:安装 maven
1.1 下载文件 apache-maven-3.1.0-alpha-1-bin.tar.gz
1.2 执行命令 tar zvxf apache-maven-3.1.0-alpha-1-bin.tar.gz
1.3 配置环境变量,编辑 etc/profile 文件,添加如下代码
MAVEN_HOME=/home/youUser/apache-maven-3.1.0-alpha-1
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME
export PATH
1.4 保存文件,并运行如下命令使环境变量生效
source /etc/profile
1.5 通过如下命令可以查看是否安装正常
mvn -version
第二步:安装 protobuf
2.1 下载文件 protobuf-2.5.0.tar.gz
2.2 执行命令 tar zvxf protobuf-2.5.0.tar.gz
2.3 进入 protobuf-2.5.0 目录,执行下面的命令
./configure
make
make check
make install
2.4 通过如下命令可以查看是否安装正常
protoc --version
第三步:安装 cmake
3.1 下载安装文件 cmake-2.8.12.1.tar.gz
3.2 执行如下命令 tar zvxf cmake-2.8.12.1.tar.gz
3.3 进人 cmake-2.8.12.1 目录,执行如下命令
./bootstrap
make
make install
3.4 通过如下命令检查安装是否正常
cmake -version
第四步:安装必要的包
4.1 执行如下命令,安装 autotool
yum install autoconf automake libtool
4.2 执行如下命令,安装 openssl-devel
yum install openssl-devel
第五步:正式编译 hadoop
5.1 下载源码包 hadoop-2.2.0-src.tar.gz
5.2 执行解包命令 tar zvxf hadoop-2.2.0-src.tar.gz
5.3 由于源码有问题,需要进行修改,修改 hadoop-common-project/hadoop-auth/pom.xml 文件,添加如下内容
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>
5.4 进入 hadoop-2.2.0-src 目录,执行如下命令
mvn clean package -Pdist,native -DskipTests -Dtar
5.5 如果能看到类型下面的输出就证明编程成功,这个过程中要保证网络通畅,需要下载很多包。
5.6 进入 hadoop-dist/target 目录,看一下编译成果吧
注明:
有人说可能还需要安装 ncurses-devel,可以通过 yum install ncurses-devel 进行安装
相关阅读 :
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
根据之前的操作,我们已经可以正常的启动 Hadoop 了,关于真正的集群我会在之后进行说明。现在我们来看一下第一个程序吧
1. 在 eclipse 上建立一个 java 项目
2. 将 /usr/hadoop/share/hadoop/common/hadoop-common-2.2.0.jar 文件导入到项目中
3. 将 /usr/hadoop/share/hadoop/common/lib/commons-logging-1.1.1.jar 文件导入到项目中
4. 编写代码如下
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class DFSOperator {/**
* @param args
*/
public static void main(String[] args) {Configuration conf = new Configuration();
try {FileSystem fs = FileSystem.get(conf);
Path f = new Path("hdfs:///dfs_operator.txt");
FSDataOutputStream s = fs.create(f, true);
int i = 0;
for (i = 0; i < 100000; ++i)
s.writeChars("test");
s.close();} catch (IOException e) {e.printStackTrace();
}
}
}
5. 项目抓图
6. 将项目导出成为 Jar 包 dfsOperator.jar,可以在如下地址下载
http://pan.baidu.com/share/link?shareid=3076182544&uk=2517512140
7. 将 Jar 包传输到 Linux 系统中,然后使用如下方法执行
7.1 查看是否存在 dfs_operator.txt 文件,如果存在需要先删除掉
hadoop fs -ls /
注明:如果要删除文件可以用如下命令 hadoop fs -rm /dfs_operator.txt
7.2 运行命令生成 dfs_operator.txt 文件
hadoop jar dfsOperator.jar DFSOperator
7.3 运行 7.1 的命令查看运行效果,如果增加了 dfs_operator.txt 文件,证明运行成功
上次的程序只是操作文件系统,本次运行一个真正的 MapReduce 程序。
运行的是官方提供的例子程序 wordcount,这个例子类似其他程序的 hello world。
1. 首先确认启动的正常:运行 start-all.sh
2. 执行 jps 命令检查:NameNode,DateNode,SecondaryNameNode,ResourceManager,NodeManager 是否已经启动正常。这里我遇到了一个问题,NodeManager 没有正常启动。错误信息如下:
2014-01-07 13:46:21,442 FATAL org.apache.Hadoop.yarn.server.nodemanager.containermanager.AuxServices: Failed to initialize mapreduce.shuffle
java.lang.IllegalArgumentException: The ServiceName: mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid.The valid service name should only contain a-zA-Z0-9_ and can not start with numbers
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices.serviceInit(AuxServices.java:98)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:108)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.serviceInit(ContainerManagerImpl.java:218)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:108)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:188)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:338)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:386)
经过检查,是配置文件中有点错误,请修改 yarn-site.xml 文件,更改为如下内容(原因不明)
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3. 准备数据:在 hadoop 文件系统中增加 input/file1.txt 和 input/file2.txt
[root@dbserver mapreduce]# hadoop fs -ls /
input
Found 2 items
-rw-r--r-- 1 root supergroup 12 2013-12-06 16:22 /input/file1.txt
-rw-r--r-- 1 root supergroup 13 2013-12-06 16:22 /input/file2.txt
[root@dbserver mapreduce]# hadoop fs -cat /input/file1.txt
Hello World
[root@dbserver mapreduce]# hadoop fs -cat /input/file2.txt
Hello Hadoop
4. 例子程序的位置在:/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar
hadoop jar ./hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output
画面输出内容
14/01/07 14:00:37 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032
14/01/07 14:00:38 INFO input.FileInputFormat: Total input paths to process : 2
14/01/07 14:00:38 INFO mapreduce.JobSubmitter: number of splits:2
14/01/07 14:00:38 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
14/01/07 14:00:38 INFO Configuration.deprecation: mapreduce.combine.class is deprecated. Instead, use mapreduce.job.combine.class
14/01/07 14:00:38 INFO Configuration.deprecation: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.job.name is deprecated. Instead, use mapreduce.job.name
14/01/07 14:00:38 INFO Configuration.deprecation: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
14/01/07 14:00:38 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
14/01/07 14:00:38 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1389074273046_0001
14/01/07 14:00:38 INFO impl.YarnClientImpl: Submitted application application_1389074273046_0001 to ResourceManager at localhost/127.0.0.1:8032
14/01/07 14:00:38 INFO mapreduce.Job: The url to track the job: http://dbserver:8088/proxy/application_1389074273046_0001/
14/01/07 14:00:38 INFO mapreduce.Job: Running job: job_1389074273046_0001
14/01/07 14:00:48 INFO mapreduce.Job: Job job_1389074273046_0001 running in uber mode : false
14/01/07 14:00:48 INFO mapreduce.Job: map 0% reduce 0%
14/01/07 14:00:58 INFO mapreduce.Job: map 100% reduce 0%
14/01/07 14:01:04 INFO mapreduce.Job: map 100% reduce 100%
14/01/07 14:01:05 INFO mapreduce.Job: Job job_1389074273046_0001 completed successfully
14/01/07 14:01:05 INFO mapreduce.Job: Counters: 43
File System Counters
FILE: Number of bytes read=55
FILE: Number of bytes written=236870
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=229
HDFS: Number of bytes written=25
HDFS: Number of read operations=9
HDFS: Number of large read operations=0
HDFS: Number of write operations=2
Job Counters
Launched map tasks=2
Launched reduce tasks=1
Data-local map tasks=2
Total time spent by all maps in occupied slots (ms)=15178
Total time spent by all reduces in occupied slots (ms)=4384
Map-Reduce Framework
Map input records=2
Map output records=4
Map output bytes=41
Map output materialized bytes=61
Input split bytes=204
Combine input records=4
Combine output records=4
Reduce input groups=3
Reduce shuffle bytes=61
Reduce input records=4
Reduce output records=3
Spilled Records=8
Shuffled Maps =2
Failed Shuffles=0
Merged Map outputs=2
GC time elapsed (ms)=108
CPU time spent (ms)=2200
Physical memory (bytes) snapshot=568229888
Virtual memory (bytes) snapshot=2566582272
Total committed heap usage (bytes)=392298496
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=25
File Output Format Counters
Bytes Written=25
5. 查看运行结果:
[root@dbserver mapreduce]# hadoop fs -ls /
output
Found 2 items
-rw-r--r-- 1 root supergroup 0 2014-01-07 14:01 /output/_SUCCESS
-rw-r--r-- 1 root supergroup 25 2014-01-07 14:01 /output/part-r-00000
[root@dbserver mapreduce]# hadoop fs -cat /output/part-r-00000
Hadoop 1
Hello 2
World 1
之前都是单节点进行的操作与测试,现在进行真正的多节点系统搭建
1. 准备系统与配置
共准备 4 台机器搭建 Hadoop 集群。基于 CentOS6.2,jdk1.6.0_31,Hadoop2.2.0 版本
192.168.1.132 NameNode Master132.Hadoop(Master)
192.168.1.110 DateNode Slave110.Hadoop(Slave)
192.168.1.141 DateNode Slave141.Hadoop(Slave)
192.168.1.131 DateNode Slave131.Hadoop(Slave)
2. 首先都分别对几台机器建立 Hadoop 用户
groupadd hadoop
useradd -g hadoop hadoop
passwd hadoop
增加用户组和用户都是 hadoop,我这里设置的密码 111111
3. 分别使用 root 用户,安装 jdk 并进行设置
我这里 JDK 的安装路径是 /usr/java/jdk1.6.0_31
修改设置文件 /etc/profile,增加如下内容
export JAVA_HOME=/usr/java/jdk1.6.0_31/
export JRE_HOME=/usr/java/jdk1.6.0_31/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
为了使配置马上生效,请执行
命令 source /etc/profile
4. 修改 Hosts 文件,以便彼此可以访问
文件的内容如下:(注意,把原有的内容都删除掉,否则可能有问题,这个问题困扰我很久)
192.168.1.110 Slave110.Hadoop
192.168.1.141 Slave141.Hadoop
192.168.1.131 Slave131.Hadoop
192.168.1.132 Master132.Hadoop
5. 修改主机名
编辑 /etc/sysconfig/network 文件,修改其中的主机名
NETWORKING=yes
HOSTNAME=Master132.Hadoop
GATEWAY=192.168.1.1
这个步骤需要重启,可以通过 hostname Maseter132.Hadoop 命令直接修改主机名
每一台机器都需要修改,设置我们预期的主机名称
6. 修改 ssh 免密码连接的设置
编辑 /etc/ssh/sshd_config 文件,使如下的配置生效
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启服务 service sshd restart
7. 关闭防火墙
chkconfig iptables off
以上所有的操作都是在 root 权限下进行的,下面的操作主要是使用 hadoop 用户(除非是没有权限)
9. 设置 ssh 免密码连接
9.1 在 /home/hadoop 目录下,执行如下的命令
ssh-keygen -t rsa
多次回车之后,将会在 /home/hadoop/.ssl/ 目录下生产两个文件 id_rsa,id_rsa.pub
9.2 执行 如下命令
cat id_rsa.pub >> authorized_keys
chmod 600 ~/.ssh/authorized_keys(root 权限)
9.3 将所有的 Slave 节点的 id_rsa.pub 文件导入到 Master 节点的 authorized_keys 文件中
cat id_rsa.pub >> ~/.ssh/authorized_keys
9.4 使用同样的办法将 Master 节点的 id_rsa.pub 文件也导入到各个 Slave 节点的 authorized_keys 文件中
9.5 验证相互之间免密码连接是否成功:ssh Slave110.Hadoop 等命令
10. 安装 Hadoop(在 Master 机器上进行,root 权限)
10.1 使用之前已经编译好的文件:hadoop-2.2.0.tar.gz
10.2 解压安装在相同的路径,我安装的路径为 /usr/hadoop/
10.3 进行环境设置,修改 /etc/profile 文件,增加如下内容
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
别忘了执行 source /etc/profile
10.4 修改安装路径的权限(将 hadoop 目录的读权限给 hadoop 组的 hadoop 用户)
chown –R hadoop:hadoop hadoop
11. 配置 Hadoop(在 Master 机器上进行,hadoop 权限)
11.1 修改 /usr/hadoop/libexec/hadoop-env.sh 文件,对 JAVA_HOME 进行明确指定
export JAVA_HOME=/usr/java/jdk1.6.0_31
11.2 修改 /usr/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master132.Hadoop:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://Master132.Hadoop:8010</value>
</property>
</configuration>
11.3 修改 /usr/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master132.Hadoop:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value> 此处请注意,数值不能大于你的 Datanode 节点数
</property>
</configuration>
11.4 修改 /usr/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master132.Hadoop:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master132.Hadoop:19888</value>
</property>
</configuration>
11.5 修改 /usr/hadoop/etc/hadoop/slaves
Slave110.Hadoop
Slave131.Hadoop
Slave141.Hadoop
12. 在 Slave 节点执行 10,11 步骤
可以将 Master 节点的配置直接拷贝到其它节点,然后执行 10 步的内容,完成全部设置
至此,所有的配置完成,下面可以启动一下系统
13. 在 Master 节点启动系统
13.1 运行如下命令进行格式化
hadoop namenode -format
13.2 正式启动 hadoop
start-all.sh
13.3 验证启动的结果,执行如下命令:
hadoop dfsadmin -report
基本上,如果几个 datenode 都正常就可以了!
如果过程中有问题,请到 /usr/hadoop/log 下面查看日志,寻找问题的线索