阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop学习札记

416次阅读
没有评论

共计 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 如果能看到类型下面的输出就证明编程成功,这个过程中要保证网络通畅,需要下载很多包。

Hadoop 学习札记

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 如果能看到类型下面的输出就证明编程成功,这个过程中要保证网络通畅,需要下载很多包。

Hadoop 学习札记

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. 项目抓图

Hadoop 学习札记

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 下面查看日志,寻找问题的线索

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计17025字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7956476
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...