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 文件夹下统计出所有单词和词频。

中北大学 课程设计任务书 2014-2015 学年第 二 学期 "学 院: "软件学院 " "专 业: "软件工程 " "学 生 班 级: " " "学 生 姓 名: " "学号: " " "设 计 题 目: " 某汽车美容店管理系统数据库设计 " "起 迄 日 期: "6月8 日 ~ 6月 19 日 " "设 计 地 点: "软件学院机房 " "指 导 教 师: " " 下达任务书日期: 2015 年6月8日 课 程 设 计 任 务 书 "1.设计目的: " "按照关系型数据库的基本原理,根据数据库设计方法,综合运用所学的知识 " ",设计开发一个小型的数据库- 某汽车美容店管理系统数据库。熟练掌握相 " "关数据库的分析、设计、实现过程,以及在此数据库基础之上对存储过程及 " "触发器的设计及实现方法。 " "2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等): " " " "设计内容: " "某汽车美容店管理系统数据库包括以下功能:实现美容项目及价格信息管理 " "(录入、修改、删除等);实现客户信息、客户车辆信息管理;实现美容登 " "记和收费管理;创建存储过程,统计指定月份各种美容项目的美容次数;创 " "建存储过程,统计指定年份各客户的美容次数;创建存储过程,统计指定月 " "份美容店的收入情况;具有数据备份和数据恢复功能。 " "要求: " "数据库系统要根据设计内容和要求进行分析与设计,要考虑系统的整性约 " "束,系统中的数据表设计应合理、高效,尽量减少数据冗余。(规范到3NF或" "BCNF " "3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、" "实物样品等〕: " " " "根据设计内容和要求进行需求分析,分析出系统的主要功能和设计重点。 " "根据需求分析的内容在小组中合理划分模块。 " "数据库实现正确,相关存储过程及触发器设计合理、正确,能实现预期功能 " "。 " "提交软件阶段文档齐全,思路正确。 " "按格式要求,每人根据自己的工作写出课程设计说明书。 " 课 程 设 计 任 务 书 "4.主要参考文献: " "王珊、萨师煊. 数据库系统概论(第五版). 北京:高等教育出版社. . " "闪四清. SQL Server 2008基础教程.北京:清华大学出版社. . " "潘永惠. 数据库系统设计与项目实践:基于SQL Server 2008. 北京:科学出 " "版社. . " "刘金岭,冯万利,周泓. 数据库系统及应用实验与课程设计指导:SQL Server" "2008/21世纪高等学校计算机教育实用规划教材. 北京:清华大学出版社. . " "5.设计成果形式及要求: " " " "课程设计说明书 " "数据库、存储过程、触发器 " "6.工作计划及进度: " " " " " "2015年 " "需求分析 " "概念结构和逻辑结构设计 " "数据库实现 " "撰写课程设计说明书 " "验收答辩、成绩考核 " " " ----------------------- 数据库课程设计任务书-某汽车美容店管理系统数据库设计全文共3页,当前为第1页。 数据库课程设计任务书-某汽车美容店管理系统数据库设计全文共3页,当前为第2页。 数据库课程设计任务书-某汽车美容店管理系统数据库设计全文共3页,当前为第3页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值