hadoop配置

安装包:hadoop-1.2.1.tar.gz。jdk-7u45-linux-x64.tar.gz

(官网上可以下载到,hadoop版本低于2.0即可,jdk版本貌似是没有要求,笔者的ubuntu环境是14.04,ubuntu版本也没有要求)


1.安装jdk

1.1分别解压安装包(直接点开提取就行)

1.2.配置java的环境变量

输入sudo gedit /etc/profile

在文件末尾添加一下内容

#set java environment
JAVA_HOME=/home/jerry/workspace/software/jdk1.7.0_45
export JRE_HOME=/home/jerry/workspace/software/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH


注意,java_home 是你解压后java目录的绝对路径(我的是:/home/jerry/workspace/software/jdk1.7.0_45)

这个因人而异,看清楚

source /etc/profile

这个命令使之生效


终端输入:java -version

出现版本信息,表示配置成功,否则重新配置环境变量

2.安装ssh

sudo apt-get install ssh

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

琢磨了一下SSH的原理

命令1:$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

这个命令会产生一个公钥(~/.ssh/id_rsa.pub)和密钥(~/.ssh/id_rsa),

  -t dsa:表示使用密钥的加密类型,可以为'rsa'和'dsa'

  -P '':表示不需要密码登录

  -f ~/.ssh/id_dsa:表示密钥存放的路径为${USER}/.ssh/id_dsa

 

命令2:$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

将本机的公钥添加进authorized_keys中,这样允许本机通过ssh的形式免密码登录

注意使用>>,而不是>,因为如果其它主机(如A)也采用免登陆的形式登录,也可以把主机A的公钥添加到authorized_keys文件中。这样主机A就可以免登陆ssh到本机了。


3.安装hadoop

3.1 "mkdir -p ~/usr/hadoop"
创建Hadoop的安装目录
cd ~/usr/hadoop"
"tar -xvzf ~/setup/hadoop/hadoop-1.2.1.tar.gz"
解压缩完毕后,就有目录~/usr/hadoop/hadoop-1.2.1,这是hadoop的主目录。

3.2 配置hadoop,参考了http://hadoop.apache.org/docs/stable/single_node_setup.pdf。
按照伪分布式进行配置,也就是用一个机器同时运行NameNode,SecondaryNameNode, DataNode, JobTracker, TaskTracker 5个任务。

3.2.1配置文件在~/usr/hadoop/hadoop-1.2.1/conf/目录下

3.2.2将core-site.xml文件内容修改成如下:

[plain] view plaincopyprint?
  1. <configuration>  
  2. <property>  
  3. <name>fs.default.name</name>  
  4. <value>hdfs://localhost:9000</value>  
  5. </property>  
  6. </configuration>  


将mapred-site.xml文件内容修改如下:
[plain] view plaincopyprint?
  1. <configuration>  
  2. <property>  
  3. <name>mapred.job.tracker</name>  
  4. <value>localhost:9001</value>  
  5. </property>  
  6. </configuration>  


将hdfs-site.xml文件内容修改如下:
[plain] view plaincopyprint?
  1. <configuration>  
  2. <property>  
  3. <name>dfs.replication</name>  
  4. <value>1</value>  
  5. </property>  
  6. </configuration>  

3.3 在hadoop-env.sh文件里添加如下一条语句:
export JAVA_HOME=(java的安装目录)


启动hadoop

4.1

[plain] view plaincopyprint?
  1. cd ~/usr/hadoop/hadoop-1.2.1  
  2. ./bin/hadoop namenode -format  
格式化NameNode。


4.2 "./bin/start-all.sh"

[plain] view plaincopyprint?
  1. ./bin/start-all.sh  

启动所有节点,包括NameNode,SecondaryNameNode, JobTracker, TaskTracker, DataNode。

7.4“jps”

检查各进程是否运行,这时,应该看到有6个java虚拟机的进程,分别是Jps,NameNode, SecondaryNameNode, DataNode, JobTracker,TaskTracker,看到6个是对的,表明启动成功。如果提示”jps”没安装或者找不到,执行一次”source /etc/profile”即可。

5.测试hadoop


5.1"cd ~/usr/hadoop/hadoop-1.2.1"
[plain] view plaincopyprint?
  1. cd ~/usr/hadoop/hadoop-1.2.1  

5.2"./bin/hadoop fs -put README.txt readme.txt"
[plain] view plaincopyprint?
  1. ./bin/hadoop fs -put README.txt readme.txt  
此处可能遇到的问题:
将当前目录下的README.txt放到hadoop进行测试,这个README.txt是Hadoop的介绍文件,这里用它做测试。这条命令将README.txt文件复制到Hadoop的分布式文件系统HDFS,重命名为readme.txt。

5.3"./bin/hadoop jar hadoop-examples-1.2.1.jar wordcount readme.txt output"
[plain] view plaincopyprint?
  1. ./bin/hadoop jar hadoop-examples-1.2.1.jar wordcount readme.txt output  
运行hadoop的examples的wordcount,测试hadoop的执行。这条语句用Hadoop自带的examples里的wordcount程序,对readme.txt进行处理,处理后的结果放到HDFS的output目录。

5.4"./bin/hadoop fs -cat output/part-r-00000"
[plain] view plaincopyprint?
  1. ./bin/hadoop fs -cat output/part-r-00000  

这条命令查看处理结果,part-r-00000文件存放wordcount的运行结果,cat命令将文件内容输出到屏幕,显示字符的统计结果。这是一个简单的字符统计,wordcount只是做了简单的处理,所以会看到单词后面有标点符号。

浏览器输入

localhost:50070   也可以查看输出结果

6. 练习

笔者做一次完整的安装是50分钟左右,其中下载Hadoop安装包和JavaJDK安装包是半小时,操作部分用时20分钟。新手第一次安装,2~5个小时内完成都是正常的。建议将Hadoop的安装过程按照上述流程走上三遍,熟悉每个步骤,然后不看流程凭记忆做出来,重复练习多次次,以加深印象。如果再有时间的话,可以逐个研究里面涉及到的各种命令,诸如ssh等。


你可能感兴趣的:(hadoop配置)