欢迎投稿

今日深度:

hadoop 部署,

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/下的日志文件。



www.htsjk.Com true http://www.htsjk.com/Hadoop/41498.html NewsArticle hadoop 部署, 基础组件 准备安装Hadoop集群之前我们得先检验系统是否安装了如下的必备软件:ssh、rsync和Jdk1.6(因为Hadoop需要使用到Jdk中的编译工具,所以一般不直接使用Jre)。可以使...
相关文章
    暂无相关文章
评论暂时关闭