Hadoop伪分布式环境搭建——简明版!

前些日子,由于误操作,把之前搭的Hadoop虚拟机给误删了。
当然东西没了就没了,哀叹抱怨是没用的,总不能不用吧,所以又尝试重新搭了一套。
去年搭的时候感觉也是磕磕绊绊的,今年居然非常的顺!
所以,整一套教程吧,真的感觉简明的不能再简明了。。。


Step 1: Download!
1、虚拟机肯定要有的,虚拟机里面装的Ubuntu肯定也是要有的,我用的是Server 12.04LTS
2、JDK也是不可或缺的,这里选用的是jdk 1.7.45
3、最后当然是重要角色:Hadoop!选的是 1.1.2 版(发现去年下的还在,下了1.2.1也就没去用,应该差别不大。。。)


Step 2: Prerequisite~
1、如果Ubuntu是server版的话,装的时候记得选sshd这个服务,后续Hadoop的通信要通过它的
Desktop 版,以及Server版要确认是否安装,通过如下命令:
ps aux | grep sshd
查看是否有进程正在运行,稍后附图吧!
如果没有,通过
sudo apt-get install sshd
安装一个即可~


2、给Hadoop专门搞一个账号和用户,用来操作:
sudo adduser hadoop
Ubuntu会很贴心的提示输入相关信息以及设置密码,一样稍后附图吧。。。


3、设置RSA密钥对,实现免密码登录
创建好hadoop用户后,我们切换到hadoop用户下进行操作:
su hadoop
输入你刚才设置的密码,提示框就会变成:
hadoop@ubuntu:~$
如果不在~下,通过cd ~ 切过去
在这里执行
ssh-keygen -t rsa
生成一份公钥密钥对,参数全部都保持默认一路回车就好
接下来打开 .ssh 目录
cd ~/.ssh
ls 看一下是否存在 authorized_keys文件
如果不存在,直接把里面的id_rsa.pub重命名为 authorized_keys
mv id_rsa.pub authorized_keys即可
当然如果原先已经存在 authorized_keys
则要通过:
cat id_rsa.pub >> authorized_keys
往里面追加公钥。
好,大功告成,可以测试一下在hadoop账户下ssh hadoop@localhost是否需要输入密码
不需要输入密码就是成功啦!


4、把localhost与127.0.0.1映射起来(大多数情况不需要)
sudo vi /etc/hosts
添加一行:
127.0.0.1    localhost


Step 3: Install?Just untar(unzip)!
说是什么安装Hadoop,其实Linux下没有安装这个概念的,那是windows才搞的蛋疼东西。。。
一切都是解压,解压以后就能用!(对,就是这么神奇,为啥?后面再写一篇专门说这个,现在专注Hadoop)


1、单机模式


先把下载好的Hadoop和java拷贝到ubuntu虚拟机的 /home/hadoop/ 目录下
可以是scp,也可以是sftp,也可以是rz sz,或者直接在ubuntu虚拟机里面wget也行,总之,这个总有办法搞定的!
用hadoop账号登录ubuntu虚拟机,登录后执行一下ls,看看东西是不是在这个目录下了:
hadoop@ubuntu:~$ ls
如果货都齐全了,那就解压吧!
tar -xzf hadoop-1.1.2.tar.gz
tar -xzf jdk-7u45-linux-x64.tar.gz


再ls一下看 目录下是不是都有对应的文件夹了?
有就代表解压也成功了!离成功越来越近啦!


接下来改一个配置:
hadoop@ubuntu:~$ vi hadoop-1.1.2/conf/hadoop-env.sh
在这下面添加三行:
# The java implementation to use.  Required.
export JAVA_HOME=/home/hadoop/jdk1.7.0_45
export HADOOP_HOME=/home/hadoop/hadoop-1.1.2
export PATH=$PATH:/home/hadoop/hadoop-1.1.2/bin


:wq保存退出,开始测试单机版是否成功!
hadoop@ubuntu:~$ source hadoop-1.1.2/conf/hadoop-env.sh
hadoop@ubuntu:~$ cd hadoop-1.1.2
hadoop@ubuntu:~/hadoop-1.1.2$ mkdir input
hadoop@ubuntu:~/hadoop-1.1.2$ cp -R conf input/
hadoop@ubuntu:~/hadoop-1.1.2$ hadoop jar hadoop-examples-1.1.2.jar wordcount input output
如果成功运行output目录下就会有东西输出,图也一样后续再补吧。。。


2、伪分布式
hadoop@ubuntu:~/hadoop-1.1.2$ mkdir tmp
hadoop@ubuntu:~/hadoop-1.1.2$ mkdir hdfs
hadoop@ubuntu:~/hadoop-1.1.2$ mkdir hdfs/name
hadoop@ubuntu:~/hadoop-1.1.2$ mkdir hdfs/data
hadoop@ubuntu:~/hadoop-1.1.2$ chmod 755 hdfs/data
hadoop@ubuntu:~/hadoop-1.1.2$ vi conf/core-site.xml
configuration之间补上:

       
                fs.default.name
                hdfs://localhost:9000
       

       
                hadoop.tmp.dir
                /home/hadoop/hadoop-1.1.2/tmp
       




hadoop@ubuntu:~/hadoop-1.1.2$ vi conf/hdfs-site.xml
一样在configuration之间补上:

       
                dfs.replication
                1
       

       
                dfs.name.dir
                /home/hadoop/hadoop-1.1.2/hdfs/name
       

       
                dfs.data.dir
                /home/hadoop/hadoop-1.1.2/hdfs/data
       




hadoop@ubuntu:~/hadoop-1.1.2$ vi conf/mapred-site.xml
继续在configuration之间补上:

       
                mapred.job.tracker
                localhost:9001
       




好,胜利就在眼前,初始化一下namenode
hadoop@ubuntu:~/hadoop-1.1.2$ hadoop namenode -format
hadoop@ubuntu:~/hadoop-1.1.2$ bin/start-all.sh 启动所有服务
jps看一下是否启动成功,如果看到6个进程,就说明安装正常啦!


后面的就和Lab/Project的操作一样的,拷贝文件到HDFS,执行程序,得到结果


行文匆匆啊。。。远远高估了写东西的效率,以为一小时能搞定的。。。

谁知道就几个命令的事情,要说清楚还真是有点困难,图还没附呢,悲催,又是一个坑。。。
先发了,再找时间完善!

你可能感兴趣的:(Distributed,System)