Hadoop分布式集群搭建
更多内容请访问: http://www.mikameng.com
?
?
简介: Hadoop是Apache开源组织的一个并行分布式计算开源框架,借助hadoop框架程序员很容易的实现大规模计算机并行分布式计算。hadoop主要包含MapReduce和HDFS,
MapReduce是基于Google MapReduce论文的开源java实现, map就是将任务分解,然后交给大规模计算机集群去运算,reduce负责合并计算结果。
HDFS: 基于google GFS分布式文件系统论文的开源实现,是hadoop底层存储组件。
环境: RedHat as 5
配置机器:
?? namenode:10.0.0.114, 机器名: mika
?? datanode: 10.0.0.115????? 机器名: c1
- 配置JDK
?
????? 下载linux jdk安装包: http://download.oracle.com/otn-pub/java/jdk/6u25-b06/jdk-6u25-linux-i586.bin,
???? 提升bin权限:?$ sudo chmod +x jdk-6u25-linux-i586.bin
????? 安装bin文件????$ ./jdk-6u25-linux-i586.bin,?确认后安装即可。
?????? 设置java运行环境变量,? 我的jdk安装在opt下
$ sudo vi /etc/profile 添加下面的设置:
?JAVA_HOME="/opt/jdk1.6.0_25"
PATH=$JAVA_HOME/bin:$PATH
CALSSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CALSSPATH
修改保存,然后输入source /etc/profile 激活修改后的java环境变量。
2. 修改hosts文件
???? name节点,可以通过机器名访问data节点, 添加如下内容:
????????? 10.0.0.114??mika
?????????? 10.0.0.115 c1
???? data节点,c1添加如下内容:
????????? 10.0.0.114??mika
?????????? 10.0.0.115 c1
3. ?设置ssh实现免密码登录
? redhat 默认是安装ssh的, 如果没有请先安装ssh服务。
?? 在name节点? 生成ssh key,
?? $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa??? 生成密钥对,
?? $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys? 复杂公钥到authorized_keys文件
?? scp命令将公钥拷贝到c1数据节点:
?? $ scp? ~/.ssh/authorized_keys c1:/~/.ssh
?? 测试name节点无密码登录c1机器: ssh c1, 出现欢迎登录,配置成功。
4.? 配置hadoop
??? 下载最新hadoop最新稳定发行版:?http://www.apache.org/dyn/closer.cgi/hadoop/common/, 解压后修改conf/hadoop-env.sh内的JAVA_HOME,修改为/opt/opt/jdk1.6.0_25
输入命令 bin/hadoop 出现命令使用说明
接下来配置完全分布式集群,所有机器的hadoop安装路径相同:
修改core-site.xml文件:XML语言:<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>
? <property>
??? <name>fs.default.name</name>
??? <value>hdfs://mika:9000</value>
? </property>
<property>
??? <name>hadoop.tmp.dir</name>
??? <value>/opt/hadoop/tmp</value>
</property>
</configuration>?
? 注意: 需要更改hadoop.tmp.dir默认的指向, 默认指向tmp目录下, 有可能会出现其他问,有时候会出现发现不了datanode的问题。
?修改hdfs-site.xml 文件:XML语言:<?xml version=”1.0″?><?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<configuration>
? <property>
??? <name>dfs.replication</name>
??? <value>1</value>
? </property>
</configuration>??????修改mapred-site.xmlXML语言<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
? <property>
??? <name>mapred.job.tracker</name>
??? <value>mika:9001</value>
? </property>
</configuration>
修改masters: 添加一行内容 mika
修改slaves: 添加一行内容 c1
然后scp将masters,slaves, core-site.xml, hdfs-site.xml, mapred-site.xml 复制到 c1节点
格式化新的分布式文件系统:bin/hadoop namenode -format
在分配的NameNode上,启动hdfsbin/start-dfs.sh
在分配的JobTracker上, 启动mapredbin/start-mapred.sh
JPS查看namenode服务是否启动
浏览NameNode和JobTracker的网络接口,它们的地址默认为:
NameNode - http://mika:50070/JobTracker - http://mika:50030/?
备注: 如果新加一个节点c2(10.0.0.116), 该如何设置?
在name节点的hosts里加入 10.0.0.116?? c2, 然后在name和c2节点的slaves里添加c2 ,然后在c2节点里启动输入:
bin/start-daemon start datanode
bin/start-daemon start tasktrack
固定链接: http://www.mikameng.com/?p=289