Hadoop单机模式安装

因为最近想做一个基于豆瓣图书分析的展示系统,hadoop处理海量数据有巨大优势,于是在一无所知在Ubuntu下安装hadoop,历经各种曲折,先将经验与大家博友分享,

首先,了解Hadoop的三种安装模式:

1. 单机模式. 单机模式是Hadoop的默认模。当配置文件为空时,Hadoop完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

2. 伪分布模式. Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

3. 全分布模式. Hadoop守护进程运行在一个集群上。

现在我搭建的环境是     (1)JDK1.8.0_45  (2)   ubuntu-14.04.2-desktop-i386 (3)hadoop2.7.0  都算比较新的版本   废话少说了,开始搭建。

一:在Ubuntu下创建hadoop用户组和用户(为了便于以后联机)

1:增加用户名和用户组

kaka@Rev$ sudo  addgroup  hadoop
kaka@Rev$ sudo  adduser  –ingroup  hadoop  hadoop
2:增加hadoop用户为管理员权限,打开/etc/sudoers(因为后期会有大量的pemission)

kaka@Rev$ sudo  vi /etc/sudoers

在root  ALL=(ALL:ALL)  ALL下添加hadoop  ALL=(ALL:ALL)  ALL


二、配置SSH(其实作为单机模式和伪分布模式是不需要的)

配置SSH是为了实现各机器之间执行指令无需输入登录密码。务必要避免输入密码,否则,主节点每次试图访问其他节点时,都需要手动输入这个密码。

SSH无密码原理:master(namenode/jobtrack)作为客户端,要实现无密码公钥认证,连接到服务器slave(datanode/tasktracker)上时,需要在master上生成一个公钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的slave上。当master通过SSH连接slave时,slave就会生成一个随机数并用master的公钥对随机数进行加密,并发送给master。Master收到密钥加密数之后再用私钥解密,并将解密数回传给slave,slave确认解密数无误后就允许master进行连接了。这就是一个公钥认证的过程,期间不需要用户手工输入密码。重要过程是将客户端master复制到slave上。

1:在线安装ssh

先连接到hadoop账户下 su hadoop,然后安装

hadoop@Rev$ sudo apt-get install openssh-server  
此时可能会报错就是ssh server版本过高的问题

正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
  openssh-server : 依赖: openssh-client (= 1:6.6p1-2ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
这时候只需要将原来版本覆盖成需要版本即可
hadoop@Rev$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
2:启动ssh,查看是否装好
hadoop@Rev$ sudo  sudo /etc/init.d/ssh start 
hadoop@Rev$ ps -e |grep ssh 
3 作为一个安全通信协议(ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式),使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:

hadoop@Rev$sudo  ssh-keygen -t rsa -P "" 

回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的前者为私钥,后者为公钥

进入~/.ssh/目录下,将公钥id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的(authorized_keys 用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):

hadoop@Rev$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
以后就可以利用ssh不用密码登陆机器:

  1. hadoop@REV:~$ ssh localhost  
  2. Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-27-generic-pae i686)  
  3.   
  4.  * Documentation:  https://help.ubuntu.com/  
  5.   
  6. 512 packages can be updated.  
  7. 151 updates are security updates.  
  8.   
  9. Last login: Mon Mar 11 15:56:15 2013 from localhost  
  10. hadoop@REV:~$ exit   
这时候记得输入 exit退出,因为你控制的是远程的机器。

三:安装java

1:从网上获取linux包tar.gz的然后解压到/usr/java目录下

  sudo tar zxvf jdk.tar.gz -C /usr/java/ 

2:配置环境变量(我这里配置的是整个系统的 etc/profile)
在etc/profile 最后加上
export JAVA_HOME=/usr/java/jdk1.8.0_45
export JRE_HOME=/usr/java/jdk1.8.0_45/jre 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
然后source一下这个文件即可
3:检查是否装好
hadoop@Rev$ java -version
如果现实java版本号就说明成功
 
 
四 安装hadoop
1:从网上获取linux包tar.gz的然后解压到/usr/hadoop目录下
 sudo tar zxvf hadoop.tar.gz -C /usr/hadoop/ 
2:要确保所有的操作都是在用户hadoop下完成的,所以将该hadoop文件夹的属主用户设为hadoop(因为以后的输入输出文件都在这里面,而且还要权限改一些配置参数,因此这一步很重要)
hadoop@REV$ sudo chown -R hadoop:hadoop /usr/hadoop  
3:配置环境变量
  (1)配置hadoop用户下的环境变量 并source一下
sudo gedit ~/.bashrc

在最后加上如下:

#HADOOP VARIABLES START

export JAVA_HOME=/usr/java/jdk1.8.0_45

export HADOOP_INSTALL=/usr/hadoop/hadoop-2.7.0

export PATH=$PATH:$HADOOP_INSTALL/bin

export PATH=$PATH:$HADOOP_INSTALL/sbin

export HADOOP_MAPRED_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_HOME=$HADOOP_INSTALL

export HADOOP_HDFS_HOME=$HADOOP_INSTALL

export HADOOP_YARN_HOME=$HADOOP_INSTALL

export HADOOP_CONF_DIR=$HADOOP_ INSTALL /etc/hadoop

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

#HADOOP VARIABLES END

(2)配置hadoop目录下 etc/hadoop/hadoop-env.sh 最后source一下
在java_home那边加上
export JAVA_HOME=/usr/java/jdk1.8.0_45

export HADOOP_INSTALL=/usr/hadoop/hadoop-2.7.0

export PATH=$PATH:/usr/hadoop/hadoop-2.7.0/bin

五:单机模式配置成功需要验证

1:显示一下hadoop版本

  1. hadoop@REV:/usr/hadoop$ hadoop version  
  2. Hadoop 2.7.0  
  3. Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782  
  4. Compiled by hortonfo on Thu Jan 31 02:03:24 UTC 2013  
  5. From source with checksum c720ddcf4b926991de7467d253a79b8b  
  6. hadoop@REV:/usr/hadoop$   

2:测试一下例子现在运行一下hadoop自带的例子WordCount来感受以下MapReduce过程)
(1)在hadoop目录下新建input文件夹,并在文件夹里面创建几个txt文档
hadoop@REV$ sudo mkdir /usr/hadoop/input 
(2) 执行WordCount文件
<pre name="code" class="plain" style="line-height: 21.59375px;">hadoop@REV:/usr/hadoop$ <span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;">Hadoop jar </span><span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; white-space: pre-wrap;">/usr/hadoop/hadoop2.7.0/share/hadoop/mapreduce/sources/</span><span style="line-height: 1.8em; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; white-space: pre-wrap;">hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output</span>
 
 
 成功后会在/usr/hadoop/output 文件夹下统计出所有单词和词频。 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值