Hadoop集群安装参考

来源:互联网 发布:手机钉钉显示网络异常 编辑:程序博客网 时间:2024/05/16 19:39

Hadoop集群安装参考

一、说明

1.安装环境说明:

 操作系统为Centos 6.4,安装的hadoop 版本为0.20.2-cdh3u6

2.安装后的集群环境说明:

集群内共6台机器,分别为namenode、secondnamenode、jobtrack、datanode(三个节点),参考如下:

namenode节点:                192.168.8.67(主机名:namenode

secondnamenode节点:     192.168.8.65 (主机名:secondnamenode)

jobtrack节点:                    192.168.8.68(主机名:jobtrack

datanode01节点:              192.168.8.62(主机名:datanode01
datanode02节点:              192.168.8.63(主机名:datanode02
datanode03节点:              192.168.8.64(主机名:datanode03
3.安装用户为hadoop

4.安装目录为/opt/hadoop

二、安装

1.下载hadoop-0.20.2-cdh3u6.tar.gz

2.解压hadoop-0.20.2-cdh3u6.tar.gz并将解压后的文件夹重命名为hadoop

3.将hadoop文件夹分别以root身份上传至namenode、secondnamenode、jotrack、datanode01、datanode02、datanode03的/opt目录下

4.更改/opt/hadoop目录的所有者为hadoop用户

参考命令:sudo chown -R hadoop.hadoop /opt/hadoop

5.设置环境变量

参考如下:

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

6.设置各个hadoop节点的配置文件,参考如下

分别进入每个节点机器的/opt/hadoop/conf目录下完成如下配置:

(1).namenode:

 a.core-site.xml:

<!--namenode上不需要进行关于lzo的配置--><configuration> <!-- <property>    <name>hadoop.tmp.dir</name>    <value>/home/hadoop/hadoop/tmp/</value>  </property>-->  <property>    <name>io.file.buffer.size</name>    <value>65536</value>  </property>  <property>    <name>fs.default.name</name>    <value>hdfs://namenode:9000</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.hosts</name>    <value>*</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.groups</name>    <value>*</value>  </property></configuration>

b.hdfs-site.xml:

<configuration><property>  <name>dfs.permissions</name>  <value>false</value></property><property>  <name>dfs.name.dir</name>  <value>/home/hadoop/hadoop/data/name</value>    <final>true</final></property><!--<property>  <name>dfs.data.dir</name>  <value>/home/hadoop/hadoop/data/data</value>  <final>true</final></property>--><property>  <name>dfs.replication</name>  <value>3</value></property><property>  <name>dfs.block.size</name>  <value>134217728</value></property></configuration>

c.mapred-site.xml:

<configuration><property>  <name>mapred.child.java.opts</name>  <value>-Xmx1024m</value></property><property>  <name>io.sort.mb</name>  <value>500m</value></property><property>    <name>mapred.tasktracker.map.tasks.maximum</name>    <value>4</value>    <final>true</final>  </property>  <property>    <name>mapred.tasktracker.reduce.tasks.maximum</name>    <value>2</value>    <final>true</final>  </property><property>    <name>mapred.job.tracker</name>    <value>jobtrack:9001</value>    <final>true</final>  </property></configuration>
d.masters:

#secondnamenode的地址(可以输入主机名或者输入ip)secondnamenode#192.168.8.65
e.slaves:

#各datanode节点的主机名或ip地址#192.168.8.62#192.168.8.63#192.168.8.64datanode01datanode02datanode03
此项配置完成后,先别着急启动hadoop,好多东西还没设置,继续往下走.....

(2).secondnamenode

a.core-site.xml:

<configuration>  <property>    <name>hadoop.tmp.dir</name>    <value>/home/hadoop/hadoop/tmp/</value>  </property>  <property>    <name>io.file.buffer.size</name>    <value>65536</value>  </property>  <property>    <name>fs.default.name</name>    <value>hdfs://namenode:9000</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.hosts</name>    <value>*</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.groups</name>    <value>*</value>  </property></configuration>
b.hdfs-site.xml:

<configuration><property>  <name>dfs.permissions</name>  <value>false</value></property><property>  <name>dfs.name.dir</name>  <value>/home/hadoop/hadoop/data/name</value>    <final>true</final></property><property>  <name>dfs.data.dir</name>  <value>/home/hadoop/hadoop/data/data</value>  <final>true</final></property><property>  <name>dfs.replication</name>  <value>3</value></property><property>  <name>dfs.block.size</name>  <value>134217728</value></property></configuration>
c.mapred-site.xml:

<configuration><property>  <name>mapred.child.java.opts</name>  <value>-Xmx1024m</value></property><property>  <name>io.sort.mb</name>  <value>500m</value></property><property>    <name>mapred.tasktracker.map.tasks.maximum</name>    <value>4</value>    <final>true</final>  </property>  <property>    <name>mapred.tasktracker.reduce.tasks.maximum</name>    <value>2</value>    <final>true</final>  </property><property>    <name>mapred.job.tracker</name>    <value>jobtrack:9001</value>    <final>true</final>  </property></configuration>
d.masters和slaves无需配置

此项配置完成后,先别着急启动hadoop,好多东西还没设置,继续往下走.....
(3).jobtrack

a.core-site.xml:

<configuration>  <property>    <name>hadoop.tmp.dir</name>    <value>/home/hadoop/hadoop/tmp/</value>  </property>  <property>    <name>io.file.buffer.size</name>    <value>65536</value>  </property>  <property>    <name>fs.default.name</name>    <value>hdfs://namenode:9000</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.hosts</name>    <value>*</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.groups</name>    <value>*</value>  </property></configuration>

b.hdfs-site.xml:

<configuration><property>  <name>dfs.permissions</name>  <value>false</value></property><property>  <name>dfs.name.dir</name>  <value>/home/hadoop/hadoop/data/name</value>    <final>true</final></property><property>  <name>dfs.data.dir</name>  <value>/home/hadoop/hadoop/data/data</value>  <final>true</final></property><property>  <name>dfs.replication</name>  <value>3</value></property><property>  <name>dfs.block.size</name>  <value>134217728</value></property></configuration>
c.mapred-site.xml:

<configuration><property>  <name>mapred.child.java.opts</name>  <value>-Xmx1024m</value></property><property>  <name>io.sort.mb</name>  <value>512m</value></property><property>    <name>mapred.tasktracker.map.tasks.maximum</name>    <value>4</value>    <final>true</final>  </property>  <property>    <name>mapred.tasktracker.reduce.tasks.maximum</name>    <value>2</value>    <final>true</final>  </property><property>    <name>mapred.job.tracker</name>    <value>jobtrack:9001</value>    <final>true</final></property><!--<property>  <name>mapred.task.timeout</name>  <value>6000000</value></property>--><!--设置map输出 -->   <property>       <name>mapred.compress.map.output</name>       <value>false</value>   </property>   <property>       <name>mapred.map.output.compression.codec</name>       <value>com.hadoop.compression.lzo.LzopCodec</value>   </property>   <!--设置reduce输出 -->   <property>       <name>mapred.output.compress</name>       <value>false</value>   </property>   <property>       <name>mapred.output.compression.codec</name>       <value>com.hadoop.compression.lzo.LzopCodec</value>   </property></configuration>
d.masters文件无需配置

e.slaves:

#配置tasktrack(datanode01、datanode02、datanode03)节点IP或者各节点主机名:#192.168.8.62#192.168.8.63#192.168.8.64datanode01datanode02datanode03
此项配置完成后,先别着急启动hadoop,好多东西还没设置,继续往下走.....
(3).datanode01

a.core-site.xml:

<configuration>  <property>    <name>hadoop.tmp.dir</name>    <value>/home/hadoop/hadoop/tmp/</value>  </property>  <property>    <name>io.file.buffer.size</name>    <value>65536</value>  </property>  <property>    <name>io.compression.codecs</name>    <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>  </property>  <property>    <name>io.compression.codec.lzo.class</name>    <value>com.hadoop.compression.lzo.LzopCodec</value>  </property>  <property>    <name>fs.default.name</name>    <value>hdfs://namenode:9000</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.hosts</name>    <value>*</value>  </property>  <property>    <name>hadoop.proxyuser.hadoop.groups</name>    <value>*</value>  </property></configuration>
b.hdfs-site.xml:

<configuration><property>  <name>dfs.permissions</name>  <value>false</value></property><!--<property>  <name>dfs.name.dir</name>  <value>/home/hadoop/hadoop/data/name</value>    <final>true</final></property>--><property>  <name>dfs.data.dir</name>  <value>/home/hadoop/hadoop/data/data</value>  <final>true</final></property><property>  <name>dfs.replication</name>  <value>3</value></property><property>  <name>dfs.block.size</name>  <value>134217728</value></property></configuration>

c.mapred-site.xml:

<configuration><property>  <name>mapred.child.java.opts</name>  <value>-Xmx1024m</value></property><property>  <name>io.sort.mb</name>  <value>512m</value></property><property>    <name>mapred.tasktracker.map.tasks.maximum</name>    <value>4</value>    <final>true</final>  </property>  <property>    <name>mapred.tasktracker.reduce.tasks.maximum</name>    <value>2</value>    <final>true</final>  </property><property>    <name>mapred.job.tracker</name>    <value>jobtrack:9001</value>    <final>true</final>  </property><!-- <property>   <name>mapred.task.timeout</name>   <value>6000000</value> </property>--></configuration>
d.masters和slaves文件无需配置

(5).其余的datanode节点(datanode02、datanode03)的配置和上面的datanode01的配置完全一致。


7.创建hadoop的数据存放目录:

在上面的配置中,

dfs.name.dir(hdfs-site.xml)目录设置为~/hadoop/data/name

dfs.data.dir(hdfs-site.xml)目录设置为~/hadoop/data/data

hadoop.tmp.dir(core-site.xml)目录设置为~/hadoop/tmp

其中,

namenode需要设置dfs.name.dir,

datanode需要设置dfs.data.dir和hadoop.tmp.dir,

secondnamenode、jobtrack需要设置hadoop.tmp.dir,dfs.name.dir,dfs.data.dir。

建议:以上的配置可以不设置,如果不设置hadoop有自己的默路径,为了方便维护建议设置;

为了避免不确定性的配置问题,建议在每个节点都设置hadoop.tmp.dir,dfs.name.dir,dfs.data.dir

基于以上配置,需要在各个节点上创建如下目录:

mkdir ~/hadoop/data


8.设置节点间的无密码登陆:

分别设置:

namenode对secondnamenode、datanode01、datanode02、datanode03的无密码ssh登陆;

secondnamenode对datanode01、datanode02、datanode03的无密码ssh登陆;

jobtrack对datanode01、datanode02、datanode03的无密码ssh登陆。

建议:为了方便以后对hadoop集群的管理,最好设置成每一个节点都可以对其他所有节点的ssh无密码登陆。

如果不清楚如何设置ssh无密码登陆,请参考本人的博客(Linux栏目下)


9.设置节点的ip和主机名的映射关系:

配置 每个节点的/etc/hosts文件(datanode节点可以不需要配置):

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.8.62 datanode01192.168.8.63 datanode02192.168.8.64 datanode03192.168.8.65 secondnamenode192.168.8.67 namenode192.168.8.68 jobtrack
10.关闭每个节点的防火墙

11.启动hadoop集群:

在namenode节点上执行start-dfs.sh;

在jobtrack节点上执行start-mapred.sh



































1 0
原创粉丝点击