准备工作:jdk1.6以上, hadoop-0.20.*, ssh
1)配置ssh无密码登录机器
在Hadoop分布式环境中,NameNode主节点需要通过 SSH 来启动和停止DataNode从节点上的各类进程。我们需要保证环境中的各台机器均可以通过SSH 登录访问,并且 Name Node 用 SSH 登录 Data Node 时,不需要输入密码,这样 Name Node 才能在后台自如地控制其它结点。可以将各台机器上的 SSH 配置为使用无密码公钥认证方式来实现。
现在流行的各类 Linux 发行版一般都安装了 SSH 协议的开源实现OpenSSH, 并且已经启动了 SSH 服务, 即这些机器缺省应该就是支持 SSH 登录的。如果你的机器缺省不支持 SSH, 请下载安装OpenSSH,以下是配置 SSH 的无密码公钥认证的过程。
首先,在NameNode主节点机器上执行命令,具体如下面的代码所示:
[root@localhost hadoop-0.20.203.0]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#ssh-keygen -t dsa //上面是错误的 ,正解为此行
Generating public/private dsa key pair.
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
09:1b:94:6a:98:35:3c:0b:d6:3f:b1:a5:30:4b:ce:14 root@localhost.localdomain
[root@localhost hadoop-0.20.203.0]#
|
然后,在NameNode主节点机器上将生成的公钥文件放到/tmp目录下,具体操作如下所示:
[root@localhost hadoop-0.20.203.0]# cp ~/.ssh/id_dsa.pub /tmp
[root@localhost hadoop-0.20.203.0]#
|
其次,将这个NameNode主节点的公钥文件放到4台DataNode从节点机器的/tmp目录下。
最后,我们在NameNode主节点和DataNode从节点机器上同时执行下面的命令:
[root@localhosttmp]# cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys
[root@localhosttmp]#
|
以上都做完了以后,我们就可以用SSH无密码的方式来登录这5台的机器了,可以用如下的方法进行一下简单测试:
[root@localhosttmp]# ssh 192.168.3.230
[root@localhosttmp]# ssh 192.168.3.231
[root@localhosttmp]# ssh 192.168.3.232
[root@localhosttmp]# ssh 192.168.3.233
[root@localhosttmp]# ssh 192.168.3.234
|
2)安装必须的软件
hadoop,jdk的安装 就不一一介绍了。google 下
唯一要提的是不发把hadoop安装到/home下,安装到 /opt 或者/usr/local都是不错的选择
3、配置集群
我们用变量$HADOOP_HOME代表Hadoop的主目录,它的值为: $HADOOP_HOME=/opt/hadoop-0.20.203.0。
1)将Java添加到Hadoop运行环境
首先,在NameNode主节点,编辑$HADOOP_HOM /conf/hadoop-env.sh文件,将Java加入到Hadoop的运行环境中,具体如下:
# The java implementation to use. Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
export JAVA_HOME=/opt/jdk1.7.0
|
2)配置NameNode主节点信息
其次,在NameNode主节点上,编辑$HADOOP_HOM /conf/core-site.xml文件,添加NameNode主节点的IP和监听端口的相关信息。
[root@localhost hadoop-0.20.203.0]# cat conf/core-site.xml
<?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://192.168.3.230:9000</value>
</property>
</configuration>
[root@localhost hadoop-0.20.203.0]#
|
3)配置数据冗余数量
再次,在NameNode主节点上,编辑$HADOOP_HOM /conf/hdfs-site.xml文件,配置数据冗余的数据的备份数量。
[root@localhost hadoop-0.20.203.0]# cat conf/hdfs-site.xml
<?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>
</configuration>
[root@localhost hadoop-0.20.203.0]#
|
4)配置jobtracker信息
然后,在NameNode主节点上,编辑$HADOOP_HOM /conf/mapred-site.xml文件,配置NameNode主节点上的jobtracker服务的端口。
[root@localhost hadoop-0.20.203.0]# cat conf/mapred-site.xml
<?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>192.168.3.230:9001</value>
</property>
</configuration>
[root@localhost hadoop-0.20.203.0]#
|
5)配置master信息
接下来,在NameNode主节点上,编辑$HADOOP_HOM /conf/masters文件,配置主节点的IP信息。
[root@localhost hadoop-0.20.203.0]# cat conf/masters
192.168.3.230
[root@localhost hadoop-0.20.203.0]#
|
6)配置slave信息
最后,在NameNode主节点上,编辑$HADOOP_HOM /conf/slave文件,配置从节点的IP信息,这个从节点可以有一个,也可以有多个,对于本例有4个slave。
[root@localhost hadoop-0.20.203.0]# cat conf/slaves
192.168.3.231
192.168.3.232
192.168.3.233
192.168.3.234
[root@localhost hadoop-0.20.203.0]#
|
7)分发Hadoop配置信息
以上操作都做完以后,我们在NameNode主节点上,将JDK和Hadoop软件分发到各DataNode从节点上,并保持安装路径与NameNode主节点相同,就像下面代码演示的一样:
scp -r jdk1.7.0 hadoop-0.20.203.0 192.168.3.231:/opt/
scp -r jdk1.7.0 hadoop-0.20.203.0 192.168.3.232:/opt/
scp -r jdk1.7.0 hadoop-0.20.203.0 192.168.3.233:/opt/
scp -r jdk1.7.0 hadoop-0.20.203.0 192.168.3.234:/opt/
|
8)格式化分布式文件系统
跟Windows和Linux一样,要想使用HDFS也需要事先格式化,否则文件系统是不可用的,具体方法见下面的代码:
[root@localhost hadoop-0.20.203.0]# bin/hadoop namenode -format
11/08/16 02:38:40 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost.localdomain/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.203.0
……
11/08/16 02:38:40 INFO util.GSet: VM type = 64-bit
11/08/16 02:38:40 INFO namenode.NameNode: Caching file names occuring more than 10 times
11/08/16 02:38:41 INFO common.Storage: Image file of size 110 saved in 0 seconds.
11/08/16 02:38:41 INFO common.Storage: Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.
11/08/16 02:38:41 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1
************************************************************/
[root@localhost hadoop-0.20.203.0]#
|
9)启动Hadoop集群
只需要在NameNode主节点上执行下面的start-all.sh命令即可,同时Master节点可以通过ssh登录到各slave节点去启动其它相关进程。
[root@localhost hadoop-0.20.203.0]# bin/start-all.sh
startingnamenode, logging to /opt/hadoop-0.20.203.0/bin/../logs/hadoop-root-namenode-localhost.localdomain.out
192.168.3.232: starting datanode, logging to /opt/hadoop-0.20.203.0/bin/../logs/hadoop-root-datanode-localhost.localdomain.out
192.168.3.233: starting datanode, logging to
……
/opt/hadoop-0.20.203.0/bin/../logs/hadoop-root-jobtracker-localhost.localdomain.out
192.168.3.233: starting tasktracker, logging to
……
[root@localhost hadoop-0.20.203.0]#
|
10)查看Master和slave进程状态
在NameNode主节点上,查看Java进程情况:
[root@localhost hadoop-0.20.203.0]# jps
867 SecondaryNameNode
735 NameNode
1054 Jps
946 JobTracker
[root@localhost hadoop-0.20.203.0]#
|
在4台DataNode从节点上,查看Java进程情况:
[root@localhost opt]# jps
30012 TaskTracker
29923 DataNode
30068 Jps
[root@localhost opt]#
|
各节点上进程都在的话,说明集群部署成功。
4)运行wordcount.java 程序
(1)先在本地磁盘建立两个输入文件file01 和file02:
$ echo “Hello World Bye World” > file01
$ echo “Hello Hadoop Goodbye Hadoop” > file02
(2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input
(3)将file01 和file02 拷贝到hdfs 中:
$ hadoop fs –copyFromLocal /home/username/soft/file0* input
(4)执行wordcount:
$ hadoop jar hadoop-0.20.1-examples.jar wordcount input output
(5)完成之后,查看结果:
$ hadoop fs -cat output/part-r-00000
Goodbye 1
Hadoop 2
Hello 2
World 2
注:伪分布只要配一台就好了,无密码SSH配置是必要的,master/slavers不用配置
-----------over
分享到:
相关推荐
本文档将详细介绍如何在Ubuntu 14.04环境下安装配置Hadoop 2.6.0版本,包括单机模式和伪分布式模式。无论您是初学者还是有一定经验的技术人员,本教程都将帮助您顺利完成Hadoop的安装和配置。 #### 二、环境准备 1....
1. 单机模式:在单机模式下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。 2. 伪分布式模式:Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个...
如果使用的是其他版本如Ubuntu 12.04或CentOS/RedHat,可以参考相应的安装教程。对于初学者,建议了解基本的Linux操作,这将有助于解决未来可能出现的问题。 **创建Hadoop用户** 在安装Hadoop前,需要创建一个名为...
虽然教程是基于Ubuntu 14.04,但同样适用于Ubuntu 12.04、16.04以及32位系统,同时也适用于CentOS/RedHat系统的类似配置。教程经过验证,适用于Hadoop 2.x.y系列,包括但不限于2.6.0、2.7.1和2.6.3等稳定版本。 **...
在Red Hat Enterprise Linux或CentOS系统上搭建Hadoop集群,首先需要确保以下软件准备: - **Hadoop**:根据需求选择合适的版本,如hadoop-0.20。 - **SSH**:确保所有节点间可以通过SSH无密码登录,方便管理。 - *...
1. 在`/mnt`目录下创建`cdrom`目录,然后挂载光驱到该目录,以便安装中文包。 2. 使用`mount -t auto /dev/cdrom /mnt/cdrom`命令挂载光驱,注意光驱可能是只读的。 3. 按照指定顺序通过`rpm -ivh`命令安装中文包。 ...
它覆盖了Hadoop单机安装以及集群安装的过程,并且适用于CentOS 5/RedHat 5.2(32位/64位)及Ubuntu等操作系统。 #### 二、Hadoop单机安装配置 ##### 1. Linux基础环境搭建 - **Linux安装**:通常推荐使用VMware等...
【CentOS7下安装Zookeeper单机版】 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和...
Hadoop通常在Linux上运行,推荐使用Ubuntu 10.04,但其他如CentOS、Redhat、Fedora等也是可行的。安装过程在此不再赘述。 创建Hadoop集群通常需要至少三个节点:一个Master节点,两个Slave节点。Master节点负责运行...
选择Linux发行版没有严格限制,CentOS、Redhat、Fedora等都可以,关键是要熟悉并适应所选系统。安装好第一个虚拟机节点后,为了快速创建其他节点,可以通过复制已有的虚拟机镜像并进行适当的修改,如更改主机名,以...
在RedHat7局域网环境下,安装离线Ambari的准备工作还包括了软件包的下载和环境搭建。安装前的环境搭建工作是安装Ambari的基础和前提,它包括了安装操作系统、配置网络环境、设置静态IP地址、配置主机名和主机映射等...
【标题】:“CentOS7下安装Kafka1” 【描述】:这个教程主要讲述了如何在CentOS 7操作系统上安装Apache Kafka的单机版本。Kafka是一个分布式流处理平台,常用于构建实时数据管道和流应用程序。在这个场景中,我们...
安装过程中,需要将lib目录下的所有JAR文件添加到Hadoop的类路径(CLASSPATH)中,确保Hadoop能正确识别并加载所有依赖。同时,系统环境需要满足一定的硬件和软件要求,如Java环境(Java 6或更高版本),并且系统...
* 操作系统:Linux(centos6.5/7 或者 redhat6.X) * Java环境:jdk6以上 * 机器的内存建议在4G及以上 收获预期: * Zookeeper的基本操作 * Zookeeper的工作原理 * 基于Zookeeper的分布式系统开发实践 * 日常的...
- **操作系统**:CentOS/RedHat 5或CentOS/RedHat 6 - **环境依赖**:EasyHadoop基于CodeIgniter(PHP5)框架,需要Mysql存储服务器信息和配置。因此,运行EasyHadoop的服务器需预装LAMP(Linux, Apache, Mysql, Php...
Ubuntu 10.04是本文中提到的一个版本,实际上任何版本的Linux系统,如CentOS、RedHat、Fedora等,都可以作为Hadoop集群的节点操作系统。 构建一个Hadoop集群至少需要3个节点:一个主节点(Master)和两个从节点...
CDH集群的搭建要求操作系统为RedHat或CentOS,版本号为6或7。整个集群中的操作系统版本需要保持一致,以确保软件兼容性和稳定性。 #### 软件要求 - **JDK**:需要安装Oracle JDK版本。 - **Cloudera Manager**:...
10. HBase可以在CentOS、Ubuntu和RedHat等Linux系统上安装。分布式模式通常建议至少3个节点,虚拟分布式模式需要1个节点。安装前需先安装操作系统和JDK。 11. HDFS文件系统在NameNode启动时会进入安全模式,用于...
1. **环境准备**:首先,确保你的 CentOS7 或 Redhat7 系统已经更新到最新,并安装了必要的依赖,如 JDK、GCC、Python 等。 2. **Ambari 安装**:下载 Ambari 的 2.7.5.0 版本,然后通过命令行进行安装。通常,这...