Hadoop 的搭建
Hadoop 的下载地址:
http://www.apache.org/dyn/closer.cgi/hadoop/core/
版本:hadoop0.20.1
JDK 的安装:
要求必须安装 jdk1.5.07 以上的版本。
分步式环境的搭建:
1、 硬件环境
我们采用了 3 台机器来构建,都安装的是 ubuntu10系统,并且都有一个名为 “sam“的帐号,如下
主机名称:hdfs1 ip:192.168.2.227
主机名称:hdfs2 ip:192.168.1.247
主机名称:hdfs3 ip:192.168.1.249
功能:NameNode,JobTracker
功能:DataNode,TaskTracker
功能:DataNode,TaskTracker
重点:修改 3 台机器的/etc/hosts,让彼此的主机名称和 ip 都能顺利解析,且机器名不一样。
127.0.0.1 localhost
127.0.1.1 sam-desktop
192.168.2.227 hdfs1
192.168.1.247 hdfs3
192.168.1.249 hdfs2
2、 每台机器都要安装 java 环境,
我们的路径统一为 “ /usr/java/jdk1.6.0_21“, 并添加到系统环境变量 sudo gedit /etc/profile
JAVA_HOME=/usr/java/jdk1.6.0_21
export JAVA_HOME
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib.dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
3、 下载 hadoop0.20.1,将 hadoop
解压到/usr/hadoop/,建议最好也将 hadoop 的目录添加到环境变量里面去:
HADOOP_HOME=/usr/hadoop/hadoop-0.21.0
export HADOOP_HOME
HADOOP_CONF_DIR=$HADOOP_HOME/conf #这是 hadoop 的配置文件目录
export HADOOP_CONF_DIR
HADOOP_LOG_DIR=$HADOOP_HOME/log #存放运行日志目录
export HADOOP_LOG_DIR
export PATH=$PATH:$HADOOP_HOME/bin
sam@sam-desktop$>运行 ssh-keygen -t rsa,根据屏幕提示直接选择“回车”
>会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
以上配置完成后,执行一下 ssh localhsot,确认你的每台机器都可以使用 ssh
5、 拷贝authorized_keys
将 master 服务器上的 authorized_keys 的内容加到 slave 两台机器的 authorized_keys 文件中。让 master 也可以
不需要密码访问 2 台 slave 服务器。
sudo scp authorized_keys hdfs2:/home/sam/.ssh/
sudo scp authorized_keys hdfs3:/home/sam/.ssh/
ssh hdfs2
ssh hdfs3
6、 修改 hadoop 的[conf/masters]、[conf/slaves]
接下来,我们要修改 hadoop 的[conf/masters]、[conf/slaves]这 2 个文件:
Master 设置(<HADOOP_HOME>/conf/masters):hdfs1
Slave 设置(<HADOOP_HOME>/conf/slaves):hdfs2 hdfs3
export JAVA_HOME=/usr/java/jdk1.6.0_21
8、 修改core-site.xml,hdfs-site.xml,mapred-site.xml
修改core-site.xml(hdfs和mapreduce中很普通的I/O设置),hdfs-site.xml(datanode配置|HDFS后台程序设置的配置:名称节点,第二名称节点和数据节点),mapred-site.xml,有关 hadoop 的性能优化调整,需要研究
<configuration>
<property>
<name>fs.default.name</name>//你的 namenode 的配置,机器名加端口
<value>hdfs://hdfs1:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>//数据需要备份的数量,默认是三
<value>3</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hadoop-0.21.0/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/hadoop-0.21.0/namenode/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>//Hadoop 的默认临时路径,这个最好配置
<value>/usr/hadoop/hadoop-0.21.0/tmp/</value>
</property>
<property>
<name>dfs.block.size</name>//block 的大小,单位字节,后面会提到用处,必须是 512 的倍数,因为采用crc 作文件完整性校验。
<value>5120000</value>
<description>The default block size for new files.</description>
</property>
</configuration>
<configuration>
<property>
<name>mapred.job.tracker</name>//你的 JobTracker 的配置,机器名加端口
<value>hdfs1:9001</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.child.java.opts</name>//java 虚拟机的一些参数可以参照配置
<value>-Xmx512m</value>
</property>
</configuration>
然后将 hadoop 的整体环境拷贝到 hdfs2、hdfs3 上面去
scp -r /usr/hadoop/hadoop-0.21.0 hdfs2:/usr/hadoop/hadoop-0.21.0
scp -r /usr/hadoop/hadoop-0.21.0 hdfs3:/usr/hadoop/hadoop-0.21.0
在 hdfs1 这个 namenode 上面格式化一个新的分布式文件系统 HDFS,就是 hdfs-site.xml 文件中指定
的 hadoop.tmp.dir 路径
<HADOOP_HOME>/bin/hadoop namenode –format
11、启动 Hadoop
到此大致上就完成了 hadoop 环境布署
启动 hadoop:<HADOOP_HOME>/bin/start-all.sh
停止 hadoop:<HADOOP_HOME>/bin/stop-all.sh
说明:
(1) 执行启动 Hadoop 进程后,
> 在 master 服务器会启动 3 个 java 进程,分别的 NameNode,SecondNameNode,JobTracker,在 LOG 目录下
会产生 2 个文件,分别对应 NameNode 的运行日志和 JobTracker 的运行日志,
> 在 slave 服务器会启动 2 个 java 进程,分别为 DataNode,TaskTracker,,在 LOG 目录下会产生 2 个文件
分别对应 DataNode 的运行日志和 TaskTracker 的运行日志,可以通过查看日志分析 hadoop 的启动是
否正确。
(2) 通过 IE 浏览分布式文件系统中的文件
> 访问 http://hdfs1:50030 可以查看 JobTracker 的运行状态。
> 访问 http://hdfs2:50060 可以查看 TaskTracker 的运行状态。
> 访问 http://hdfs1:50070 可以查看 NameNode 以及整个分布式文件系统的状态。
修改 Linux主机名
第一步:
#hostname myhost //只是临时修改 重启后会恢复成原来的设置
第二步:
vi /etc/sysconfig/network
修改其中的hostname
wq 退出
第三步:
vi /etc/hosts 修改中间一个
wq 退出
对于ubuntu
第一步:
sudo gedit /etc/hostname
第二步:
sudo gedit /etc/hosts
找到127.0.1.1这一行,把它右边的旧主机名改成你的新主机名即可。重新启动计算机生效。
ssh keygen 免輸入密碼
懶得打密碼, 以 key 做認證登錄.
步驟如下:
* ssh-keygen -t rsa 或 ssh-keygen -d (dsa) => 產生出 id_rsa, id_rsa.pub
* scp id_rsa.pub server_hostname:~/.ssh/
* ssh server_hostname
* cat .ssh/id_rsa.pub >> .ssh/authorized_keys 即可
* 這樣子就可以 key 認證登入, 不需輸入密碼.
注意: gen 時會問 Enter passphrase (empty for no passphrase): # 此處直接 enter 跳過,下次才不會詢問password
簡單解說一下:
* id_rsa: private key
* id_rsa.pub: public key
將 public key(id_rsa.pub) 拷貝到遠端的電腦後, 加到那 user 的 .ssh/authorized_keys 中.
之後連線時, 就會用本機的 private key(id_rsa) 與遠端電腦的 public key(authorized_keys) 做認證, 確認完成就可以直接登入, 不需輸入帳號密碼, 而且也比較安全.
配置服务端
启动SSH服务端很简单只需要运行
# sshd
就可以了。或者在/etc/rc.conf中加入
sshd_enable="YES"
就可以在每次启动时自动运行SSH服务端了。
SSH服务端的配置使用的配置文件是“/etc/ssh/sshd_config”,并且OpenSSH1.x和2.x的服务器配置文件均为此文件。
配置客户端
客户端想连接远程服务器只需要输入
#ssh 域名(或ip)
就可以了
比如想以fdy84用户连接IP地址为192.168.0.6的一台远程服务器 需要键入
# ssh 192.168.0.6 -l fdy84
只要配置正确就可以连上远端的服务器了
基于Eclipse的Hadoop应用开发环境的配置
基于Eclipse的Hadoop应用开发环境的配置
第一步:下载hadoop-0.20.1-eclipse-plugin.jar
界面是这样滴,选择Window->Open Perspective,可见到一个窗口,里面有一个小象图标:Map/Reduce,点击它,会打开一个新的Perspective。然后点击Window->Show View,可以打开一个View,如图1所示,
图1
在这个View中,我们可以创建一个或多个Hadoop运行环境,这个运行环境,有点像,在Eclipse中配置JDBC数据库连接一样。如图2,图3所示:
配置完成以后,显示如图1左边的树形结构一样,这很像在Eclipse配置了,Tomcat的Server项目一样
你点击view中的小象图标,很可能会报一个错误:
Cannot connect to the Map/Reduce location: sam@sam-desktop
java.io.IOException: Unknown protocol to name node: org.apache.hadoop.mapred.JobSubmissionProtocol
at org.apache.hadoop.dfs.NameNode.getProtocolVersion(NameNode.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:452)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:888)
我也遇到这个问题,很让我郁闷,我愿想是不是我的服务器哪里出了问题?后来才知道,是我的端口配置错误了,我在hdfs-site.xml中不是配置了:
<property>
<name>fs.default.name</name>
<value>hdfs://hdfs1:9000</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://hdfs1:9001</value>
</property>
这两个端口很重要,9000是namenode的监听端口,而9001是jobtracker的监听端口,在图3的界面上新建DFS location时候,可以看到Map/Reduce Master,当时我还没弄明白,这是什么意思,现在才知道,这是jobtracker所在机器及监听端口,于是我设置成:host=sam-desktop,port=9001,而DFS Master中勾选Use M/R Master Host(意思是:是否使用与JobTracker相同的主机?)我的当然是勾上。端口当然也就是9000了,即host= sam-desktop,port=9000。
于是,连接the Map/Reduce location就不会再出现错误了。下面的用户是sam,因为我的所有的ubuntu都是sam的用户的。
查看这个两个端口是否工作正常
我们可以用Web的方式来查看这个两个端口是否工作正常,namenode的Web访问端口是50070,由于我的namenode是建立在hdfs1上的,因此,我要用Web方式访问namenode,那么在浏览器中敲入地址:http://hdfs1:50070,你就会看到一个页面,如下图4:
而9001是也是可以用Web方式来访问的,我的namenode和jobtracker是在一台机器上的,网址是http://hdfs1:50030,如果你配置成功,可以打开如下图5的页面:
tasktracker可以Web方式访问,由于我的tasktracker是建立在hdfs2上的,因此网址是:http://hdfs2:50060,如果你配置成功,可以打开如下图6的页面:
<p
分享到:
相关推荐
Hadoop作为一个开源的大数据处理框架,其核心组件包括HDFS(分布式文件系统)和MapReduce(并行计算模型)。在0.20.1版本中,Hadoop已经具备了处理大规模数据的能力,但同时也需要用户对其配置有深入理解,以确保...
4. **Hadoop配置**:了解如何通过XML配置文件设置Hadoop集群参数,例如`core-site.xml`, `hdfs-site.xml`, 和 `mapred-site.xml`。 5. **Hadoop MapReduce编程模型**:深入理解MapReduce的生命周期,包括map阶段、...
该压缩包文件“hadoop-0.20.1.tar.gz”包含了Hadoop 0.20.1的所有源代码、配置文件、文档和库文件。下载这个版本可能是因为某些用户需要在旧系统上运行或者对比不同版本的功能差异。 Hadoop的核心组件主要包括两个...
配置伪分布式模式通常涉及到修改`conf/core-site.xml`和`conf/hdfs-site.xml`文件,设置`fs.defaultFS`为`hdfs://localhost:9000`,并指定本地数据存储路径。 接下来,打开Eclipse并创建一个新的Java项目。项目的...
### Hadoop 完全分布式配置指南 #### 一、系统环境配置 为了成功搭建Hadoop集群,我们需要确保所有参与的机器都有适当的系统环境配置。本文档假设存在三台机器,并且都安装了Ubuntu操作系统。 - **主机:** 192....
接着,修改Hadoop的配置文件,包括`hadoop-env.sh`、`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`,以适应你的环境。启动Hadoop服务,确保所有进程都在运行。 7. **安装HBase**:HBase是基于Hadoop的...
Hadoop的核心配置文件位于`/hadoop/conf`目录下,主要包括`core-site.xml`、`hadoop-env.sh`、`hdfs-site.xml`和`mapred-site.xml`。这些文件定义了Hadoop运行的各项参数。例如,`core-site.xml`用来设置Hadoop临时...
Hadoop是Apache软件基金会的一个项目,其核心设计包括两个主要组件:HDFS(Hadoop分布式文件系统)和MapReduce。HDFS为大数据提供了分布式存储,而MapReduce则是一个用于并行处理这些数据的编程模型。MapReduce的...
- **配置Hadoop**:修改conf目录下的配置文件,包括core-site.xml、hadoop-env.sh、hdfs-site.xml和mapred-site.xml。例如,设置JAVA_HOME环境变量,指定HDFS的名称节点等。 4. **核心配置文件详解**: - **core-...
它通常会涵盖Hadoop的安装步骤、基本概念,如分布式文件系统和MapReduce模型,以及如何编写和运行Hadoop作业。通过这个手册,初学者可以快速上手,理解Hadoop的基础操作和工作原理。 最后,**"hadoop入门学习资料...
Hadoop是一个分布式文件系统,它允许存储和处理海量数据,而Eclipse则是一个强大的Java开发工具,通过特定的插件可以支持Hadoop开发。本文档将详细介绍如何在Eclipse 3.3.2中安装和配置Hadoop插件,以及如何利用这个...
这些配置包括但不限于`core-site.xml`、`hdfs-site.xml`、`mapred-site.xml`等核心配置文件的设置,以及启动Hadoop服务的过程。通过以上步骤,我们可以成功搭建一个功能完善的Hadoop集群环境,用于数据处理和分布式...
在完成Hadoop的解压后,需修改`hadoop-0.20.1/conf`目录下的多个配置文件,包括但不限于: - `hadoop-env.sh`: 配置Java的路径。 - `core-site.xml`: 设置HDFS的相关参数,如NameNode和DataNode的地址。 - `hdfs-...
本文将详细介绍如何在 Ubuntu 操作系统上安装并配置 Hadoop 分布式计算框架。本教程使用的具体版本为 Hadoop-0.20.1 和 Ubuntu 9.10。通过本教程的学习,您将能够成功地在本地或集群环境中搭建 Hadoop 平台。 #### ...
### Hadoop在Windows下的环境配置知识点详解 #### 一、前言 Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集。虽然Hadoop主要针对Linux平台进行了优化和支持,但在开发阶段,Windows平台也可以作为支持...
3. 修改 Hadoop 配置文件,包括 hadoop-env.sh、core-site.xml、hdfs-site.xml 和 mapred-site.xml 修改 Hadoop 配置文件 1. 修改 hadoop-env.sh,设置 JAVA_HOME 变量 2. 修改 core-site.xml,设置 fs.default....
- 修改`core-site.xml`配置文件。 - 示例配置如下: ```xml <name>fs.defaultFS <value>hdfs://localhost:9000 ``` - 这个配置指定了Hadoop集群的默认文件系统,即本地的HDFS实例。 4. **...