hadoop 部署,
基础组件
准备安装Hadoop集群之前我们得先检验系统是否安装了如下的必备软件:ssh、rsync和Jdk1.6(因为Hadoop需要使用到Jdk中的编译工具,所以一般不直接使用Jre)。可以使用yum install rsync来安装rsync。一般来说ssh是默认安装到系统中的。集群配置
一般NameNode会部署到一台单独的服务器上而不与DataNode共同同一机器。另外Map/Reduce服务也需要确立JobTracker和TaskTracker的角色,一般JobTracker与NameNode共用一台机器作为master,而TaskTracker与DataNode同属于slave。
具体配置
1.环境配置 在$HADOOP_HOME/conf/hadoop-env.sh中定义了Hadoop启动时需要的环境变量设置,其中我们至少需要配置JAVA_HOME(Jdk的路径)变量;另外我们一般还需要更改HADOOP_LOG_DIR(Hadoop的日志路径)这个变量,默认的设置是“export HADOOP_LOG_DIR=${HADOOP_HOME}/logs”,一般需要将其配置到一个磁盘空间比较大的目录下。 2.Hadoop核心程序配置 Hadoop 包括一组默认配置文件($HADOOP_HOME/src目录下的core/core-default.xml, hdfs/hdfs-default.xml 和mapred/mapred-default.xml)。自定义配置,对默认配置文件的值进行覆盖 (1)$HADOOP_HOME/conf/core-site.xml是Hadoop的核心配置文件,对应并覆盖core-default.xml中的配置项。
(2)$HADOOP_HOME/conf/hdfs-site.xml是HDFS的配置文件,对应并覆盖hdfs-default.xml中的配置项。 (3)$HADOOP_HOME/conf/mapred-site.xml是Map/Reduce的配置文件,对应并覆盖mapred-default.xml中的配置项。
Mapred-site.xml代码
</pre><pre name="code" class="html"> <configuration>
<property>
<!-- 用来作JobTracker的节点的(一般与NameNode保持一致) -->
<name>mapred.job.tracker</name>
<value>192.168.1.111:9001</value>
</property>
<property>
<!-- map/reduce的系统目录(使用的HDFS的路径) -->
<name>mapred.system.dir</name>
<value>/system/mapred.system.dir</value>
</property>
<property>
<!-- map/reduce的临时目录(可使用“,”隔开,设置多重路径来分摊磁盘IO) -->
<name>mapred.local.dir</name>
<value>/opt/hadoop/data/mapred.local.dir</value>
</property>
</configuration>
3.主从配置 在$HADOOP_HOME/conf目录中存在masters和slaves这两个文件,用来做Hadoop的主从配置。在主从配置里我们一般将NameNode和JobTracker列为主机,其它的共为从机。
masters和slaves文件内容就是主机和从机的IP列表。
4.其他配置 在$HADOOP_HOME/conf目录下还包括其它的一些配置文件,但那些都不是必须设置的。
值得注意的是Hadoop集群的所有机器的配置应该保持一致,一般我们在配置完master后,使用scp将配置文件同步到集群的其它服务器上。
启动
集群的启动是从NameNode开始的,于是DataNode的运行需要NameNode的远程调用,Hadoop使用ssh命令远程运行DataNode节点,这就是为什么Hadoop需要ssh的支持。配置SSH使用无密码公钥认证的方式启动DataNode节点
在NameNode上需要生成一个密钥对,即一个私钥和一个公钥。将公钥拷贝到各个DataNode上,如此一来,当NameNode向DataNode发起ssh连接的时候,DataNode上就会生成一个随机数并用NameNode的公钥对这个随机数进行加密,并且发送给NameNode,NameNode收到这个加密的数以后用私钥进行解密,并将解密后的数返回DataNode,DataNode确认解密的数无误后就允许NameNode进行连接了。这就完成了一次公钥认证过程。id_rsa.pub的内容复制到每个机器(也包括本机)的~/.ssh/authorized_keys文件中。如果authorized_keys不存在,则使用touch ~/.ssh/authorized_keys生成一个;如果该文件已经存在,则追加内容进去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh服务对文件的权限有着非常严格的限制(authorized_keys只能拥有指定用户的写权限)于是需要进行如下处理:
chmod 644 ~/.ssh/authorized_keys
经过以上步骤,我们的无密码访问就配置好了,可以通过如下命令进行验证: ssh ip
启动Hadoop集群:
cd $HADOOP_HOME/bin #启动服务之前,格式化命名空间./hadoop namenode -format
#启动dfs和map/reduce服务
./start-all.sh
验证是否启动成功
$HADOOP_HOME/bin/hadoop dfs -ls如果没有错误提示或者出现文件列表,Hadoop成功启动了。
通过访问http://NameNodeIP:50070来查看hdfs的状态,访问http://NameNode:50030来查看map/reduce的状态。
如果出现错误,或Hadoop集群未启动,可以查看$HADOOP_HOME/logs/下的日志文件。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。