Ubuntu下Hadoop的安装和配置
最近又需要要搭hadoop环境,所以开始学习,下面是我的笔记,仅供大家参考!
Hadoop安装:
- JDK1.6+
- 操作系统:Linux,Window和Unix也可以做Hadoop的开发,只有Linux支持生产。
- 去hadoop发布页面下载一个稳定的版本,然后解压到文件系统的某个地方:tar xzf hadoop-x.y.xz.tar.gz(本教程针对0.x和1.x,所以建议下载目前最新的稳定版本hadoop-1.2.1版本)
- 设置Java_HOME环境变量,如果没有设置过,可以在conf/hadoop-env.sh中指定:(先要将这一行的注释去掉)
| export JAVA_HOME = /usr/lib/java/jdk |
5. 创建一个指向Hadoop安装目录的环境变量是非常方便的(HADOOP_INSTALL),将Hadoop的二进制目录放到命令行路径上即可。
|
export HADOOP_INSTALL=/home/lsw/hadoop/ export PATH=$PATH:$HADOOP_INSTALL/bin |
|
注:其实这一步还是有问题的,通过在终端中调用上面的两个语句添加的环境变量是临时的,所以我们要通过其他方式。直接修改/ect/profile貌似行不通(因为该文件是只读的,应该可以人为修改成可读写吧),然后我就去找/home/下的一个.bashrc文件打开,通过名=值的方式[HADOOP_INSTALL=/home/lsw/hadoop-1.2.1]这种方式将所有的要添加的都放在文件末尾,保存。 然后貌似要重启啊,然后在终端中输入: echo $HADOOP_INSTALL输出值已经成功了 |
6. 检查hadoop的运行,终端中输入:hadoop version
|
这一步貌似也除了问题啊。直接输入会提示权限不够,但是我发现我的hadoop目录下的文件都是对lsw有权限的,然后我打开hadoop/bin/hadoop这个文件夹的属性发现还有一个授予他以可执行文件运行的权限,所以只有把这个权限也给他,才能正确运行,我估计后面好多文件都要给这种权限,应该有指令进行批量操作吧。 |
Hadoop的配置:
hadoop中的每个组建都是一个xml配置文件,核心属性在core-site.xml,hdfs的是hdfs-site.xml,mapreduce属性在mapred-site.xml,这写配置文件都在conf/目录下。
(老版本的这几个配置文件在一个hadoop_site.xml中,现已拆分)
要查看这些配置文件的一些样例,可以看share/hadoop/templates/conf/下面。
Hadoop的三种运行模式
- 本地模式:没有守护进程,可以在写MapReduce程序的时候进行测试和调试。程序运行在单一的JVM上(默认是本地模式)
- 伪分布模式:Hadoop的守护程序在本地的计算机上运行,因此是在小范围内模拟集群
- 完全分布模式:hadoop守护程序在一群机器上运行。
设置哪个模式运行hadoop,需要做两个事情:
1) 设置适当的属性(配置上面说的几个配置文件)
2) 启动Hadoop守护进程(第一个不需要)
本地模式:本地模式是默认的,不需要配置
伪分布模式:
1. 配置三个文件:(这个一定要先配置,不然后面不能启动守护进程)
|
<!--core-site.xml--> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost</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.tracker</name> <value>localhost:8021</value> </property> </configuration> |
2. SSH的配置(Secure Shell)
Hadoop无法区分伪分布模式和完全分布模式:SSH-ing只是在启动集群主机上的保护线程的时候才在每个主机上启动一个守护进程。主机是本地计算机的时候,伪分布模式 只是完全分布模式的一个特例。
我们要做的是:确保能够SSH到本地主机而且不需要输入密码去登陆。
安装SSH 比较简单,在Ubuntu下:
| sudo apt-get install ssh |
为了自动登陆,可以用空字符生成一个新的SSH密钥:
(用空字符串生成一个密钥写入到id_rsa中)
| ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa |
(将id_rsa.pub文件合并到authorized_keys中)
| cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
测试登陆:
| ssh localhost |
如果不需要输入密码登陆就成功。
3. HDFS文件系统格式化:
通过创建存储目录已经名称节点的用就数据结构的最初版本来创建一个空的文件系统。文件系统的大小不需要考虑,可以自动按需增加(最初不需要考虑数据节点,因为他是由名称节点管理的)
命令:
| hadoop namenode -format |
4. 开启和结束守护进程:
|
start-dfs.sh start-mapred.sh |
或者可以用(我们打开下面这个文件,发现她其实包含上面两条命令)
| start-all.sh |
第一个命令会启动三个守护进程:一个名称节点,一个二级名称节点,一个数据节点。
可以http://localhost:50030(有关jobtracker信息的页面)
或者http://localhost:50070(namenode信息页面)
结束守护进程:
|
stop-dfs.sh stop-mapred.sh |
或者只有一个
| stop-all.sh |
运行我们的测试例子:
这里我们先不要用伪分布模式,把几个配置文件里面的配置信息都删了。
然后运行命令:
| hadoop 我们的jar包 对应的类 输入文件的路径 输出路径(输出文件夹不能存在) |
例子:
| hadoop ~/workspace/jar/Hadoop-Demo.jar cn.lsw.hd.MaxTemperature ~/workspace/hadoop_demo_data/ ~/workspace/output |
然后就会执行,打开output目录,会有两个文件,一个是part-00000,一个是_SUCCESS文件。因为只有一个节点,所以只有一个part文件
过程中会打印出一些信息:
比如作业的ID :job_local_0001,,一个map任务,一个reduce任务(各自的ID )
最后有计数器(Counter),现实map的输入和输出,reduce的输入和输出。
当然,我们察看结果文件也可以通过下面的命令:
| cat [路径要全的]output/part-00000 |
完全分布模式暂时还没弄,因为我目前就一台电脑了。
Ubuntu下Hadoop的安装和配置的更多相关文章
- Linux(Ubuntu)下MySQL的安装与配置
转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...
- ubuntu下的openfire安装、配置、运行
openfire服务器 Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.您可以使用它轻易的构建高效率的即时通信服务器.Op ...
- Ubuntu下samba的安装和配置
samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba一. 一.更新源列表 打开&q ...
- Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)
一.准备 1.1创建hadoop用户 $ sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell $ sudo pass ...
- Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试
在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...
- [转载]Ubuntu下apache的安装与配置
原文地址:https://blog.csdn.net/gatieme/article/details/53025505 1 安装apache 在 Ubuntu 上安装 Apache,有两种方式 使用源 ...
- ubuntu下Tomcat7的安装和配置
和前几个软件一样,Tomcat 同样是由JAVA开发的,所以,在安装前一定要装好JDK. 大家可以到 http://tomcat.apache.org/download-70.cgi 下载最新的Tom ...
- Ubuntu下Android Studio安装、配置和使用
Ubuntu下使用Android Studio开发应用程序,首先需要安装该IDE. 情况1:Ubuntu下安装Android Studio 打开Terminal,执行下述指令: sudo apt-ad ...
- Ubuntu 下 Tomcat7 的安装和配置
tomcat下载地址:http://tomcat.apache.org/download-70.cgi 声明:下面的内容和原创笔者的博文的内容差不多,不一样的只是tomcat7的安装目录不同,我按照我 ...
随机推荐
- 解题:JLOI 2016 侦查守卫
题面 经典的$cov-unc$树形dp(这词是你自己造的吧=.=) 设$cov[i][j]$表示覆盖完$i$的子树后至少向外再覆盖$j$层的最小代价,$unc[i][j]$表示$i$的子树中还剩下至少 ...
- requests、BeautifulSoup、自动登陆示例
requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...
- Linux系统之路——python多版本共存问题(ps:自行切换python版本,pip安装遇到的一些问题)
经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...
- 前端PHP入门-027-数组常用函数-掌握级别
下面的函数一定要到熟悉甚至到掌握级别. 这些函数,也是面试中基础面试中最爱问到的问题. 函数名 功能 array_combine() 生成一个数组,用一个数组的值作为键名,另一个数组值作为值 rang ...
- 0-如何正确使用 Django的User Model
本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Mo ...
- JQ笔记-加强版
Query初级 一.介绍.基本写法 什么是JQ: 一个优秀的JS库,大型开发必备 JQ的好处: 简化JS的复杂操作 不再需要关心兼容性 提供大量实用方法 如何学习JQ: www.jquery. ...
- CF767 B. The Queue 贪心+细节
LINK 题意:一个业务开始时间为s,结束时间为f,一个人办护照的时间需要m分(如果在x时开始服务,且x+m==f那么还是合法的),你可以选择任意时间到达,但如果你和其他人同时到达,你要排在他的后面. ...
- How To Build Compelling Stories From Your Data Sets
How To Build Compelling Stories From Your Data Sets Every number has a story. As a data scientist, y ...
- 【VIJOS】P1512 SuperBrother打鼹鼠
[算法]二维树状数组 [题解] 1.树状数组尽量不要出现0,因此所有坐标+1 2.面积求法(默认1开始):(x1,y1)(x2,y2)=sum(x2,y2)-sum(x1-1,y2)-sum(x2,y ...
- 引用类型 ( 对象定义 )——Array 类型
本文地址:http://www.cnblogs.com/veinyin/p/7607293.html 一个数组中可以存储不同类型的值,可以混合存储数字.字符串.对象等 1 创建数组 1.1 构造函数 ...