开启hadoop之旅的大门–安装配置篇
by 三江小渡
主要写了JDK配置和hadoop的安装配置。windows下安装也类似,只是需要一个windows模拟linux环境的软件Cygwin。不过在windows下安装JDK很方便了,就不用参照linux安装JDK的步骤了。
Linux安装JDK步骤:
1. 先从网上下载jdk1.7或者1.6,去SUN的官方网站,尽量装1.6的版本。下载后安装:
给所有用户添加可执行的权限
#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin
#./jdk-1_5_0_02-linux-i586.rpm.bin
一般这样就会安装好,会自动执行rpm安装,如果没有安装请自行rpm安装rpm后缀的jdk安装程序:
此时会生成文件jdk-1_5_0_02-linux-i586.rpm,同样给所有用户添加可执行的权限
#rpm -ivh jdk-1_5_0_02-linux-i586.rpm
出现安装协议等,按接受即可。
Linux安装JDK步骤2.设置环境变量。
#vim /etc/profile
在最后面加入
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出。
Linux安装JDK步骤3.在终端使用echo命令检查环境变量设置情况和检查JDK是否安装成功。
sourece /etc/profile
#echo $JAVA_HOME
#echo $CLASSPATH
#echo $PATH
#java -version
如果看到JVM版本及相关信息,即安装成功!
然后就是安装hadoop了,先去官网下载个stable版本0.20.2,希望你下载这个hadoop-0.20.2.tar.gz。然后上传到你的服务器解压缩这个tar包:
#tar -zxvf hadoop-0.20.2.tar.gz
希望你这个包是安装在自己的当前用户目录,而且需要你当前用户不是root,否则会遇到不识别参数-jvm 或者heap溢出什么什么的各种问题,严格按步骤来做。
然后修改hadoop目录里conf目录下的hadoop-env.sh里:
# The java implementation to use. Required.
export JAVA_HOME=/usr/java/jdk1.6.0_31
这个路径根据实际情况自行修改。
然后你可以进行单机版的测试了,看看是否安装成功:
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output ‘dfs[a-z.]+’
$ cat output/*
注意这个执行目录默认的是hadoop的根目录,你会发现有hadoop-*-examples.jar这个一个文件的目录。没有错误提示就是安装成功了。
下边进行单机伪分布模式的安装:
需要你先测试#ssh localhost 是否需要密码,如果需要密码需要进行免密码的操作,因为每次输入密码会比较烦,尤其是将来布置集群的时候更烦。没有ssh,ubuntu系统就sudo apt-get install ssh 安装一下。
$ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
然后再执行ssh localhost 看是否需要密码,不需要就是成功了。这个地方的localhost需要你的服务器配置有hosts文件,如果没有自行配置:vim /etc/hosts ,里边添加一句 127.0.0.1 localhost 即可。
有可能你需要重启ssh服务:service sshd restart,这个命令需要root权限,如果提示没有这个命令,需要你自行到/etc/rc.d/init.d 里边找到sshd ,然后执行 ./sshd restart 即可。如果你还是ssh链接需要密码,你需要查看ssh的配置/etc/ssh/sshd_config,将这两项设置如下:RSAAuthentication yes 和 PubkeyAuthentication yes,一般默认的就是yes,改好设置再次尝试。这里有一个前提,用ssh链接目标服务器的时候默认的用户名就是当前登录的用户名,所以这是hadoop搭建集群一直强调的需要所有机器的用户名一致。另外确保.ssh文件权限700,authorized_keys文件权限600。
然后配置hadoop/conf下的3个文件:
conf/core-site.xml:
<configuration> |
<property> |
<name>fs.default.name</name> |
<value>hdfs://localhost:9000</value> |
</property> |
</configuration> |
conf/hdfs-site.xml:
<configuration> |
<property> |
<name>dfs.replication</name> |
<value>1</value> |
</property> |
</configuration> |
conf/mapred-site.xml:
<configuration> |
<property> |
<name>mapred.job.tracker</name> |
<value>localhost:9001</value> |
</property> |
</configuration> |
在0.20.2之前的版本没有这三个文件,只有一个hadoop-site.xml文件。有些教程比较老,请注意一下。这里建议以上localhost全部填写成本机IP,方便以后真正hadoop集群搭建。
然后格式化一下hdfs:
$ bin/hadoop namenode -format
再配置一下/etc/profile文件,添加hadoop的环境变量:
#set hadoop environment
HADOOP_HOME=/usr/hadoop-0.20.2
PATH=$HADOOP_HOME/bin:$PATH
CLASSPATH=$CLASSPATH:$HADOOP_HOME:$HADOOP_HOME/lib
export HADOOP_HOME PATH CLASSPATH
同样我们需要source /etc/profile 一下。
再然后就能启动守护进程了:
$ bin/start-all.sh
输入命令看所有守护进程是否启动成功:
# jps
30660 SecondaryNameNode
31402 Jps
30554 DataNode
30842 TaskTracker
30733 JobTracker
这样的结果就成了。可以执行一些样例命令了:
$ hadoop jar hadoop-*-examples.jar grep input output ‘dfs[a-z.]+’
你也可以看看 hadoop-*-examples.jar 里边的其他命令,查看方法直接hadoop jar hadoop-*-examples.jar 就行了。
最后检查输出文件:
Copy the output files from the distributed filesystem to the local filesytem and examine them:
$ bin/hadoop fs -get output output
$ cat output/*
or View the output files on the distributed filesystem:
$ bin/hadoop fs -cat output/*
停止所有守护进程:
$ stop-all.sh
这是伪分布的配置,已经适合学习、开发和调试程序了。还有真正的分布式架构,需要另外配置几个文件。这里先大致介绍一下三种模式的配置对比:
组件名称 | 属性名称 | 独立模式 | 伪分布模式 | 全分布模式 |
Common | fs.default.name | file:///(默认) | hdfs://localhost | hdfs://namenode |
HDFS | dfs.replication | N/A | 1 | 3 |
MepReduce | mapred.job.tracket | local(默认) | localhost:9000 | jobtracker:9000 |
全分布式集群构建在另外一篇读书笔记第九章在进行详细介绍。
下边进行hadoop下执行一个java程序的例子(类似hello world的样例程序):
(1)先在本地磁盘建立两个输入文件file01 和file02:
$ echo “Hello World Bye World” > file01
$ echo “Hello Hadoop Goodbye Hadoop” > file02
(2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input
(3)将file01 和file02 拷贝到hdfs 中:
$ hadoop fs –copyFromLocal ~/file0* input
(4)执行wordcount:(这里注意 hadoop-0.20.1-examples.jar的路径正确,这个文件在hadoop根目录里)
$ hadoop jar hadoop-0.20.1-examples.jar wordcount input output
(5)完成之后,查看结果:
$ hadoop fs -cat output/part-r-00000
结果为:
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2
你可以输入hadoop fs 查看 fs下的所有命令,方便使用期间可以用alias起别名,具体见另外一篇的中间部分。至此hadoop的hello world完成,开始hadoop之旅吧。建议从《hadoop权威指南》这本书开始。
你也可以编写自己的hello,world! 你可能会用到这个classpath路径,只是可能用到,如果编译的时候提示你class找不到的时候:
$ javac -classpath /usr/hadoop-0.20.2/hadoop-0.20.2-core.jar:/usr/hadoop-0.20.2/lib/commons-cli-1.2.jar -d *outputpath* *javapath*
$ jar -cvf *output.jar* *target.class*
第一个命令-classpath参数指定了加载的包的路径。第二个命令用来打包成jar包。然后就可以像执行样例jar包那样在hadoop框架下执行自己的程序了。这里边对不熟java的童鞋给点说明:
你的helloworld程序应该类似这样:
import org.apache.hadoop.io.*;
public class helloworld{public static void main(String[] args){System.out.println("hello world!");}
}
你执行hadoop jar ***.jar 可能需要你指出入口的类,你填写你main函数所在的类名即可。另外注意这个类前边必须加public关键字,不然会提示你入口不合法什么的之类的提示。最后你需要注意的是这个公共类的名字必须给你的**.java文件名字相同,这样才能执行javac命令进行编译。
搭建好自己的hadoop,如果你还不知道如何开始,建议先去学习一下streaming这篇吧。
开启hadoop之旅的大门–安装配置篇相关推荐
- 一步步教你Hadoop多节点集群安装配置
一步步教你Hadoop多节点集群安装配置 1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统HDFS(Hado ...
- 文件服务器安装配置说明手册,FreeBSD全能服务器安装手册之文件服务器篇之A安装配置篇...
FreeBSD全能服务器安装手册FTP篇之A安装配置篇 cd /usr/ports/ftp/pure-ftpd make WITH_WELCOMESG=yes WITH_UPLOADSCRIPT=ye ...
- Hadoop在Ubuntu下的安装配置(配置成功)
前面均在windows下进行,但是在安装hadoop过程中出了一些问题,先暂时切换到linux下,回头再补充windows下的安装.不过通过对比确实发现,在linux下的安装配置确实比较简单. 一.安 ...
- Hadoop、Slurm平台详细安装配置步骤
大数据Hadoop.Slurm平台 安 装 配 置 手 册 河北科技大学理学院 王子元 2018年6月 绪论 本人本科毕业设计选的是<数学系大数据环境建设>课题,实验集群采用四台惠普工作站 ...
- 高性能HTTP加速器Varnish(安装配置篇)
一.安装Varnish Varnish的安装非常简单,下面逐步介绍: 1.安装前的准备 Varnish安装环境如下表1所示: 表1 主机名 操作系统 ...
- 【小白】SQLyog下载安装配置篇全攻略
我是第一次使用 SQLyog 这款对于MySQL数据库的可视化图形管理工具,本篇是我对于SQLyog安装配置的过程和总结,仅供大家参考. 如下: 了解SQLyog: SQLyog 是一个快速而 ...
- SVN+FTP服务器搭建——SVN安装配置篇
Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它 ...
- 开启Hadoop/Yarn的日志监控功能,配置Spark历史服务,解决web端查看日志时的Java.lang.Exception:Unknown container问题
解放方法 下来查询官方文档后,才了解到yarn的日志监控功能默认是处于关闭状态的,需要我们进行开启,开启步骤如下: Ps:下面配置的文件的位置在hadoop根目录 etc/haddop文件夹下,比较老 ...
- hadoop 在 Linux下的安装配置与集群配置(3台机)
注:本文的主要目的是为了记录自己的学习过程,方便与大家做交流.转载请注明出处 http://blog.csdn.net/kokjuis/article/details/59523427 最近在搭建文件 ...
最新文章
- 有关Spring 3.0的发布
- 智能家居市场的魔方法则深度剖析
- 什么是物联网的边缘计算?
- 数据结构 - 从二叉搜索树说到AVL树(一)之二叉搜索树的操作与详解(Java)
- 微信小程序将页面按钮悬浮固定在底部
- why SAP CRM My Opportunity Master page must be renamed as S2
- 万用表检测常用元器件的方法
- oracle表空间暴涨,Oracle 11g SYSTEM表空间暴增问题
- Spring扩展之BeanPostProcessor接口
- 新浪新闻动态网页爬取+热点词云分析
- 面试宝典之深度学习面试题(下)
- 通过Jsoup 和 htmlunit 爬取全国行政区划信息查询平台的省市区区划数据
- windows 快捷键关闭屏幕
- 数据库表及其字段变量命名神器之codeIf
- cmd中文输入和显示问题
- MySQL 8 忽略表名大小写
- Nowcoder. 链表的回文结构
- Macbook 上onenote无法在本地新建笔记本
- 保健中药不贵胜过市面上的保健品
- 智能产品工厂测试软件,人工智能如何帮助工厂做质量检测
热门文章
- Java中AudioFileStream_iOS音频学习一之AudioFileStream
- 《Flutter技术入门与实践》——[中]亢少军
- 小米蒸排骨+炒红萝卜丝+苦瓜炒蛋
- 手机传感器的意义:未来生活将被彻底改变
- JAVA环境变量j配置avac命令不识别不成功注意事项详细
- PHP7安装redis扩展 Star.Hou
- 从3元/条的个人信息买卖看企业数据安全建设
- 不要黄泛区及东北人?地域歧视谁之责
- 一款发动机爆震检测分析仪解决方案:英国 phormula 爆震检测分析仪+PICO
- SpringBoot集成alipay-easysdk