Hadoop的下载地址:
http://www.apache.org/dyn/closer.cgi/hadoop/core/
版本:hadoop0.17.1
JDK的安装:
要求必须安装jdk1.5.07以上的版本。
分步式环境的搭建:
1、 硬件环境
我们采用了3台机器来构建,都安装的是Red Hat 4.1.2-42系统,并且都有一个名为“mingjie“的帐号,如下:
主机名称:hdfs1 ip:192.168.0.221 功能:NameNode,JobTracker
主机名称:hdfs2 ip:192.168.0.227 功能:DataNode,TaskTracker
主机名称:hdfs3 ip:192.168.0.228 功能:DataNode,TaskTracker
重点:修改3台机器的/etc/hosts,让彼此的主机名称和ip都能顺利解析
127.0.0.1 localhost
192.168.0.37 hdfs1
192.168.0.43 hdfs2
192.168.0.53 hdfs3
2、 每台机器都要安装java环境,我们的路径统一为“/opt/modules/jdk1.6“,并添加到系统环境变量sudo vi /etc/profile
JAVA_HOME=/opt/modules/jdk1.6
PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
3、 下载hadoop0.17.1,将hadoop解压到/home/mingjie/,建议最好也将hadoop的目录添加到环境变量里面去:
HADOOP_HOME=/home/mingjie/hadoop-0.17.1 #这是hadoop的主目录
export HADOOP_HOME
HADOOP_CONF_DIR=$HADOOP_HOME/conf #这是hadoop的配置文件目录
export HADOOP_CONF_DIR
HADOOP_LOG_DIR=/home/mingjie/hadoop-0.17.1/log #存放运行日志目录
export HADOOP_LOG_DIR
export PATH=$PATH:$HADOOP_HOME/bin
4、 安装ssh,并生成公钥和私钥
运行 ssh-keygen -t rsa,根据屏幕提示直接选择“回车”
会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
以上配置完成后,执行一下ssh localhsot,确认你的每台机器都可以使用ssh
5、 将master服务器上的authorized_keys的内容加到slave两台机器的authorized_keys文件中。让master也可以不需要密码访问2台slave服务器。
sudo scp authorized_keys hdfs2:/home/mingjie/.ssh/
sudo scp authorized_keys hdfs3:/home/mingjie/.ssh/
ssh hdfs2
ssh hdfs3
6、 接下来,我们要修改hadoop的[conf/masters]、[conf/slaves]这2个文件:
Master设置(<HADOOP_HOME>/conf/masters):hdfs1
Slave设置(<HADOOP_HOME>/conf/slaves):hdfs2 hdfs3
7、 修改[conf/hadoop-env.sh]:
export JAVA_HOME=/opt/jdk1.6.0_03
8、 修改[conf/hadoop-site.xml],这里只是几个常用的属性配置,有关hadoop的性能优化调整,需要研究hadoop-default.xml:
<configuration>
<property>
<name>fs.default.name</name>//你的namenode的配置,机器名加端口
<value>hdfs://hdfs1:54310/</value>
</property>
<property>
<name>mapred.job.tracker</name>//你的JobTracker的配置,机器名加端口
<value>hdfs://hdfs1:54311</value>
</property>
<property>
<name>dfs.replication</name>//数据需要备份的数量,默认是三
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>//Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
<value>/home/mingjie/hadoop-0.17.1/tmp/</value>
</property>
<property>
<name>mapred.child.java.opts</name>//java虚拟机的一些参数可以参照配置
<value>-Xmx512m</value>
</property>
<property>
<name>dfs.block.size</name>//block的大小,单位字节,后面会提到用处,必须是512的倍数,因为采用crc作文件完整性校验,默认配置512是checksum的最小单元。
<value>5120000</value>
<description>The default block size for new files.</description>
</property>
</configuration>
9、 然后将hadoop的整体环境拷贝到hdfs2、hdfs3上面去
scp -r /home/mingjie/hadoop.0.17.1 hdfs2:/home/mingjie/ hadoop.0.17.1
scp -r /home/mingjie/ hadoop.0.17.1 hdfs3:/home/mingjie/ hadoop.0.17.1
10、 在hdfs1这个namenode上面格式化一个新的分布式文件系统HDFS,就是hadoop-site.xml文件中指定的hadoop.tmp.dir路径
<HADOOP_HOME>/bin/hadoop namenode –format
到此大致上就完成了hadoop环境布署
启动hadoop:<HADOOP_HOME>/bin/start-all.sh
停止hadoop:<HADOOP_HOME>/bin/stop-all.sh
说明:
(1) 执行启动Hadoop进程后,
在master服务器会启动3个java进程,分别的NameNode,SecondNameNode,JobTracker,在LOG目录下会产生2个文件,分别对应NameNode的运行日志和JobTracker的运行日志,
在slave服务器会启动2个java进程,分别为DataNode,TaskTracker,,在LOG目录下会产生2个文件,分别对应DataNode的运行日志和TaskTracker的运行日志,可以通过查看日志分析hadoop的启动是否正确。
(2) 通过IE浏览分布式文件系统中的文件
访问 http://hdfs1:50030 可以查看JobTracker的运行状态。
访问 http://360quan-1:50060可以查看 TaskTracker的运行状态。
访问 http://360quan-1:50070可以查看NameNode以及整个分布式文件系统的状态。
http://www.apache.org/dyn/closer.cgi/hadoop/core/
版本:hadoop0.17.1
JDK的安装:
要求必须安装jdk1.5.07以上的版本。
分步式环境的搭建:
1、 硬件环境
我们采用了3台机器来构建,都安装的是Red Hat 4.1.2-42系统,并且都有一个名为“mingjie“的帐号,如下:
主机名称:hdfs1 ip:192.168.0.221 功能:NameNode,JobTracker
主机名称:hdfs2 ip:192.168.0.227 功能:DataNode,TaskTracker
主机名称:hdfs3 ip:192.168.0.228 功能:DataNode,TaskTracker
重点:修改3台机器的/etc/hosts,让彼此的主机名称和ip都能顺利解析
127.0.0.1 localhost
192.168.0.37 hdfs1
192.168.0.43 hdfs2
192.168.0.53 hdfs3
2、 每台机器都要安装java环境,我们的路径统一为“/opt/modules/jdk1.6“,并添加到系统环境变量sudo vi /etc/profile
JAVA_HOME=/opt/modules/jdk1.6
PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
3、 下载hadoop0.17.1,将hadoop解压到/home/mingjie/,建议最好也将hadoop的目录添加到环境变量里面去:
HADOOP_HOME=/home/mingjie/hadoop-0.17.1 #这是hadoop的主目录
export HADOOP_HOME
HADOOP_CONF_DIR=$HADOOP_HOME/conf #这是hadoop的配置文件目录
export HADOOP_CONF_DIR
HADOOP_LOG_DIR=/home/mingjie/hadoop-0.17.1/log #存放运行日志目录
export HADOOP_LOG_DIR
export PATH=$PATH:$HADOOP_HOME/bin
4、 安装ssh,并生成公钥和私钥
运行 ssh-keygen -t rsa,根据屏幕提示直接选择“回车”
会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
以上配置完成后,执行一下ssh localhsot,确认你的每台机器都可以使用ssh
5、 将master服务器上的authorized_keys的内容加到slave两台机器的authorized_keys文件中。让master也可以不需要密码访问2台slave服务器。
sudo scp authorized_keys hdfs2:/home/mingjie/.ssh/
sudo scp authorized_keys hdfs3:/home/mingjie/.ssh/
ssh hdfs2
ssh hdfs3
6、 接下来,我们要修改hadoop的[conf/masters]、[conf/slaves]这2个文件:
Master设置(<HADOOP_HOME>/conf/masters):hdfs1
Slave设置(<HADOOP_HOME>/conf/slaves):hdfs2 hdfs3
7、 修改[conf/hadoop-env.sh]:
export JAVA_HOME=/opt/jdk1.6.0_03
8、 修改[conf/hadoop-site.xml],这里只是几个常用的属性配置,有关hadoop的性能优化调整,需要研究hadoop-default.xml:
<configuration>
<property>
<name>fs.default.name</name>//你的namenode的配置,机器名加端口
<value>hdfs://hdfs1:54310/</value>
</property>
<property>
<name>mapred.job.tracker</name>//你的JobTracker的配置,机器名加端口
<value>hdfs://hdfs1:54311</value>
</property>
<property>
<name>dfs.replication</name>//数据需要备份的数量,默认是三
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>//Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
<value>/home/mingjie/hadoop-0.17.1/tmp/</value>
</property>
<property>
<name>mapred.child.java.opts</name>//java虚拟机的一些参数可以参照配置
<value>-Xmx512m</value>
</property>
<property>
<name>dfs.block.size</name>//block的大小,单位字节,后面会提到用处,必须是512的倍数,因为采用crc作文件完整性校验,默认配置512是checksum的最小单元。
<value>5120000</value>
<description>The default block size for new files.</description>
</property>
</configuration>
9、 然后将hadoop的整体环境拷贝到hdfs2、hdfs3上面去
scp -r /home/mingjie/hadoop.0.17.1 hdfs2:/home/mingjie/ hadoop.0.17.1
scp -r /home/mingjie/ hadoop.0.17.1 hdfs3:/home/mingjie/ hadoop.0.17.1
10、 在hdfs1这个namenode上面格式化一个新的分布式文件系统HDFS,就是hadoop-site.xml文件中指定的hadoop.tmp.dir路径
<HADOOP_HOME>/bin/hadoop namenode –format
到此大致上就完成了hadoop环境布署
启动hadoop:<HADOOP_HOME>/bin/start-all.sh
停止hadoop:<HADOOP_HOME>/bin/stop-all.sh
说明:
(1) 执行启动Hadoop进程后,
在master服务器会启动3个java进程,分别的NameNode,SecondNameNode,JobTracker,在LOG目录下会产生2个文件,分别对应NameNode的运行日志和JobTracker的运行日志,
在slave服务器会启动2个java进程,分别为DataNode,TaskTracker,,在LOG目录下会产生2个文件,分别对应DataNode的运行日志和TaskTracker的运行日志,可以通过查看日志分析hadoop的启动是否正确。
(2) 通过IE浏览分布式文件系统中的文件
访问 http://hdfs1:50030 可以查看JobTracker的运行状态。
访问 http://360quan-1:50060可以查看 TaskTracker的运行状态。
访问 http://360quan-1:50070可以查看NameNode以及整个分布式文件系统的状态。