集群-Hadoop 如何将结果分配到指定的机器上去?

问题描述

Hadoop 如何将结果分配到指定的机器上去?

如题,比如reduce结果有10个block,集群有3台slaves,我想把part-00000到part-00003放在一台机器上,把part-00004到part-00006放到一台机器上,剩下的放到另外一台机器上,求大神解决,多谢!!!!!!!!!

解决方案

http://bbs.csdn.net/topics/391927191

解决方案二:

Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写
分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何部署 Hadoop 分布式
运行环境。

一、前言

前面己经详细介绍了如何安装 Hadoop,如何在单机及伪分布式环境 (在一台单机中用多进程模拟) 运行基于Hadoop 的并行程序。本文将介绍真实的 Hadoop 分布式运行环境, 如何在多台普通的计算机上部署分布式运行环境。

二、准备硬件设备、操作系统、网络环境

准备三台机器,机器名分别为 home0.hadoop、home1.hadoop、home2.hadoop,均安装 CentOS5 (其它 Linux 发行版亦可), 确保各台机器之间网络畅通,机器名与 IP 地址之间解析正确,从任一台机器都可以 ping 通其它机器的机器名。如有机器名的解析问题,可通过设置 /etc/hosts 文件解决,当然更好的解决方法是在你的网络中配置 DNS 服务器。此外,需要在三台机器上创建相同的用户帐号,如:yourusername。

我们将使用 home0.hadoop 作为分布式文件系统 HDFS 的 Name Node 及 MapReduce 运行过程中的 Job Tracker 结点,我们将 home0.hadoop 称之为主结点。其它两台机器 (home1.hadoop, home2.hadoop) 作为 HDFS 的 Data Node 以及 MapReduce 运行过程中的 Task Tracker 结点,这些结点可统称为从结点。如你需要部署更多的机器,也是很容易的,将新加入的机器作为 Data Node 以及 Task Tracker 结点即可,其配置过程在您看完本文后就会了。

三、SSH配置RSA认证

在 Hadoop 分布式环境中,Name Node (主节点) 需要通过 SSH 来启动和停止 Data Node (从结点)上的各类进程

。我们需要保证环境中的各台机器均可以通过 SSH 登录访问,并且 Name Node 用 SSH 登录 Data Node 时,不需要
输入密码,这样 Name Node 才能在后台自如地控制其它结点。可以将各台机器上的 SSH 配置为使用无密码公钥认证方式来实现,在此我就不再赘述了,上篇已经写过。

四、安装部署 Hadoop

1、我们首先在主控结点 home0.hadoop 上安装和配置好 Hadoop,安装过程上一篇已经说过,请查看。 

2、配置 conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml 

2.1、conf/core-site.xml:
<configuration>

    <property>
            <name>fs.default.name</name>
            <value>hdfs://home0.hadoop:9000</value>
    </property>

</configuration>

2.2、conf/hdfs-site.xml 

<configuration>

    <property>
            <name>dfs.name.dir</name>
            <value>/home/yourusername/hadoopfs/name_0,/home/yourusername/hadoopfs/name_1</value>
             <description>Determines where on the local filesystem the DFS name node
                    should store the name table. If this is a comma-delimited list of directories
                    then the name table is replicated in all of the directories,
                    for redundancy.
            </description>
    </property>

    <property>
            <name>dfs.data.dir</name>
            <value>/home/yourusername/hadoopfs/data_0,/home/yourusername/hadoopfs/data_1</value>
            <description>
                    Determines where on the local filesystem an DFS data node
                    should store its blocks. If this is a comma-delimited list of directories,
                    then data will be stored in all named directories, typically on different    

        devices. Directories that do not exist are ignored.
            </description>
    </property>

</configuration>

2.3、conf/mapred-site.xml 

 <configuration>
     <property>
            <name>mapred.job.tracker</name>
            <value>home0.hadoop:9001</value>
    </property>

</configuration>

3、解释:
参数 fs.default.name 指定 Name Node 的 IP 地址和端口号,此处我们将其设定为 home0.hadoop 及 9000 端口,参数 mapred.job.tracker 指定 JobTracker 的 IP 地址和端口号,此处我们将其设定为 home0.hadoop 及 9001

