walter的hadoop学习笔记二 安装部署

转载请注明出处http://lt200819.iteye.com/blog/1473179

至于Hadoop是什么,能干什么之类的文章去hadoop官网去找吧,这里不累述。
给个传送门http://hadoop.apache.org

系统环境:
linux版本:centos6.2
jdk:OpenJDK 1.6.0_22

下载hadoop
在http://www.apache.org/dyn/closer.cgi/hadoop/common/
选择下载hadoop版本
为了通用起见,本文用的是最新稳定版hadoop1.0.1
http://labs.renren.com/apache-mirror/hadoop/common/stable/hadoop-1.0.1.tar.gz
http://labs.renren.com/apache-mirror/hadoop/common/stable/hadoop-1.0.1-bin.tar.gz

1.安装
账户walter
解压hadoop-1.0.1-bin到/home/walter/software/hadoop-1.0.1.
为了方便以后升级版本,我们需要做到配置文件与安装目录分离,并通过设定一个指向我们要使用的版本的hadoop的链接,这样可以减少我们对配置文件的维护。在下面的部分,你就会体会到这样分离以及链接的好处了。

[walter@walter software]$ ln  -s  hadoop-1.0.1   hadoop
[walter@walter software]$ mkdir hadoop-config
[walter@walter software]$ cp -r /home/walter/software/hadoop/conf/*  /home/walter/software/hadoop-config

并指定环境变量$HADOOP_CONF_DIR指向该目录。
设置hadoop的命令行路径
环境变量在/home/walter/.bashrc中设定。
export HADOOP_CONF_DIR=/home/walter/software/hadoop-config
export HADOOP_INSTALL=/home/walter/software/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin

修改hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.6.0
#export  HADOOP_HOME=/home/walter/software/hadoop
#export HADOOP_HOME_WARN_SUPPRESS=1

新版本中#号注释掉的可以不配置。

2.本机模式
由于默认属性专为本模式所设,且无需运行任何守护进程,因此本机模式下不需要更多操作。
  可输入以下指令来判断Hadoop是否运行
  hadoop version
3.单节点模式(伪分布式模式)
3.1编辑下面三个文件:
hadoop-conf/core-site.xml:

<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property>
</configuration>

hadoop-conf/hdfs-site.xml:

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>

hadoop-conf/mapred-site.xml:

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>
具体设置的意义参见hadoop权威指南第9章

3.2 SSH设置
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。
首先要保证每台机器上都装了SSH服务器,且都正常启动。实际中我们用的都是OpenSSH,这是SSH协议的一个免费开源实现。 用ssh localhost测试是否安装了ssh,如果没安装sudo yum install ssh.CentOS6.2中默认安装了OpenSSH。
基于空口令创建一个新SSH密钥,以后用无密码登录。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
用以下口令测试:
ssh localhost

如果无需密码登录失败:
保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。
chmod 644 authorized_keys
Agent admitted failure to sign using the key 错误及解决办法
ssh-add   ~/.ssh/id_rsa

3.3
格式化HDFS文件系统
hadoop namenode -format

3.4 启动HDFS和MapReduce守护进程
start-all.sh
如果不能启动,尝试关机重启。

3.5 测试
浏览NameNode和JobTracker的网络接口,它们的地址默认为:

NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/
将输入文件拷贝到分布式文件系统:
hadoop fs -put conf input

运行发行版提供的示例程序:
hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'

查看输出文件:

将输出文件从分布式文件系统拷贝到本地文件系统查看:
hadoop fs -get output output
cat output/*

或者

在分布式文件系统上查看输出文件:
hadoop fs -cat output/*

完成全部操作后,停止守护进程:
stop-all.sh

参考
http://hadoop.apache.org/common/docs/r1.0.1/single_node_setup.html
http://lt200819.iteye.com/blog/1176184

你可能感兴趣的:(hadoop,ssh,map,reduce)