一、hadoop的三种安装模式
1,单机模式
解压源码包后不用更改配置文件,就可以运行,主要用于开发调试MapReduce程序的应用逻辑。
2,伪分布式
伪分布式和完全分布式的区别仅仅是物理机的个数,步骤基本一致。
3,完全分布式
完全分布式需要在每台机器上安装hadoop以组成分布式存储、计算环境。
二、完全分布式安装
1,环境:
三台centOS 6.5,hadoop 2.6,jdk 7,
2,master机器的host文件
192.168.189.20 master
192.168.189.21 slave1
192.168.189.22 slave2
3,master机器安装jdk
路径为/usr/local/jdk,
4,配置JDK环境变量
vim /ect/profile,
在最后增加
# set jdk
export JAVA_HOME=/usr/local/jdk/
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
然后使用sudo source /ect/profile使之生效
5,配置SSH
参考《多台计算机之间利用ssh实现无密码登录 》
6,解压hadoop-2.6.0.tar.gz文件
路径为/usr/local/hadoop
7,配置hadoop环境变量
#set hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
8,编辑hadoop参数
(1) 进入/usr/local/hadoop/etc/hadoop目录中,编辑hadoop-env.sh文件,使用vim hadoop-env.sh,修改内容如下:
export JAVA_HOME=/usr/local/jdk
(2) 编辑yarn-env.sh vim yarn-env.sh,修改内容如下:
JAVA_HOME=/usr/local/jdk
(3) 编辑core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
(4) 编辑hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/nddir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dddir</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(5) 编辑mapred-site.xml(需要复制mapred-site.xml.template,并命名为mapred-site.xml)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.189.20:9001</value>
</property>
</configuration>
(6) 编辑yarn-site.xml文件
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>Yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.189.20:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.189.20:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.189.20:8031</value>
(7) 编辑slaves文件(只需填入datanode机器的IP)
192.168.189.21
192.168.189.22
9,复制hadoop到另外两个节点,使用的命令是:
scp -r /usr/local/hadoop hadoop@192.168.189.21:/usr/local/hadoop
scp -r /usr/local/hadoop hadoop@192.168.189.22:/usr/local/hadoop
10,在master节点格式化hdfs文件
[hadoop@master hadoop]$ ./bin/hdfs namenode -format
11,启动hadoop
[hadoop@master hadoop]$ ./sbin/start-all.sh
12,namenode和datanode上使用/usr/local/jdk/bin/jps查看节点状态
http://sys1:50070/dfshealth.html查看节点状态
13,关闭hadoop
[hadoop@master hadoop]$ ./sbin/stop-all.sh