端口。 参数 dfs.name.dir 指定 Name Node 相关数据在本地文件系统上的存放位置, 此处我们将其设定为/home/yourusername/hadoopfs/name_0,/home/yourusername/hadoopfs/name_1 ,参数 dfs.data.dir 指定 Data Node 相关数据在本地文件系统上的存放位置,此处我们将其设定为 /home/yourusername/hadoopfs/data_0,/home/yourusername/hadoopfs/data_1 。注意, Hadoop 会自动创建这些目录,无需事先创建。如果你有多个磁盘设备,以逗号分开配置进去,会大大提高IO效率。

4、设定主从节点 

修改 conf/masters 文件,将其中的 localhost 改为 home0.hadoop ,修改 conf/slaves 文件。 删掉其中的localhost, 将我们的另两台机器 home1.hadoop、home2.hadoop 加入, 注意每个机器一行。masters里面的是主机节点,slaves里面是从机节点。

5、同样的配置拷贝到其他两台机器上去 

$ scp -r /home/yourusername/hadoop-0.20.2 home1.hadoop:/home/yourusername/hadoop-0.20.2
$ scp -r /home/yourusername/hadoop-0.20.2 home2.hadoop:/home/yourusername/hadoop-0.20.2

注意:可能您每台机器的JAVA安装位置不一样,记得修改conf/hadoop-env.sh,设置export JAVA_HOME=正确路径。

6、在 home0.hadoop 上格式化一个新的分布式文件系统 

$ cd hadoop-0.20.2
$ bin/hadoop namenode -format

7、启动hadoop进程 

$ bin/start-all.sh

$ bin/start-all.sh

starting namenode, logging to ...
home1.hadoop: starting datanode, logging to ...
home2.hadoop: starting datanode, logging to ...
home0.hadoop: starting secondarynamenode, logging to ...
starting jobtracker, logging to ...
home1.hadoop: starting tasktracker, logging to ...
home2.hadoop: starting tasktracker, logging to ...

启动完成之后,从日志中可以看到,也可以运行 ps -ef 命令可以看到 home0.hadoop 上启动了 3 个新的 java进程 (namenode, secondary namenode, jobtracker), 同时,我们可以到 home1.hadoop、home2.hadoop 两台机器上用 ps –ef 查看,这两台机器上应该已经自动启动了 2 个新的 java 进程 (datanode, tasktracker)

五、操作HDFS试试

$ bin/hadoop fs -lsr //查看分布式系统中是有哪些文件存在

$ bin/hadoop fs -put /home/yourusername/hadoop-0.20.2/hadoop-0.20.2-tools.jar a.jar //从本地拷贝文件

$ bin/hadoop fs -put /home/yourusername/hadoop-0.20.2/ . //从本地文件系统拷贝文件夹到分布式文件系统

$ bin/hadoop fs -rmr /home/yourusername/hadoop-0.20.2/ . //删除分布式文件系统的所有文件

六、可能你不会很顺利

我的问题呢,就是碰到 could only be replicated to 0 nodes, instead of 1,因为防火墙问题,在这里解决的:http://jiajun.iteye.com/blog/624449。

七、多熟悉熟悉

1、http://home0.hadoop:50070 看看分布式文件系统概况日志

Cluster Summary
15 files and directories, 3 blocks = 18 total. Heap Size is 10.73 MB / 966.69 MB (1%)
Configured Capacity : 56.26 GB
DFS Used : 524 KB
Non DFS Used : 10.86 GB
DFS Remaining : 45.4 GB
DFS Used% : 0 %
DFS Remaining% : 80.7 %
Live Nodes : 2
Dead Nodes : 0

2、http://192.168.0.129:50030 看看工作情况

Cluster Summary (Heap Size is 7.5 MB/966.69 MB)
Maps Reduces Total Submissions Nodes Map Task Capacity Reduce Task Capacity Avg.

Tasks/Node Blacklisted Nodes
0 0 0 2 4 4 4.00 0

