最近需要hadoop,再加上 hadoop这么流行, 就打算开始学习hadoop, 关于hadoop的简介 就不再赘述了,只需先记住, HDFS(Hadoop分布式文件系统), MapReduce(计算模型) 是hadoop的 核心即可。
首先 hadoop 平台的搭建有三种方式:
首先先试着练习来安装 单机版hadoop
一、安装环境
Ubuntu 14.04
hadoop 2.6.0
java jdk 1.7
openssh
二、配置用户、组
1, 创建hadoop组
在终端执行:
sudo addgroup hadoop
如下图
2,创建hadoop用户
在hadooop用户组添加hadoop用户
sudo adduser -ingroup hadoop hadoop表示在hadoop 组 添加hadoop 用户
3,为hadoop增加root权限
赋予hadoop root权限,就相当于每次执行权限指令时候,只需sudo 就可以,方法如下,修改/etc/sudoers, 如下图,增加 hadoop ALL=(ALL:ALL) ALL, 执行 sudo gedit /etc/sudoers 修改之后,如下图
保存退出即可
三、安装SSH 服务
首先SSH是一个安全的传输协议,可以进行远程登录,hadoop使用ssh 协议来进行数据通信
建议先 切换到 刚刚 建立的 hadoop 用户下进行操作: su hadoop
1,安装ssh 服务
sudo apt-get install open-ssh-server
2, 建立ssh无密码登录本机
执行 ssh-keygen 生成密钥 中间需要几个回车
然后可以试试 ssh localhost 需要输入密码, 比较麻烦。如果把 key 拷贝到远程机器上,下次ssh链接的时候就无需输入密码登陆了 : 执行 ssh-copy-id localhost 之后, 在继续ssh localhost就无需输入密码了。 然后在 执行exit 返回到 hadoop用户
如下:
四、安装java jdk
运行hadoop ,jdk 是必需 的。 安装jdk 也比较容易;可以 自己选择版本下载手动安装, 也可以直接apt-get ,这里为了方便,就直接安装apt-get的openjdk了
1,直接 执行 sudo apt-get openjdk-7-jdk
2,查看jdk是否安装完成 java -version
五、配置安装hadoop
hadoop 各个版本差别挺大, 但是作为练习 就直接用了最新版 2.6.0
1,安装解压
官网直接下载就好:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/
一般是安装到 /usr/local , 假设下载的tar.gz 在downloads ,将其移动到 /usr/local :
sudo cp hadoop-2.6.0.tar.gz /usr/local
之后进入/usr/local 目录下: 解压sudo tar -zxvf haddoop-2.6.0.tar.gz
解压之后 在该目录下 会多出一个 hadoop-2.6.0的目录,为了方便,一般 是重命名为hadoop:
sudo mv hadoop-2.6.0 hadoop
这就算安装好了,下面就是修改配置文件了
2,修改配置文件
首先修改 hadoop文件夹的权限用户: sudo chown -R hadoop:hadoop hadoop
修改/.bashrc
文件,添加环境变量
首先查看自己的jdk目录:update-alternatives --config java如下:
我们只需要到根目录 也就是 :/usr/lib/jvm/jdk1.7.0_71
然后就是修改 hadoop的 hadoop-env.sh
sudo gedit /etc/hadoop/hadoop-env.sh
修改export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_71
如下:
保存退出 ,至此,单机版的配置 就基本完成了。 下面就是测试了:
六、测试单机版hadoop
1,首先格式化
bin/hadoop namenode -format
之后出现: 表示格式化成功
2、运行测试程序
在hadoop目录下,hadoop-examples-2.6.0.jar
这个是测试程序,里面包含了很多测试用的代码,我们运行一个经典的,wordcount程序: 就是 统计单词频率的一个程序, 首先我们需要建立一个input 文件夹,作为输入
sudo mkdir input
然后随便复制文本进去: 这里就用hadoop目录下的 README.txt 作为测试样本。
sudo cp README.txt input
然后执行jar 包 运行样例:
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.0-sources.jar org.apache.hadoop.examples.WordCount input output
结果如下:
稍等运行一会,会在/home/hadoop/下生成一个output目录,里面有part-r-00000
和_SUCCESS
两个文件,看到_SUCCESS
就知道已经成功了,打开part-r-00000
看看,每个单词的出现次数都给你统计好了吧。
执行 cat output/* 可以查看 单词的出现次数~
至此, 单机版的hadoop 已经完成, 可以写自己的程序; 虽然单机版并不能体现云计算的优势 , 在实际应用中并没有什么意义 , 但是在程序的测试与调试过程中 , 它们还是很有意义的 。
后面还会相继搭建 伪分布式和 完全集群式的环境