1,下载Hadoop
目前在Ubuntu的软件库里面 没有发现Hadoop的压缩包,没猜错Hadoop不是可执行文件 只是一个压缩包吧!所以我们只能自己到官网下载(http://hadoop.apache.org/releases.html);
在Apache社区中,下载软件的时候常看到source类型和binary类型的文件包,第一种其实就是源码,您可以根据自己的环境进行编译 生成适合自己运行环境的,第二种是我们课直接使用的;
cd /usr 切换到usr目录下
sudo mkdir hadoop 创建hadoop文件夹
sudo cd hadoop 进入hadoop文件夹
(wget是从网络上直接下载文件的命令,其支持http ftp 等协议,默认下载文件到当前目录;)
由于我使用的是虚拟机,下载速度很慢,所以我直接使用本地下载,然后上传到目录下;
apt-get install lrzsz 安装lrzsz脚本,此脚本支持文件传输,类似于FileZ;
(http://freecode.com/projects/lrzsz/)
解压缩文件:
cd /usr/hadoop
sudo tar -xzf hadoop-2.7.3.tar.gz tar和gz都是linux下面的压缩算法文件的后缀;通常采用tar命令来解压文件; tar 的参数选项有主选项 和选择选项,主要选项例如上面的 -x 是解压的意思 还有 -c是压缩的意思; f是制定文件名 f选项一定放在最后 z是代码gz的压缩解密;
2,hadoop目录结构介绍
为了便于观察我在window下面解压了Hadoop压缩文件,得出的出如图目录;
bin:Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
etc:Hadoop配置文件所在的目录,包括core-site,xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。
include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbin:Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
share:Hadoop各个模块编译后的jar包所在的目录。
3,配置单点Hadoop
》基础配置: 配置Hadoop运行的jdk;
sudo vi ..../etc/hadoop/hadoop-env.sh ...代表hadoop解压存放的目录
修改 export JAVA_HOME = jdk安装目录;
》启动
mkdir .../input 创建一个输入参数文件加
cp .../etc/hadoop/*.xml 把hadoop默认的配置文件都copy到input里面
/usr/hadoop/hadoop-2.7.3/bin/hadoop jar .../share/hadoop/mapreduce/
hadoop-mapreduce-examples-*.jar grep /usr/hadoop/input /usr/hadoop/output 'dfs[a-z.]+'
4,伪分布式Hadoop
》基础配置:
ssh免密码登陆 如果想要ssh面密码登陆,必须使用 ssh的keygen生成密匙对;
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa ssh-keygen是ssh算法工具, -t指定算法,-P 是密码 -f是文件名;
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 把公钥追加到认证文件中;
chmod 600 ~/.ssh/authorized_keys 设置认证文件只有所有者可以读写操作;
因为在免密码登陆的时候涉及到生产的密匙对的权限问题即密匙文件必须是只能用户所有者操能操作,所以我们必须知道文件权限;
(注: Linux中权限管理 有三个要素 一个要素是操作者 一个是操作 一个是权限;操作者在Linux中按照用户 用户组来管理;操作主要有 读(R) 写(W) 执行(X)三种,操作可以用数字转换 r=4 w=2 x=1;权限则是用来衡量操作者对文件或文件夹具有哪些操作要素;权限中我们同通过 所有者权限 所在组权限和其他组权限来管理 其中我们可以通过chomn来改变文件所有者 通过chgrp 改变文件所在组 通过chmod来改变用户权限。 我们在ls -a的时候可以看见文件的权限 -rw-r----- 第一个-代表这个是文件 rw- 代表文件所有着具有读写权限 r-- 代表本组人员具有读权限 ---代表其他用户组没有权限对此文件操作)