Hadoop部署运行

1、部署环境

Master: blade6

slaves: blade10 blade13

三个节点都是rhel6.2服务器


2、前期准备

1java 下载jdk,配置JAVA_HOMEPATH等,这里不做详述。

2sshd 无密码登陆

执行

$ ssh-keygen -t rsa

直接回车,完成后会在~/.ssh/生成两个文件:id_dsa id_dsa.pub。这两个成对出现,是私钥和公钥。再把id_dsa.pub 追加到授权key 里面(起初没有authorized_keys)即执行

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

完成后实现无密码登录本机。

然后将id_dsaid_dsa.pub复制到所有涉及的节点上(blade6blade10blade13),并各自执行

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

可以实现各个节点ssh无密码登录。

相关内容可参见:

http://hi.baidu.com/sinbad/item/ef5bd0f9cd5acf6c3d14856b

http://stevenz.blog.hexun.com/15798089_d.html

3)配置主机名

/etc/hosts中,输入IP与主机名的对应关系,不做详述。


3、下载解压hadoop与单机测试

1)下载解压

进入hadoop官网下载页面http://hadoop.apache.org/releases.html#Download

本人下载了hadoop-1.0.4版本,然后tar zxvf xxx解压。

2)设置配置文件,

进入hadoop安装目录,修改文件conf/hadoop-env.sh

加入export JAVA_HOME=/etc/alternatives/java_sdk_1.6.0

3)测试单机是否安装正确

hadoop安装目录下执行

bin/hadoop jar hadoop-examples-1.0.4.jar wordcount conf/  /tmp/out

测试本机hadoop运行正常。


4、配置文件

备注:由于实验集群上有多个hadoop实例(每个节点上都有),因此我部署的hadoop不能使用默认端口,需要专门配置端口。另外,注意主机名不要有“-”、“_”、“.”之类的符号,测试时发现有这些时不正常。

1conf/core-site.xml

主要是配置NameNodefs.default.nameNameNodeURI,形式应该是hdfs://主机名: 端口

<configuration>
  <property>
    <name>fs.default.name</name>  <!-- NameNode-->
    <value>hdfs://blade6:19000</value>
    <!-- Default Port: 9000. -->
  </property>
</configuration>

2Conf/hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.datanode.address</name>
    <value>0.0.0.0:60010</value>
    <!-- Default Port: 50010. -->
  </property>
  <property>
    <name>dfs.datanode.http.address</name>
    <value>0.0.0.0:60075</value>
    <!-- Default Port: 50075. -->
  </property>
  <property>
    <name>dfs.datanode.ipc.address</name>
    <value>0.0.0.0:60020</value>
    <!-- Default Port: 50020. -->
  </property>
  <property>
    <name>dfs.secondary.http.address</name>
    <value>0.0.0.0:60090</value>
    <!-- Default Port: 50090. -->
  </property>
</configuration>

3conf/mapred-site.xml

配置map-reduce相关进程,其中mapred.job.trackerJobTracker的主机(或者IP: PORT

<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>blade6:19001</value>
    <!-- Default Port: 9001. -->
  </property>
  <property>
     <name>mapred.job.tracker.http.address</name>
     <value>0.0.0.0:60030</value>
     <!-- Default Port: 50030. -->
  </property>
  <property>
    <name>mapred.task.tracker.http.address</name>
    <value>0.0.0.0:60060</value>
    <!-- Default Port: 50060. -->
  </property>
</configuration>

4conf/mastersconf/slaves

分别是

blade6
blade10
blade13


5)将配置文件复制到其他节点

(要考虑各个节点的具体情况,保证各节点的配置信息是正确的)


5、启动Hadoop

1)格式化hdfs

在节点maste上 hadoop目录下

bin/hadoop namenode -format

2)启动所有节点

在节点master hadoop目录

启动方式1(同时启动HDFSMap/Reduce

$bin/start-all.sh

启动方式2

$bin/start-dfs.sh
$bin/start-mapred.sh

3)关闭Hadoop

master上 hadoop目录下

bin/stop-all.sh

6、在Hadoop运行程序(以wordcount为例)

部署好编程环境,总要跑个程序例子。从这个角度看,HadoopWordcount有些像编程语言中的Helloworld

在启动Hadoop(运行bin/start-all.sh)后,依次执行

bin/hadoop dfs -mkdir input   // 在hdfs上创建目录input
bin/hadoop dfs -put conf input // 将目录conf放入目录input中
bin/hadoop jar hadoop-examples-0.20.205.0.jar wordcount input/* output
 //运行mapreduce程序,以input目录为输入,以output目录为输出
bin/hadoop dfs -cat output/part-r-00000 // 查看执行结果

附录

HDFS常见操作

hadoop dfs -ls 列出HDFS下的文件
hadoop dfs -ls in 列出HDFS下某个文档中的文件
hadoop dfs -mkdir dir 在HDFS中创建目录
hadoop dfs -put test1.txt test 上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功
hadoop dfs -get in getin 从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out 删除指定文件从HDFS上
hadoop dfs -cat in/* 查看HDFS上in目录的内容
hadoop dfsadmin -report 查看HDFS的基本统计信息,结果如下
hadoop dfsadmin -safemode leave 退出安全模式
hadoop dfsadmin -safemode enter 进入安全模式


7、部分问题

(1) 机器重启后 Hadoop namenode 无法启动

http://blog.csdn.net/limiteewaltwo/article/details/8565523

(2)Hadoop Datanode无法启动

报错

2014-03-19 11:25:42,396 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /tmp/hadoop-xxx/dfs/data: namenode namespaceID = 1081845705; datanode namespaceID = 886839309

http://blog.csdn.net/xw13106209/article/details/6852510


本文出自 “说话的白菜” 博客,谢绝转载!

你可能感兴趣的:(hadoop,部署,运行)