Hadoop分布式配置和测试

一:编辑每台机器的host文件,将集群中的每台机器添加进去。本次安装中Hadoop集群一共有三台机器。


191.8.3.2       labserver-001 slave
191.8.3.3       labserver-002 slave
191.8.2.203   labserver-003 master

二:每台机器环境预设置

1、建立hadoop帐号
2、安装JDK,在本次尝试中,安装了jdk-6u43-linux-x64.bin


三:配置集群的SSH免密码自动登录环境

1、集群中每台机器的hadoop目录下面建立.ssh目录,并生成机器的公钥私钥,命令为:
ssh-keygen -t rsa

2、将本机的公钥集中上传到一台master的机器,在本次安装中,公钥文件上传到labserver-003。
   例如,某一台机器的上传命令如下:
   scp id_rsa.pub hadoop@labserver-002:/home/hadoop/.ssh/labserver-002_id_rsa.pub
   scp id_rsa.pub hadoop@labserver-002:/home/hadoop/.ssh/labserver-003_id_rsa.pub


3、labserver-003机器上将集群中的所有公钥加入到.ssh目录下的authorized_keys中,包括自己本身机器的公钥。本机的公钥也要加入的原因是labserver-003在集群中存在2种角色,HDFS的namenode和jobtracker,可能存在需要从本机的服务通过SSH连接本机的另外一个服务的可能。

   cat labserver-002_id_rsa.pub >> authorized_keys
   cat labserver-003_id_rsa.pub >> authorized_keys

3.1 把labserver-003机器上的 authorized_keys上传到各个机器,此处是为了建立彻底的SSH免登录的环境,各台机器服务角色变化的时候可以自由的连接集群内的机器环境。

4、测试SSH免密码登录

三、配置hadoop的运行环境参数

1、在labserver-003的master机器上将 hadoop-1.2.1-bin.tar.gz包解开成 /home/hadoop/hadoop-1.2.1目录

2、配置conf目录下的hadoop-env.sh文件,配置JAVA_HOME环境变量
 export JAVA_HOME=/home/hadoop/jdk1.6.0_43

3、配置core-site.xml文件
(1)建立Hadoop的数据目录/home/hadoop/hadoop_tmp/,并配置到hadoop.tmp.dir属性变量中。
(2)配置HDFS的服务地址fs.default.namehdfs://labserver-003:9000/,此处的机器名沿用回/etc/hosts文件中的定义:labserver-003。

注:对Hadoop 集群来说,集群内的机器互通很重要,尽量沿用每台机器上的/etc/hosts定义的机器进行配置。 配置完毕后,core-site.xml文件内容如下:
<configuration>
        <property>
        <name>fs.default.name</name>
        <value>hdfs://labserver-003:9000/</value>
        </property>

        <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop_tmp/</value>
        </property>

</configuration>

4、配置hdfs-site.xml文件
<configuration>
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
</configuration>

由于此处的安装只有2台机器做HDFS的DataNode,因此,dfs.replication配置成2


5、配置mapred-site.xml ,配置JobTracker的服务地址
<configuration>
<property>
        <name>mapred.job.tracker</name>
        <value>http://labserver-003:9001</value>
</property>
</configuration>

6、配置masters和slaves文件
hadoop@labserver-001:~/hadoop-1.2.1/conf$ more masters
labserver-003
hadoop@labserver-001:~/hadoop-1.2.1/conf$ more slaves
labserver-002
labserver-001

7、将hadoop配置同步到集群中的每台机器

(1)在每台机器建立/home/hadoop/hadoop_tmp/目录
(2)将hadoop-1.2.1/目录同步到集群中的每一台机器的hadoop帐号的hadoop目录中。

四、从labserver-003机器进行启动hadoop集群

1、运行./bin/start-all.sh  观察集群中的每台机器启动的情况

