基于本地Ubuntu主机的Hadoop系统环境搭建

将配置环境都放于/etc/profile/

1 检查是否已安装JDK

配置环境

$ export JAVA_HOME=/usr/local/jdk1.7

$ export PATH=$JAVA_HOME/bin:${PATH}

2 安装Hadoop

Hadoop包括3个主要工程:

Commons

HDFS

MapReduce

1)       解压缩

$ tar –xf hadoop-1.0.4-bin.tar.gz

2)       为hadoop的安装路径添加方便使用的符号链接

$ ln –s /usr/local/Hadoop-1.0.4/opt/hadoop

3)       配置环境

$ exportHADOOP_HOME=/usr/local/Hadoop-1.0.4

$ export PATH=$HADOOP_HOME/bin:$PATH

4)       在hadoop安装路径下,进入conf目录并编辑hadoop-env.sh文件,搜索JAVA_HOME并取消该行的注释,修改其路径并使其指向JDK的安装路径。

3 安装SSH

l  创建一对OpenSSH密钥对

$ ssh-keygen

l  将新生成的公钥复制至已授权秘钥列表

$ cp  .ssh/id_rsa.pub  .ssh/authorized_keys

l  连接本地主机

$ ssh localhost

The authenticity ofhost ‘localhost(127.0.0.1)’ can’t be establiched.

RSA key fingerprintis b6:0c:bd:57:32:b6:66:7c:33:7b:62:92:61:fd:ca:2a.

Are you sure you wantto continue connecting (yes/no)? yes

Warning: permanentlyadded ‘localhost’ (RSA) to the list of known hosts.

l  确认无密码的SSH可以运行

$ ssh localhost

4 测试

到目前为止,这都非常简单,只涉及下载和系统管理。现在,终于可以和hadoop打交道了。运行一个简单的例子,以表明hadoop正在运行。使用一个简单的hadoop示例程序计算圆周率的值。这主要是为了验证安装,同时展示MapReduce作业如此之快的执行速度。假设HADOOP_HOME/bin目录已存在于用户的PATH变量,键入一下命令。

$ hadoop jar hadoop/hadoop-example-1.0.4.jar pi 4 1000

5 3种模式

本地独立模式:如果不进行任何配置的话,这是hadoop的默认工作模式。在这种模式下,hadoop的所有组件,如NameNode,DataNode,JobTracker和TaskTracker,都运行在同一个java进程中。

伪分布模式:在这种模式下,hadoop的各个组件都拥有一个单独的java虚拟机,它们之间通过网络套接字通信。这种模式在一台主机上有效地产生了一个具有完整功能的微型集群。

完全分布模式:在这种模式下,hadoop分布在多台主机上,其中一些事通用的工作机,其余的是组件的专用主机,比如NameNode和JobTracker。

伪分布模式的配置

主要是修改hadoop安装包中conf目录下的*-site.xml文件,分别如下。

core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://localhost:9000</value>

</property>

</configuration>

hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

mapred-site.xml

<configuration>

<property>

<name>mapred.job.tarcker</name>

<value>localhost:9001</value>

</property>

</configuration>

变量dfs.default.name保存了NameNode的位置,HDFS和MapReduce组件都需要它。这也是它出现在core-site.xml文件中而不是hdfs.site.xml文件中的原因。

变量dfs.replication指定了每个HDFS数据块的复制次数。这里只有一台主机和一个伪分布模式的DataNode,将此值修改为1。

变量mapred.job.tracker保存了JobTracker的位置,因为只有MapReduce组件需要知道这个位置,所以它出现在mapred-site.xml文件中。

其中9000和9001是hadoop常用的默认端口,也可以修改为其他端口号。

6 配置根目录并格式化文件系统

伪分布模式,或者是完全分布模式,在启动hadoop集群之前都需要执行两个步骤。一是设置存储hadoop文件的根目录。二是格式化HDFS文件系统。

6.1 修改HDFS的根目录

创建hadoop保存数据的目录

$ mkdir /var/lib/hadoop

确保任何用户都可在此目录写入数据

$ chmod 777 /var/lib/hadoop

再次修改core-site.xml文件,添加下列属性

<property>

<name>hadoop.tmp.dir</name>

<value>/var/lib/hadoop</value>

</property>

由于我们将在hadoop中存储数据,同时所有组件都运行在本地主机,这些数据都需要存储在本地文件系统的某个地方。不管选择了何种模式,hadoop默认使用hadoop.tmp.dir属性作为根目录,所有文件和数据都将写入该目录。

例如,MapReduce使用根目录下的/mapred目录,HDFS使用/dfs目录。危险的是,hadoop.tmp.dir的默认值为/tmp,一些版本的Linux系统会在每次重新启动时删除/tmp内容。所以,明确规定数据留存的位置更为安全。

6.2 格式化NameNode

$ hadoop namenode –format

格式化NameNode的命令可以执行多次,但是这样会使现有的文件系统数据受损。只有在hadoop集群关闭和你想进行格式化的情况下,才能执行格式化。但在其他大多数情况下,格式化操作会快速、不可恢复地删除HDFS上的所有数据。它在大型集群上的执行时间更长。所以一定要小心!

7 启动并使用hadoop

在本地模式中,所有hadoop组件只在作业的生命周期运行;伪分布和全分布的hadoop集群与此不同,其组件以长期运行的进程的形式存在。在使用HDFS或MapReduce之前,需要事先启动所需组件。

1)$ start-dfs.sh

2)$ start-mapred.sh

关闭的时候先关闭mapred.sh,再关闭dfs.sh

8 通过浏览器查看hadoop活动

1)HDFS网络用户接口 50030端口

http://localhost:50030

2)MapReduce的网咯用户接口 50070

http://localhost:50070

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值