3、熟悉hadoop的命令

八、环境搭建完成,到这里你可以玩玩分布式文件系统,下一步我会介绍如何分布式编程

一、准备工作:
Hadoop分布式文件系统,架构和设计 :http://hadoop.apache.org/common/docs/r0.20.2/cn/hdfs_design.html
Hadoop快速入门:http://hadoop.apache.org/common/docs/r0.20.2/cn/quickstart.html
SSH认证登录(可后看):http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html

二、下面实际操作,初步感受分布式文件系统:

1、ssh安装(linux:openssh,windwos:要先安装Cygwin),略过

2、下载Hadoop的发行版,从Apache的某个镜像服务器上下载最近的 稳定发行版:

http://hadoop.apache.org/core/releases.html,解压所下载的Hadoop发行版。

$ wget http://labs.renren.com/apache-mirror/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
$ tar -zxvf hadoop-0.20.2.tar.gz
$ cd hadoop-0.20.2

3、编辑 conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径

4、稍微熟悉下使用文档

$ bin/hadoop //将会显示hadoop 脚本的使用文档。

现在你可以用以下三种支持的模式中的一种启动Hadoop集群:

* 单机模式
* 伪分布式模式
* 完全分布式模式

5、单机模式的操作方法

默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。

下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output

目录。