这是master的运行情况,启动了NameNode、JobTacker、SecondaryNameNode等服务
  hadoop@labserver-003:~$ jps
  22051 Jps
  20363 SecondaryNameNode
  20085 NameNode
  20474 JobTracker
这是Slave机器的情况,启动了TaskTracker、DataNode的服务。
  hadoop@labserver-001:~/hadoop-1.2.1/conf$ jps
  25242 TaskTracker
  24834 DataNode


2、运行示例程序WordCount

从HDFS上的当前目录建立input子目录
 ./bin/hadoop dfs -mkdir input
放置待分析的文件到input目录下
./bin/hadoop dfs -put *.xml input
运行wordcount的程序
./bin/hadoop jar hadoop-examples-1.2.1.jar wordcount input output

运行结果此处不贴出。


3、运行基准测试:
(1)写操作
	./bin/hadoop jar hadoop-test-1.2.1.jar DFSCIOTest -write -nrFiles 20 -fileSize 1024
可以看到Slave机器上面的负载情况,网络IO基本到达了极限。

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
 35  13  48   1   0   2|   0   139M| 101M  107M|   0     0 |  23k   33k
 21  12  63   2   0   3|   0   194M| 110M  106M|   0     0 |  17k   33k
 24  14  57   2   0   3|   0   259M| 107M  108M|   0     0 |  16k   34k
 22  11  62   2   0   3|   0   194M| 104M  109M|   0     0 |  17k   34k
 20  12  59   7   0   2|   0   303M| 106M  111M|   0     0 |  17k   33k
 25  13  59   1   0   2|   0    86M| 107M   97M|   0     0 |  16k   33k
 15  11  70   2   0   2|   0   194M| 100M   94M|   0     0 |  14k   28k
 18  12  65   2   0   3|   0   157M| 101M  106M|   0     0 |  16k   34k
 18  12  66   1   0   3|   0   230M| 105M  111M|   0     0 |  16k   34k
 17  15  64   3   0   2|   0   213M| 106M  106M|   0     0 |  16k   35k
 26  13  56   1   0   3|   0   174M| 108M  107M|   0     0 |  16k   32k

Master上得到的测试结果如下:
13/11/06 12:29:33 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write
13/11/06 12:29:33 INFO fs.TestDFSIO:            Date & time: Wed Nov 06 12:29:33 CST 2013
13/11/06 12:29:33 INFO fs.TestDFSIO:        Number of files: 20
13/11/06 12:29:33 INFO fs.TestDFSIO: Total MBytes processed: 20480
13/11/06 12:29:33 INFO fs.TestDFSIO:      Throughput mb/sec: 32.43909354275134
13/11/06 12:29:33 INFO fs.TestDFSIO: Average IO rate mb/sec: 34.38865280151367
13/11/06 12:29:33 INFO fs.TestDFSIO:  IO rate std deviation: 8.757448107989758
13/11/06 12:29:33 INFO fs.TestDFSIO:     Test exec time sec: 208.164

(2)读操作
./bin/hadoop jar hadoop-test-1.2.1.jar DFSCIOTest -read -nrFiles 10 -fileSize 1024

13/11/06 12:34:30 INFO fs.TestDFSIO: ----- TestDFSIO ----- : read
13/11/06 12:34:30 INFO fs.TestDFSIO:            Date & time: Wed Nov 06 12:34:30 CST 2013
13/11/06 12:34:30 INFO fs.TestDFSIO:        Number of files: 10
13/11/06 12:34:30 INFO fs.TestDFSIO: Total MBytes processed: 10240
13/11/06 12:34:30 INFO fs.TestDFSIO:      Throughput mb/sec: 169.857014895664
13/11/06 12:34:30 INFO fs.TestDFSIO: Average IO rate mb/sec: 286.3677673339844
13/11/06 12:34:30 INFO fs.TestDFSIO:  IO rate std deviation: 117.01923701746219
13/11/06 12:34:30 INFO fs.TestDFSIO:     Test exec time sec: 34.891
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值