1.准备
1.下载 hadoop-2.5.2.tar.gz 免安装包到指定的目录
2.执行命令: tar -zxvf hadoop-2.5.2.tar.gz 解压目录
2.配置
1.切换到指定的目录:
cd $HADOOP_HOME/etc/hadoop
2.对相关的配置文件进行配置:
hadoop-env.sh
vim hadoop-env.sh
找到:export JAVA_HOME=$JAVA_HOME行,将它注释掉,用下面的行替代:
export JAVA_HOME=/usr/java/jdk1.7.0_65
这样做是避免,Hadoop配置文件中读不到$JAVA_HOME而报错。
core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://server1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
hdfs-site.xml hdfs-default.xml (3)
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
注:配置到此时,分布式文件系统已经可以启动进行读写了。
slaves
如果在上面配置的HDFS的副本数不为0 ,则需要在slaves里面指定好所有的副本主机名
类似: server1
server2
......
mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>server1</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
启动
1.配置环境变量
vim /etc/proflie
export HADOOP_HOME=/hadoop/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.格式化
cd $HADOOP_HOME/sbin
执行命令:hdfs namenode -format (或者hadoop namenode -format)
3.启动脚本
cd $HADOOP_HOME/sbin
先启动HDFS
sbin/start-dfs.sh
再启动YARN
sbin/start-yarn.sh
4.验证是否启动成功
使用jps命令验证
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
http://localhost:50070 (HDFS管理界面)
http://localhost:8088 (MR管理界面)
4.配置ssh免登陆
在执行启动脚本的时候,系统会提示要输入密码验证,它其实是一个远程登录启动脚本的机制。
通过SSH远程到你配置的节点上去启动进程。即便你的节点是在本地,它也是一样的方式。
因此当节点N多的时候,要N次以上输入密码验证。为了解决这个问题,可以配置SSH免登录,
配置如下:
#生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id localhost
SSH工作原理和机制图