trssc 发表于 2016-12-8 07:21:13

Hadoop 集群 傻瓜式搭建手记

  关于Hadoop的配置,按照我的理解,应该有六个文件需要修改,它们都在Hadoop的conf文件夹下,分别是:masters/slavers:配置masters和slavers的机器IP

hadoop-env.sh :Hadoop 运行时的环境变量,比如JAVA_HOME,LOG之类的
core-site.xml :Hadoop 的核心配置文件,对应并覆盖core-default.xml 中的配置项
hdfs-site.xml :HDFS 的配置文件,对应并覆盖hdfs-default.xml 中的配置项

mapred-site.xml :Map/Reduce的配置文件,对应并覆盖mapred-default.xml 中的配置项

上面提到的三个*-default.xml 是Hadoop的默认配置项,理论上都是只读的,如果要修改,就通过对应的用户配置文件来覆盖其设置。
 
1、先配置masters/slavers,NameNode和JobTracker是master, DataNode01和DataNode02是salvers
Masters:
 
view plain


[*]vi /hadoop/conf/masters  

masters文件内容如下:
 
 
view plain


[*]192.168.100.101  
[*]192.168.100.102  

 
Slavers:
view plain


[*]vi /hadoop/conf/slavers  

slavers文件内容如下: 
 
view plain


[*]192.168.100.103  
[*]192.168.100.104  



 
2、先配置hadoop-env.sh,这里最重要的是配置JAVA_HOME,在我的机器上是这样的:
 
view plain


[*]export JAVA_HOME=/usr/lib/jvm/java-6-sun  


其余的可以考虑配置日志文件路径: 
 
view plain


[*]export HADOOP_LOG_DIR=${HADOOP_HOME}/logs  


3、配置core-site.xml,通过文档可以知道这里一般是配置NameNode的地址,即机器名或IP: 
view plain


[*]<configuration>    
[*]        <property>  
[*]                <name>fs.default.name</name>     
[*]                <value>hdfs://192.168.100.101:9000</value>     
[*]        </property>   
[*]</configuration>   


4、配置hdfs-site.xml,这里一般配置文件存放路径以及文件权限: 
 
view plain


[*]<configuration>    
[*]    <property>    
[*]        <!-- DFS中存储文件命名空间信息的目录 -->    
[*]        <name>dfs.name.dir</name>    
[*]        <value>/hadoop/dfs/name</value>    
[*]    </property>    
[*]    <property>    
[*]        <!-- DFS中存储文件数据的目录 -->    
[*]        <name>dfs.data.dir</name>     
[*]        <value>/hadoop/dfs/data</value>    
[*]    </property>    
[*]    <property>    
[*]        <!-- 是否对DFS中的文件进行权限控制(测试中一般用false)-->    
[*]        <name>dfs.permissions</name>    
[*]        <value>false</value>    
[*]   </property>    
[*]</configuration>   



5、配置mapred-site.xml, 这里配置的东西有很多,都是跟Map-Reduce相关的,不过暂时先配置如下几项:
 
view plain


[*]<configuration>  
[*]    <property>    
[*]        <!-- JobTracker节点 -->    
[*]        <name>mapred.job.tracker</name>    
[*]        <value>hdfs://192.168.100.102:9001</value>    
[*]    </property>    
[*]    <property>    
[*]        <!-- map/reduce的系统目录(使用的HDFS的路径) -->    
[*]        <name>mapred.system.dir</name>    
[*]        <value>/hadoop/mapred/system</value>    
[*]    </property>    
[*]    <property>    
[*]        <!-- map/reduce的临时目录(可使用“,”隔开,设置多重路径来分摊磁盘IO) -->    
[*]        <name>mapred.local.dir</name>    
[*]        <value>/hadoop/mapred/local</value>    
[*]    </property>    
[*]</configuration>   


 
 
这些配置都可以在一台机器上搞定,由于Hadoop所有机器是使用同样的配置,所以可以通过scp命令将conf下的内容拷贝复制到各个机器上:
 
view plain


[*]scp -rp /hadoop/conf fox@192.168.100.102/hadoop/  


只复制conf是由于我拷贝虚拟机时就已经把JAVA,Hadoop 都安装好后才拷贝的,这样可以保证所有文件在同一目录。 
 
启动
然后,激动人心的时刻到了,所有配置都搞定了,我们可以启动了!
不过还有一件事情必须要先做, 格式化名称空间。
在NameNode上,执行如下命令:
 
view plain


[*]cd /hadoop/bin  
[*]./hadoop namenode -format  

执行后结果如下: 

 
然后就可以执行最后一个命令了:
 
view plain


[*]./start-all.sh  


如果一切顺利的话,应该就成功了: 

 
如果要关闭的话,可以执行
 
view plain


[*]./stop-all.sh  





ref:http://blog.csdn.net/lee_leefox/article/details/7071692
页: [1]
查看完整版本: Hadoop 集群 傻瓜式搭建手记