i586.bin
1.3、设置JAVA_HOME环境系统变量输入:vi/etc/environment在文件中添加:exportJAVA_HOME=/root/jdk1.6.0_24exportJRE_Home=/root/jdk1.6.0_24/jreexportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib同样,修改第二个文件。输入:vi/etc/profile在umask022之前添加以下语句:exportJAVA_HOME=/root/jdk1.6.0_24exportJRE_Home=/root/jdk1.6.0_24/jreexportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin1.4、注销用户,检测JDK版本。输入:java-version2、集群环境介绍集群包含三个节点:1个namenode,2个datanode,节点之间局域网连接,可以相互ping通。节点IP地址分布如下:Namenode:master@192.168.1.10Datanode1:slave1@192.168.1.20Datanode2:slave2@192.168.1.21三台节点上均是CentOS系统,Hadoop在/root/hadoop/目录下。在/etc/hosts上添加主机名和相应的IP地址:192.168.1.10master192.168.1.20slave1192.168.1.21slave23、SSH无密码验证配置2.1Hadoop需要使用SSH协议,namenode将使用SSH协议启动namenode和datanode进程,伪分布式模式数据节点和名称节点均是本身,必须配置SSHlocalhost无密码验证。用root用户登录,在家目录下执行如下命令:ssh-keygen-trsa[root@master~]#ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enter
fileinwhichtosavethekey(/root/.ssh/id_rsa):
&按回车默认路径&Createddirectory’/root/.ssh’.&创建/root/.ssh
目录&Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentificationhasbeensavedin/root/.ssh/id_rsa.Your
publickeyhasbeensavedin/root/.ssh/id_rsa.pub.The
keyfingerprintis:c6:7e:57:59:0a:2d:85:49:23:cc:c4:58:ff:db:5b:38root@master通过以上命令将在/root/.ssh/
目录下生成id_rsa私钥和id_rsa.pub
公钥。进入/root/.ssh
目录在namenode节点下做如下配置:[root@master.ssh]#catid_rsa.pub
>authorized_keys[root@master.ssh]#scpauthorized_keys192.168.1.20:/root/.ssh/[root@master
.ssh]#scpauthorized_keys192.168.1.21:/root/.ssh/
配置完毕,可通过ssh本机IP测试是否需要密码登录。2.2和namenode无密码登录所有Datanode原理一样,把Datanode的公钥复制到Namenode的.ssh
目录下。[root@slave1.ssh]#scpauthorized_keys1192.168.1.10:/root/.ssh[root@slave2.ssh]#scpauthorized_keys2192.168.1.10:/root/.ssh
将刚传过来的authorized_keys1、2加入到authorized_keys[root@master.ssh]#catauthorized_keys1>authorized_keys[root@master.ssh]#catauthorized_keys2>authorized_keys这样也能在Datanode上关闭和启动Hadoop服务。4、Hadoop配置下载hadoop-0.20.2.tar.gz
,进行解压。tarzxvfhadoop-0.20.2.tar.gz
修改/etc/profile,加入如下:#sethadooppathexportHADOOP_HOME=/root/hadoopexportPATH=$HADOOP_HOME/bin:$PATH4.1、进入hadoop/conf,配置Hadoop配置文件4.1.1配置hadoop-env.sh
文件添加#setjavaenvironmentexportJAVA_HOME=/root/jdk1.6.0_24编辑后保存退出。4.1.2配置core-site.xml#vicore-site.xml4.1.3配置hdfs-site.xml#vihdfs-site.xml4.1.4配置mapred-site.xml#vimapred-site.xml4.1.5配置masters#vimasters192.168.1.104.1.6配置slaves#vislaves192.168.1.20192.168.1.214.2、Hadoop启动4.2.1进入/root/hadoop/bin目录下,格式化namenode#./hadoopnamenode�Cformat4.2.2启动hadoop所有进程在/root/hadoop/bin目录下,执行start-all.sh
命令启动完成后,可用jps命令查看hadoop进程是否启动完全。正常情况下应该有如下进程:10910NameNode11431Jps11176SecondaryNameNode11053DataNode11254JobTracker11378TaskTracker偶在搭建过程中,在此环节出现的问题最多,经常出现启动进程不完整的情况,要不是datanode无法正常启动,就是namenode或是TaskTracker启动异常。解决的方式如下:1)在Linux下关闭防火墙:使用serviceiptablesstop命令;2)再次对namenode进行格式化:在/root/hadoop/bin目录下执行hadoopnamenode-format命令3)对服务器进行重启4)查看datanode或是namenode对应的日志文件,日志文件保存在/root/hadoop/logs目录下。5)再次在/bin目录下用start-all.sh
命令启动所有进程,通过以上的几个方法应该能解决进程启动不完全的问题了。4.2.3查看集群状态在bin目录下执行:hadoopdfsadmin-report#hadoopdfsadmin�Creport4.3在WEB页面下查看Hadoop工作情况打开IE浏览器输入部署Hadoop服务器的IP:http://localhost:50070http://localhost:50030。5、Hadop使用一个测试例子wordcount:计算输入文本中词语数量的程序。WordCount在Hadoop主目录下的java程序包hadoop-0.20.2-examples.jar
中,执行步骤如下:在/root/hadoop/bin/目录下进行如下操作:./hadoopfs-mkdirinput(新建目录名称,可任意命名)mkdir/root/a/vi/root/a/a.txt
写入helloworldhello#hadoopfs-copyFromLocal/root/a/input在/root/hadoop/bin下执行:#./hadoopjarhadoop-0.20.2-examples.jar
wordcountinputoutput(提交作业,此处需注意input与output是一组任务,下次再执行wordcount程序,还要新建目录intput1与output1不能跟input与output重名)6、Maven安装6.1下载Maven解压tarvxzfapache-maven-3.0.2-bin.tar.gzmv
apache-maven-3.0.2/root/maven6.2vi~/.bashrc
添加如下两行exportM3_HOME=/root/mavenexportPATH=${M3_HOME}/bin:${PATH}6.3先logout,之后再login查看maven版本,看是否安装成功mvn-version7、安装mahout安装方法见:https://cwiki.apache.org/confluence/display/MAHOUT/BuildingMahout8
、hadoop集群来执行聚类算法8.1数据准备cd/root/hadoopwgethttp://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data8.2
./hadoopfs-mkdirtestdata./hadoopfs-putsynthetic_control.data
testdata./hadoopfs-lsrtestdatabin/hadoopjar/root/mahout/mahout-examples-0.4-job.jar
org.apache.mahout.clustering.syntheticcontrol.kmeans.Job8.3查看一下结果吧bin/mahoutvectordump–seqFile/user/root/output/data/part-r-00000这个直接把结果显示在控制台上。9、hadoop集群来执行推荐算法分布式bin/hadoopjar/root/trunk/mahout-distribution-0.4/mahout-core-0.4-job.jar
org.apache.mahout.cf.taste.hadoop.item.RecommenderJob
-Dmapred.map.tasks=3-Dmapred.reduce.tasks=3-Dmapred.input.dir=testdata/100wan.txt
-Dmapred.output.dir=output2伪分布式bin/hadoopjar/root/trunk/mahout-distribution-0.4/mahout-core-0.4-job.jar
org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob
–recommenderClassNameorg.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender
-Dmapred.input.dir=testdata/10wan.dat
-Dmapred.output.dir=output_w10wan10、其他离开安全模式:hadoopdfsadmin-safemodeleave