$ mkdir input
$ cp conf/*.xml input

我们看看下面的查找:

$ egrep dfs[a-z.]+ input/*

输出:
input/hadoop-policy.xml: dfsadmin and mradmin commands to refresh the security policy in-effect.

运行hadoop命令:

$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'

执行上面的命令,会有一些输出日志,随便看看,了解了解。

$ cat output/*

结果:
1 dfsadmin

6、伪分布式模式的操作方法

Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。

6.1、配置 (中文官方文档落后了,我上面的链接是中文文档,请自己转到英文文档看):

conf/core-site.xml

fs.default.name
hdfs://localhost:9000

conf/hdfs-site.xml

dfs.name.dir
/home/lighttpd/hadoopfs/name

dfs.data.dir
/home/lighttpd/hadoopfs/data

dfs.replication
1

conf/mapred-site.xml

mapred.job.tracker
localhost:9001

6.2、免密码ssh设置(参考我的另外一篇文章:http://jiajun.iteye.com/blog/621309)

现在确认能否不输入口令就用ssh登录localhost:

$ ssh localhost

如果不输入口令就无法用ssh登陆localhost,执行下面的命令:

$ ssh-keygen -t dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

6.3、格式化一个新的分布式文件系统

$ bin/hadoop namenode -format

注意看看输出日志哦,有助于理解。

6.4、启动Hadoop守护进程:

$ bin/start-all.sh

如果你设置了ssh的RSA认证,就不用输入密码,不然就要输入三次密码登录

6.5、日志

Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).

6.6、浏览NameNode和JobTracker的网络接口,它们的地址默认为:

* NameNode - http://localhost:50070/
* JobTracker - http://localhost:50030/

浏览观察一下,会看懂甚至更好的理解一些东西。

6.7、将输入文件拷贝到分布式文件系统:

$ bin/hadoop fs -put conf input //把本地的文件夹conf拷贝到分布式文件系统input文件夹

$ bin/hadoop fs -ls input //浏览分布式文件系统中的input文件

上面的命令是hadoop的,你可以输入下面命令,获取帮助

$ bin/hadoop fs

6.8、运行发行版提供的示例程序:

$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'

查看输出文件:

$ bin/hadoop fs -get output output // 将输出文件从分布式文件系统拷贝到本地文件系统
$ cat output/*

或者,在分布式文件系统中查看:
$ bin/hadoop fs -cat output/*

6.9、你可以多试试bin/hadoop fs 下的java FsShell,和操作本地文件差不多,很快能熟悉。

6.10、最后,完成全部操作后,可以停止守护进程:

$ bin/stop-all.sh

bin下面有很多shell脚本这时可以适当看看名称,猜个大概意思。

解决方案三:

Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写
分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何部署 Hadoop 分布式
运行环境。

一、前言

前面己经详细介绍了如何安装 Hadoop,如何在单机及伪分布式环境 (在一台单机中用多进程模拟) 运行基于Hadoop 的并行程序。本文将介绍真实的 Hadoop 分布式运行环境, 如何在多台普通的计算机上部署分布式运行环境。

二、准备硬件设备、操作系统、网络环境

准备三台机器,机器名分别为 home0.hadoop、home1.hadoop、home2.hadoop,均安装 CentOS5 (其它 Linux 发行版亦可), 确保各台机器之间网络畅通,机器名与 IP 地址之间解析正确,从任一台机器都可以 ping 通其它机器的机器名。如有机器名的解析问题,可通过设置 /etc/hosts 文件解决,当然更好的解决方法是在你的网络中配置 DNS 服务器。此外,需要在三台机器上创建相同的用户帐号,如:yourusername。

我们将使用 home0.hadoop 作为分布式文件系统 HDFS 的 Name Node 及 MapReduce 运行过程中的 Job Tracker 结点,我们将 home0.hadoop 称之为主结点。其它两台机器 (home1.hadoop, home2.hadoop) 作为 HDFS 的 Data Node 以及 MapReduce 运行过程中的 Task Tracker 结点,这些结点可统称为从结点。如你需要部署更多的机器,也是很容易的,将新加入的机器作为 Data Node 以及 Task Tracker 结点即可,其配置过程在您看完本文后就会了。

三、SSH配置RSA认证

在 Hadoop 分布式环境中,Name Node (主节点) 需要通过 SSH 来启动和停止 Data Node (从结点)上的各类进程

。我们需要保证环境中的各台机器均可以通过 SSH 登录访问,并且 Name Node 用 SSH 登录 Data Node 时,不需要
输入密码,这样 Name Node 才能在后台自如地控制其它结点。可以将各台机器上的 SSH 配置为使用无密码公钥认证方式来实现,在此我就不再赘述了,上篇已经写过。

四、安装部署 Hadoop

1、我们首先在主控结点 home0.hadoop 上安装和配置好 Hadoop,安装过程上一篇已经说过,请查看。 

2、配置 conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml 

2.1、conf/core-site.xml:
<configuration>

    <property>
            <name>fs.default.name</name>
            <value>hdfs://home0.hadoop:9000</value>
    </property>

</configuration>

2.2、conf/hdfs-site.xml 

<configuration>

    <property>
            <name>dfs.name.dir</name>
            <value>/home/yourusername/hadoopfs/name_0,/home/yourusername/hadoopfs/name_1</value>
             <description>Determines where on the local filesystem the DFS name node
                    should store the name table. If this is a comma-delimited list of directories
                    then the name table is replicated in all of the directories,
                    for redundancy.
            </description>
    </property>

    <property>
            <name>dfs.data.dir</name>
            <value>/home/yourusername/hadoopfs/data_0,/home/yourusername/hadoopfs/data_1</value>
            <description>
                    Determines where on the local filesystem an DFS data node
                    should store its blocks. If this is a comma-delimited list of directories,
                    then data will be stored in all named directories, typically on different    

        devices. Directories that do not exist are ignored.
            </description>
    </property>

</configuration>

2.3、conf/mapred-site.xml 

 <configuration>
     <property>
            <name>mapred.job.tracker</name>
            <value>home0.hadoop:9001</value>
    </property>

</configuration>

3、解释:
参数 fs.default.name 指定 Name Node 的 IP 地址和端口号,此处我们将其设定为 home0.hadoop 及 9000 端口,参数 mapred.job.tracker 指定 JobTracker 的 IP 地址和端口号,此处我们将其设定为 home0.hadoop 及 9001

端口。 参数 dfs.name.dir 指定 Name Node 相关数据在本地文件系统上的存放位置, 此处我们将其设定为/home/yourusername/hadoopfs/name_0,/home/yourusername/hadoopfs/name_1 ,参数 dfs.data.dir 指定 Data Node 相关数据在本地文件系统上的存放位置,此处我们将其设定为 /home/yourusername/hadoopfs/data_0,/home/yourusername/hadoopfs/data_1 。注意, Hadoop 会自动创建这些目录,无需事先创建。如果你有多个磁盘设备,以逗号分开配置进去,会大大提高IO效率。

4、设定主从节点 

修改 conf/masters 文件,将其中的 localhost 改为 home0.hadoop ,修改 conf/slaves 文件。 删掉其中的localhost, 将我们的另两台机器 home1.hadoop、home2.hadoop 加入, 注意每个机器一行。masters里面的是主机节点,slaves里面是从机节点。

5、同样的配置拷贝到其他两台机器上去 

$ scp -r /home/yourusername/hadoop-0.20.2 home1.hadoop:/home/yourusername/hadoop-0.20.2
$ scp -r /home/yourusername/hadoop-0.20.2 home2.hadoop:/home/yourusername/hadoop-0.20.2

注意:可能您每台机器的JAVA安装位置不一样,记得修改conf/hadoop-env.sh,设置export JAVA_HOME=正确路径。

6、在 home0.hadoop 上格式化一个新的分布式文件系统 

$ cd hadoop-0.20.2
$ bin/hadoop namenode -format

7、启动hadoop进程 

$ bin/start-all.sh

$ bin/start-all.sh

starting namenode, logging to ...
home1.hadoop: starting datanode, logging to ...
home2.hadoop: starting datanode, logging to ...
home0.hadoop: starting secondarynamenode, logging to ...
starting jobtracker, logging to ...
home1.hadoop: starting tasktracker, logging to ...
home2.hadoop: starting tasktracker, logging to ...

启动完成之后,从日志中可以看到,也可以运行 ps -ef 命令可以看到 home0.hadoop 上启动了 3 个新的 java进程 (namenode, secondary namenode, jobtracker), 同时,我们可以到 home1.hadoop、home2.hadoop 两台机器上用 ps –ef 查看,这两台机器上应该已经自动启动了 2 个新的 java 进程 (datanode, tasktracker)

五、操作HDFS试试

$ bin/hadoop fs -lsr //查看分布式系统中是有哪些文件存在

$ bin/hadoop fs -put /home/yourusername/hadoop-0.20.2/hadoop-0.20.2-tools.jar a.jar //从本地拷贝文件

$ bin/hadoop fs -put /home/yourusername/hadoop-0.20.2/ . //从本地文件系统拷贝文件夹到分布式文件系统

$ bin/hadoop fs -rmr /home/yourusername/hadoop-0.20.2/ . //删除分布式文件系统的所有文件

六、可能你不会很顺利

我的问题呢,就是碰到 could only be replicated to 0 nodes, instead of 1,因为防火墙问题,在这里解决的:http://jiajun.iteye.com/blog/624449。

七、多熟悉熟悉

1、http://home0.hadoop:50070 看看分布式文件系统概况日志

Cluster Summary
15 files and directories, 3 blocks = 18 total. Heap Size is 10.73 MB / 966.69 MB (1%)
Configured Capacity : 56.26 GB
DFS Used : 524 KB
Non DFS Used : 10.86 GB
DFS Remaining : 45.4 GB
DFS Used% : 0 %
DFS Remaining% : 80.7 %
Live Nodes : 2
Dead Nodes : 0

2、http://192.168.0.129:50030 看看工作情况

Cluster Summary (Heap Size is 7.5 MB/966.69 MB)
Maps Reduces Total Submissions Nodes Map Task Capacity Reduce Task Capacity Avg.

Tasks/Node Blacklisted Nodes
0 0 0 2 4 4 4.00 0

3、熟悉hadoop的命令

八、环境搭建完成,到这里你可以玩玩分布式文件系统,下一步我会介绍如何分布式编程

一、准备工作:
Hadoop分布式文件系统,架构和设计 :http://hadoop.apache.org/common/docs/r0.20.2/cn/hdfs_design.html
Hadoop快速入门:http://hadoop.apache.org/common/docs/r0.20.2/cn/quickstart.html
SSH认证登录(可后看):http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html

二、下面实际操作,初步感受分布式文件系统:

1、ssh安装(linux:openssh,windwos:要先安装Cygwin),略过

2、下载Hadoop的发行版,从Apache的某个镜像服务器上下载最近的 稳定发行版:

http://hadoop.apache.org/core/releases.html,解压所下载的Hadoop发行版。

$ wget http://labs.renren.com/apache-mirror/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
$ tar -zxvf hadoop-0.20.2.tar.gz
$ cd hadoop-0.20.2

3、编辑 conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径

4、稍微熟悉下使用文档

$ bin/hadoop //将会显示hadoop 脚本的使用文档。

现在你可以用以下三种支持的模式中的一种启动Hadoop集群:

* 单机模式
* 伪分布式模式
* 完全分布式模式

5、单机模式的操作方法

默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。

下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output

目录。

$ mkdir input
$ cp conf/*.xml input

我们看看下面的查找:

$ egrep dfs[a-z.]+ input/*

输出:
input/hadoop-policy.xml: dfsadmin and mradmin commands to refresh the security policy in-effect.

运行hadoop命令:

$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'

执行上面的命令,会有一些输出日志,随便看看,了解了解。

$ cat output/*

结果:
1 dfsadmin

6、伪分布式模式的操作方法

Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。

6.1、配置 (中文官方文档落后了,我上面的链接是中文文档,请自己转到英文文档看):

conf/core-site.xml

fs.default.name
hdfs://localhost:9000

conf/hdfs-site.xml

dfs.name.dir
/home/lighttpd/hadoopfs/name

dfs.data.dir
/home/lighttpd/hadoopfs/data

dfs.replication
1

conf/mapred-site.xml

mapred.job.tracker
localhost:9001

6.2、免密码ssh设置(参考我的另外一篇文章:http://jiajun.iteye.com/blog/621309)

现在确认能否不输入口令就用ssh登录localhost:

$ ssh localhost

如果不输入口令就无法用ssh登陆localhost,执行下面的命令:

$ ssh-keygen -t dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

6.3、格式化一个新的分布式文件系统

$ bin/hadoop namenode -format

注意看看输出日志哦,有助于理解。

6.4、启动Hadoop守护进程:

$ bin/start-all.sh

如果你设置了ssh的RSA认证,就不用输入密码,不然就要输入三次密码登录

6.5、日志

Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).

6.6、浏览NameNode和JobTracker的网络接口,它们的地址默认为:

* NameNode - http://localhost:50070/
* JobTracker - http://localhost:50030/

浏览观察一下,会看懂甚至更好的理解一些东西。

6.7、将输入文件拷贝到分布式文件系统:

$ bin/hadoop fs -put conf input //把本地的文件夹conf拷贝到分布式文件系统input文件夹

$ bin/hadoop fs -ls input //浏览分布式文件系统中的input文件

上面的命令是hadoop的,你可以输入下面命令,获取帮助

$ bin/hadoop fs

6.8、运行发行版提供的示例程序:

$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'

查看输出文件:

$ bin/hadoop fs -get output output // 将输出文件从分布式文件系统拷贝到本地文件系统
$ cat output/*

或者,在分布式文件系统中查看:
$ bin/hadoop fs -cat output/*

6.9、你可以多试试bin/hadoop fs 下的java FsShell,和操作本地文件差不多,很快能熟悉。

6.10、最后,完成全部操作后,可以停止守护进程:

$ bin/stop-all.sh

bin下面有很多shell脚本这时可以适当看看名称,猜个大概意思。

时间: 2024-09-23 18:30:42

集群-Hadoop 如何将结果分配到指定的机器上去?的相关文章

Hadoop 如何将结果分配到指定的机器上去?

问题描述 如题,比如reduce结果有10个block,集群有3台slaves,我想把part-00000到part-00003放在一台机器上,把part-00004到part-00006放到一台机器上,剩下的放到另外一台机器上,求大神解决,多谢!!!!!!!!! 解决方案 解决方案二:没有人回复吗?解决方案三:参考:http://ask.csdn.net/questions/249840类似的问题解决方案四:自己重写partitioner类解决方案五:已经解决.多谢回复解决方案六:重写part

activemq使用kahadb持久化搭建分布式集群后发下消息处理速度明显不如单台机器的性能,为什么会下降呢

问题描述 activemq使用kahadb持久化搭建分布式集群后发下消息处理速度明显不如单台机器的性能,为什么会下降呢 最近在linux下测试ActiveMQ5.11 ,使用两台电脑进行分布式布控,测试处理消息性能时,发现对消息的处理速度远不如一台机器工作处理速度,搭建分布式集群后哪里会影响其速度吗? 解决方案 先做性能瓶颈分析,比如网络I/O. CPU, 内存等都有可能是瓶颈.需要先找到瓶颈的地方

activemq 集群-activemq使用kahadb持久化搭建分布式集群后发下消息处理速度明显不如一台机器的性能

问题描述 activemq使用kahadb持久化搭建分布式集群后发下消息处理速度明显不如一台机器的性能 最近在linux下测试ActiveMQ5.11 ,使用两台电脑进行分布式布控,测试处理消息性能时,发现对消息的处理速度远不如一台机器工作处理速度,搭建分布式集群后哪里会影响其速度吗? 解决方案 有谁使用过的?教教怎么配置会提高些消息处理速度 解决方案二: MySQL Master Slave 数据同步,集群mysql master slave projectActiveMq master/sl

Cassandra数据库中为集群中的节点手动分配token

token 是Cassandra 集群中十分重要的概念,因为他影响着每个节点所管辖的数据的范围:我们就利用程序来生成token然后分配给每个节点: 我们用下面的代码来生成token: #! /usr/bin/python import sys if (len(sys.argv) > 1): num=int(sys.argv[1]) else: num=int(raw_input("How many nodes are in your cluster? ")) for i in r

集群-hadoop secondarynamenode未启动求助

问题描述 hadoop secondarynamenode未启动求助 本人搭建了hadoop集群,一个namenode ,两个datanode,启动后namenode和resource manger进程都启动了,但secondarynamenode未启动什么原因,两个datanode的datanode和nodemanager进程也都启动了,能正常的上传文件和下载文件,在hdsf-site配置中也配置了secondarynamenode.求助...另外stop hadoop的时候,datanode

hadoop集群-HADOOP集群主机上运行HADOOP相关命令回车后响应慢

问题描述 HADOOP集群主机上运行HADOOP相关命令回车后响应慢 HADOOP集群主机上运行HADOOP相关命令回车后响应慢,如集群主机上输入hivehbase shell或者hdfs dfs -ls / 回车后终端响应非常慢,至少10秒上才出来 Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.3.1-1.cdh5.3.1.p0.5/jars/hive-common-0.13.1-

淘宝主搜索离线集群完成Hadoop 2.0升级

搜索离线dump集群(hadoop&hbase)2013进行了几次重大升级: 2013-04 第一阶段,主要是升级hdfs为2.0版本,mapreduce仍旧是1.0;同时hbase也进行了一次重大升级(0.94.5版本),hive升级到0.9.0: 2013-09,2013-12 第二阶段,主要升级mapreduce到2.0版本即(YARN),hive升级到0.10.0,在13年年底的时候对hbase进行了一次小版本升级: 至此,dump离线集群完全进入2.0时代: 通过升级hdfs 2.0优

CentOS 7下配置hadoop 2.8 分布式集群

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,实现分布式文件系统HDFS,用于存储大数据集,以及可以以流的形式访问(streaming access)文件系统中的数据.Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算.本文描述了在CentOS 7下,基于三个节点安装hadoop 2.8,供大家参考. 一.基础环境描述 OS版本 [root@namenode ~]# more /etc/

Hadoop 学习第三天之集群安装(上)

Hadoop 学习之集群安装(上) 将配置的伪分布模式的虚拟机克隆两份并更名为centos_node2和centos_note3 分别打开三个虚拟机,第一个基本不需要配置了,现在主要配置centos_note2和centos_note3的配置. 1.   首先修改IP地址和主机名 因为centos是hadoop1和192.168.100.11,在这里设置centos_note2和centos_note3的主机名和IP地址分别为:hadoop2/192.168.100.12和hadoop3/192