`
leiwuluan
  • 浏览: 697081 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

hadoop 集群配置

 
阅读更多

1、首先设置namenode的ssh为无需密码的、自动登录。
切换到hadoop用户
$ su hadoop
cd /home/hadoop
$ ssh-keygen -trsa然后一直按回车
完成后,在home跟目录下会产生隐藏文件夹.ssh
$ cd .ssh
之后ls 查看文件
cp id_rsa.pub authorized_keys
测试:
ssh localhost发现链接成功,并且无需密码。


2、scp authorized_keys slave:/home/hadoop/.ssh/
文件的许可权限 chmod 644 authorized_keys

单方连接就OK


3、hadoop 配置
wget http://apache.mirrors.tds.net//hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz
tar -zxvf hadoop-0.20.203.0rc1.tar.gz

如果集群内机器的环境完全一样,可以在一台机器上配置好,然后把配置好的软件即hadoop-0.20.2整个文件夹拷贝到其他机器的相同位置即可。
可以将Master上的Hadoop通过scp拷贝到每一个Slave相同的目录下,同时根据每一个Slave的Java_HOME 的不同修改其hadoop-env.sh 。
为了方便,使用hadoop命令或者start-all.sh等命令。
修改Master上/etc/profile: 新增以下内容:(具体的内容根据你的安装路径修改,这步只是为了方便使用)
export HADOOP_HOME=/home/hadoop/hadoop/install
export PATH=$PATH:$HADOOP_HOME/bin
修改完毕后,执行source /etc/profile 来使其生效。

配置conf/hadoop-env.sh文件
export JAVA_HOME=/usr/java/jdk1.6.0_25/

测试hadoop安装:
Bin/hadoop jar hadoop-0.20.2-examples.jar wordcount conf/  /tmp/out



=====================================================================
集群配置(所有节点相同)
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:49000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop_home/var</value>
</property>

fs.default.name是NameNode的URI。hdfs://主机名:端口/
hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。



配置文件:conf/mapred-site.xml

<property>
    <name>mapred.job.tracker</name>
    <value>master:49001</value>
</property>
<property>
    <name>mapred.local.dir</name>
    <value>/home/hadoop/hadoop_home/var</value>
</property>
mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口



配置文件:conf/hdfs-site.xml
<property>
    <name>dfs.name.dir</name>
    <value>/home/hadoop/name1,/home/hadoop/name2</value> #hadoop的name目录路径
    <description></description>
</property>
<property>
    <name>dfs.data.dir</name>
    <value>/home/hadoop/data1,/home/hadoop/data2</value>
    <description></description>
</property>
<property>
    <name>dfs.replication</name>
    <!-- 我们的集群又两个结点,所以rep两份 -->
    <value>2</value>
</property>

=====================================================================



配置masters和slaves主从结点
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。

vi masters:
输入:
    master
vi slaves:
输入:
    slave


配置结束,把配置好的hadoop-0.20.2文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh
$ scp -r /home/hadoop/hadoop-0.20.2 root@node2: /home/hadoop/

 

 

配置hosts

192.168.38.10 master master.domain
192.168.38.11 slave1 slave1.domain
192.168.38.12 slave2 slave2.domain



hadoop启动
格式化一个新的分布式文件系统
先格式化一个新的分布式文件系统
$ cd hadoop-0.20.2
$ bin/hadoop namenode -format

 

 

 

 

 

关闭一下访火墙 vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 49000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 49001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50075 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT

 

 


启动所有节点
$ bin/start-all.sh


测试
浏览NameNode和JobTracker的网络接口,它们的地址默认为:

NameNode - http://master:50070/

 

加hosts

192.168.38.10 master master.domain
192.168.38.11 slave1 slave1.domain
192.168.38.12 slave2 slave2.domain

使用netstat –nat查看端口49000和49001是否正在使用。


bin/hadoop dfsadmin -report  查看状态

http://www.lifeba.org/arch/hadoop_linux_distributed_cluster_configuration.html



常用hadoop命令
hadoop namenode -format
hadoop dfsadmin -report

查看目录文件
hadoop fs -ls /user/admin/aaron

 
创建文件目录
hadoop fs -mkdir /user/admin/aaron/newDir

 
删除文件
hadoop fs -rm /user/admin/aaron/needDelete

 
删除目录与目录下所有文件
hadoop fs -rmr /user/admin/aaron

 
上传文件
上传一个本机/home/admin/newFile的文件到hdfs中/user/admin/aaron目录下
hadoop fs -put /home/admin/newFile /user/admin/aaron/

 
下载文件
下载hdfs中/user/admin/aaron目录下的newFile文件到本机/home/admin/newFile中
hadoop fs -get /user/admin/aaron/newFile /home/admin/newFile


查看文件
hadoop fs –cat /home/admin/newFile

 
Job操作

提交MapReduce Job
原则上说,Hadoop所有的MapReduce Job都是一个jar包

 
运行一个/home/admin/hadoop/job.jar的MapReduce Job
hadoop jar /home/admin/hadoop/job.jar [jobMainClass] [jobArgs]

 
杀死某个正在运行的Job
假设Job_Id为:job_201005310937_0053
hadoop job -kill job_201005310937_0053

 

基本流程与应用开发
http://www.infoq.com/cn/articles/hadoop-process-develop

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics