chkconfig [--level 运行级别] iptables off
/etc/sysconfig/network
修改集群每个主机的主机名/etc/hosts
文件,添加每台主机的地址映射(注意:配置完全分布式的Hadoop集群时,应当先准备集群分发脚本xsync和ssh免密登录)
HADOOP_HOME=路径
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH
然后:
source /etc/profile
Standalone Operation
By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.
本地模式是在Linux的文件系统上执行程序。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*
$ mkdir wcinput
$ cd wcinput
$ touch wc.input
编辑wc.input
文件,随意输入几个单词,然后运行案例并查看结果:
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount wcinput wcoutput
$ cat wcoutput/*
Pseudo-Distributed Operation
Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process.
伪分布式模式是在Hadoop的HDFS文件系统上执行程序。因此采用伪分布式运行模式需要修改Hadoop的配置文件,包括:
<!-- 指定HDFS中NameNode的地址 -->
fs.defaultFS</name>
hdfs://Hadoop01:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录,不改也能运行 -->
hadoop.tmp.dir</name>
/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
<!-- 指定HDFS副本的数量,默认为3,伪分布式只有一台主机,因此改为1 -->
dfs.replication</name>
1</value>
</property>
etc/hadoop/hadoop-env.sh
# When running a distributed configuration it is best to
# set JAVA_HOME in this file, so that it is correctly defined on
# remote nodes.
export JAVA_HOME=JAVA_HOME绝对路径
启动集群步骤:
$ bin/hdfs namenode -format
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
启动集群后查看java进程:
$ jps
3720 Jps
3640 DataNode
3545 NameNode
完全分布式的集群最少需要三台主机,以下面表格为例:
主机 | Hadoop01 | Hadoop02 | Hadoop03 |
---|---|---|---|
HDFS | NameNode、DataNode | DataNode | SecondaryNameNode、DataNode |
YARN | NodeManager | ResourceManager、NodeManager | NodeManager |
注意:NameNode
、ResourceManager
和ResourceManager
不要在相同主机上。
完全分布式的集群配置与前面伪分布式的配置基本一致,需要增加的SecondaryNameNode的主机地址配置并修改副本数:
<!-- 指定HDFS副本的数量,默认为3 -->
dfs.replication</name>
3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
dfs.namenode.secondary.http-address</name>
hadoop03:50090</value>
</property>
然后使用集群分发脚本xsync,将相应的软件和配置文件分发到其他主机即可。
完全分布式集群的启动:
etc/hadoop/slaves
文件,增加集群所有主机名:Hadoop01
Hadoop02
Hadoop03
然后使用xsync
将slaves
文件分发到所有主机。
群起集群的指令:
# 如果第一次启动,格式化NameNode
$ hdfs namenode -format
# 启动HDFS
$ sbin/start-dfs.sh
启动Hadoop集群后,实际启动的是HDFS分布式文件系统,为了测试集群,可以在HDFS文件系统上测试创建、删除文件等操作
还可以启动Yarn并测试MR程序
HDFS-web:http://主机地址:50070/dfshealth.html#tab-overview 查看HDFS文件系统、集群的状态等。