设为首页 收藏本站
查看: 1007|回复: 0

Nutch-hadoop集群配置——Ubuntu10.04

[复制链接]

尚未签到

发表于 2015-11-11 12:25:42 | 显示全部楼层 |阅读模式
  
一·集群配置——三台机器,njust01作为namenode,njust02,njust03作为datanode:
1.      修改各主机的主机名,以区分不同的机器:
打开/etc/hostnamesudo gedit /etc/hostname
对于namenode节点:
将主机名改成njust01,并保存关闭。如下图所示:
DSC0000.gif

对于各个datanode节点:
依次将主机名改成njust02njust03……,并保存关闭。图略。
2.      配置各个主机之间IP与主机名的对应关系
修改集群中各个主机/etc/hosts文件:sudo gedit /etc/hosts
将集群中各个主机的IP与主机名都列在此处,如图所示:
注意要将第一行注释掉:#127.0.0.1   localhost.localdomain      localhost
DSC0001.gif

这里补充个小知识——如何更改主机的IP地址:
首先,要使用ifconfig命令,查看当前网卡IP地址。如果显示为eth1,下面就要将eth0改成eth1。如果就是eth0,下面的配置内容就不需要做更改。

sudo gedit /etc/network/interfaces
在打开的文件中,写入以下信息。要注意一点:#设定eth0的IP这句话是给您看的,不需要写在文件中。如果把这些注释写在文件中,会导致IP配置失败。


auto lo
iface lo inet loopback             #lo 是本地回环地址:127.0.0.1 并且打开文件就可以看到这两行

auto eth0
iface eth0 inet static
address 192.168.1.15
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
       #设定eth0的IP,这些是需要自己配的


关闭文件。
这样,IP并没有立即生效。
sudo /etc/init.d/networking restart
使得IP地址生效。此时,可以使用ifconfig命令来查看当前IP地址。这时候就能ping到局域网中的电脑了。但是上不了Internet,是因为没有设置DNS的原因。DNS信息保存在/etc/resolv.conf中,一旦更改,立即生效。

sudo gedit /etc/resolv.conf
在文件中写入DSN服务器的IP地址:
nameserver 202.119.80.10
nameserver 218.2.135.1


现在可以上网了。


3.      安装openssh-server,并配置各节点的公钥私钥
对于每个节点:
安装openssh-serverapt-get install openssh-server
创建公钥私钥:ssh-keygen –t rsa
期间会要求输入一些信息,直接按回车就可以。这样,在默认的路径(其中njust是当前用户名)/home/njust/.ssh目录下创建私钥id_rsa和一个公钥id_rsa.pub

对于datanode节点:
将自己的公钥发送到namenode上:
cpid_rsa.pub datanode01.id_rsa.pub
scpdatanode01.id_rsa.pub namenode节点ip地址(在我的配置方案中,是192.168.1.13):/home/njust/.ssh
这里需要注意,由于每个datanode节点都要将自己的公钥传到namenode的相同路径下,因此,各个datanode发送的公钥文件名不能相同。这里使用cp命令,在每台datanode节点上将公钥文件复制为唯一名字的文件。

对于namenode节点:
在收到所有datanode发送过来的公钥文件之后,要综合这些文件(包括自身),并将这些文件发送到每个节点上:
cpid_rsa.pub authorized_keys
catdatanode01.id_rsa.pub >> authorized_keys
......
cat datanode0n.id_rsa.pub>> authorized_keys
scpauthorized_keys datanode的ip地址:/home/njust/.ssh
这时一定要查看一下ssh配置是否成功,查看方式是使用ssh命令:ssh 其他机器ip,如果不需要密码就可以登录,就说明配置成功。如果还需要密码,干脆无法登录,则需要重启电脑。重启之后再次使用ssh命令,如果还需要密码或者无法登录,则需要重新配置一遍。

4.      安装JDK
Namenode节点上新建文件夹/usr/program,下载JDK安装包jdk-6u22-linux-i586.bin,复制到目录/usr/ program下,在命令行进入该目Linux 下,执行命令./ jdk-6u22-linux-i586.bin,命令运行完毕,将在目录下生成文件夹jdk1.6.0_22,安装完毕。 安装完成后,修改/usr/program目录拥有着为njust用户:chown -R njust:njust /usr/program
/usr/ program目录需要复制到所有数据节点上。

Java环境变量的配置
命令行中执行命令gedit /etc/profile,并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)
# setjava environment
exportJAVA_HOME=/usr/program/jdk1.6.0_22/
export JRE_HOME=/usr/program/jdk1.6.0_22/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
保存并退出,执行以下命令使配置生效 chmod +x /etc/profile source /etc/profile 配置完毕,在命令行中使用命令”java -version”可以判断是否成功。
njust下测试java -version
/etc/profile复制到所有数据节点上。

5.      集群配置
在namenode上执行:
下载nutch-1.2,将其解压到/usr/local目录下:
cd /usr/local
tar zxvfnutch-1.2.tar.gz

配置Hadoop的配置文件——与以往版本不同,Nutch-1.2中的配置文件(xxx-site.xml)散落在三处,均在nutch-1.2/conf/目录下:
(a)配置hadoop-env.sh
gedit nutch-1.2/conf/hadoop-env.sh
# set java environment
exportJAVA_HOME=/usr/program/jdk1.6.0_22/
(b)配置其他xml文件
打开core-site.xml
<configuration>

         <property>
                   <name>fs.default.name</name>
                   <value>hdfs://njust01:9000</value>
         </property>

         <property>
                   <name>hadoop.tmp.dir</name>
                   <value>/usr/local/hadoop-0.20.2/hadooptmp</value>
         </property>

</configuration>

打开hdfs-site.xml
<configuration>

         <property>
                   <name>dfs.data.dir</name>
                   <value>/usr/local/hadoop-0.20.2/data</value>
         </property>

         <property>
                   <name>dfs.name.dir</name>
                   <value>/usr/local/hadoop-0.20.2/name</value>
         </property>

         <property>
                   <name>dfs.replication</name>
                   <value>2</value>
<description>副本个数,不配置默认是3,应小于datanode机器数量</description>

         </property>

</configuration>

打开mapred-site.xml
<configuration>

         <property>
                   <name>mapred.job.tracker</name>
                   <value>njust01:9001</value>
         </property>

         <property>
                   <name>mapred.local.dir</name>
                   <value>/usr/local/hadoop-0.20.2/temp</value>
         </property>

         <property>
                   <name>mapred.map.tasks</name>
                   <value>40</value>
         </property>

         <property>
                   <name>mapred.reduce.tasks</name>
                   <value>4</value>
         </property>

</configuration>
在配置完xml文件之后,需要手动创建目录/usr/local/hadoop-0.20.2,并使用chown –R njust:njust/usr/local/hadoop-0.20.2,赋予njust用户权限。

打开masters文件,加入namenode主机名
njust01
打开slaves文件,加入datanode主机名
njust02
njust03

最后,将/etc/hosts/etc/profile复制到所有机器的相应位置上;将/usr/program/usr/local/nutch-1.2这两个目录全部复制到所有机器的相应位置上。

6.      集群启动
namenode上执行以下命令:
cd nutch所在目录/bin
./hadoop namenode –format
./start-all.sh

Hadoop会依次启动namenode, datanode1,datanode2,然后启动secondarynamenode。再启动jobtracker,然后启动tasktracker1,最后启动tasktracker2
启动hadoop成功后,在namenode中生成了hadooptmp文件夹,在datanode中生成了hdfs文件夹和mapred文件夹。 namenode上用java自带的小工具jps查看进程 njust@njust01:~/$ jps
8383JobTracker
8733 Jps
8312SecondaryNameNode
8174NameNode

每个datanode上查看进程
njust@njust02:~/$ jps
7636 DataNode
7962 Jps
7749TaskTracker

在namenode上查看集群状态(以下状态信息是抄的配置那份经典配置教程)
bin/hadoopdfsadmin report

ConfiguredCapacity: 16030539776 (14.93 GB)
PresentCapacity: 7813902336 (7.28 GB)
DFSRemaining: 7748620288 (7.22 GB)
DFS Used:65282048 (62.26 MB)
DFS Used%: 0.84%
Datanodesavailable: 2 (2 total, 0 dead)

Name:10.10.97.142:50010
DecommissionStatus : Normal
ConfiguredCapacity: 8015269888 (7.46 GB)
DFS Used:32641024 (31.13 MB)
Non DFS Used:4364853248 (4.07 GB)
DFSRemaining: 3617775616(3.37 GB)
DFS Used%:0.41%
DFSRemaining%: 45.14%
Last contact:Thu May 13 06:17:57 CST 2010

Name: 10.10.97.144:50010
DecommissionStatus : Normal
ConfiguredCapacity: 8015269888 (7.46 GB)
DFS Used:32641024 (31.13 MB)
Non DFSUsed: 3851784192 (3.59 GB)
DFSRemaining: 4130844672(3.85 GB)
DFS Used%:0.41%
DFSRemaining%: 51.54%
Lastcontact: Thu May 13 06:17:59 CST 2010

Hadoop web 方式查看:http:// namenode ip地址:50070
Hadoop查看工作情况: http:// namenode ip地址:50030


7.      开始爬网页
配置Nutch配置文件
(1)配置所有节点上的nutch-1.2/conf/nutch-site.xml文件
nutch-site.xml文件
<?xmlversion=&quot;1.0&quot;?> <?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;configuration.xsl&quot;?><!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>http.agent.name</name>
<value>nutch-1.2</value>
<description>爬虫和搜索此参数必须配置</description>
</property>
</configuration>

(2) 配置所有节点上的conf/crawl-urlfilter.txt文件
# skip file:,ftp:, & mailto: urls
-^(file|ftp|mailto):
# skip imageand other suffixes we can't yet parse-/.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$
# skip URLscontaining certain characters as probable queries, etc.
-[?*!@=]
# skip URLswith slash-delimited segment that repeats 3+ times, to break loops-.*(/[^/]+)/[^/]+/1/[^/]+/1/
# accepthosts in MY.DOMAIN.NAME
# 允许下载所有
+^
# skipeverything else
-.

在执行爬虫之前,要创建一个本地文件,名为urlstouch /usr/local/nutch-1.2/urls
在文件内写入要爬的网址,如http://blog.sina.com.cn/twocold
执行爬虫命令:
cd /usr/local/nutch-1.2/bin
./hadoop dfs –copyFromLocal /usr/local/nutch-1.2/urlsurls
./nutch crawl  urls -dir data -depth 3 -topN 10

注意:
./hadoop dfs –copyFromLocal/usr/local/nutch-1.2/urls urls
该命令中的最后一个参数urls指的是hdfs中的urls文件,也就是说,将本地的某个urls文件复制到hdfs中。该命令执行之后,就会在hdfs中的/user/njust/目录下创建一个名为urls的文件。

./nutch crawl  urls -dir data-depth 3 -topN 10
该命令就是以hdfs中的urls文件作为爬虫要爬的入手地址。

如果在爬行过程中出现以下语句:
Generator: 0 records selected for fetching, exiting ...
Stoppingat depth=1 - no more URLs to fetch.

就说明爬虫运行失败。
但是,不是什么情况下都失败。具体为什么会失败,还不清楚。估计是网址不能爬导致的。
我们的需求是,爬论坛,爬博客,爬微博。

比如我试过爬CSDN论坛上的某个人发的一个贴,但是就报上面的错。
但是我爬韩寒的博客,就可以。但是也不是什么都能爬下来,博文的回复就爬不到。
还请大侠指教一二!多谢啦!


关闭整个hadoop
namenode中,使用以下命令:
cd  /usr/local/nutch-1.2/bin
./stop-all.sh


8.      检索
(1)      命令行下检索
使用Hadoop集群中的一台机器,配置nutch-site.xml文件,配置如下:
<property>
<name>http.agent.name</name> 不可少,否则无搜索结果
<value>nutch-1.0</value>
<description>HTTP 'User-Agent' requestheader.</description>
</property>
<property>
<name>searcher.dir</name>
<value>/user/njust/data</value>
<!
该值是HDFS中的目录,这里是绝对路径,即爬虫生成的data目录在HDFS中的/user/nutch/data目录下。由Hadoop-site.xml中的fs.default.name参数可以决定它的HDFS绝对路径是:hdfs://gc04vm12:9000/user/nutch/data 对应HDFS中的目录情况如下: hdfs中的目录情况 bin/hadoop dfs -ls drwxr-xr-x -nutch supergroup 0 2010-05-18 17:31 /user/nutch/data
-->
<description>index dir </description>
</property>

使用检索命令:
cd /usr/local/nutch-1.2/bin
./nutchorg.apache.nutch.searcher.NutchBean 要检索的关键字,如中国

如果出现Total hits: 0,则说明没有找到与关键字匹配的内容。这个还要测一下。为什么在tomcat中就可以搜索到内容。在命令行里就搜索不到!
也请大侠指教!

(2)      Tomcat下检索
安装tomcat-6.0.29
在官网下载Core版本的apache-tomcat-6.0.29.tar.gz
解压缩到/usr/program目录下:
cd  /usr/program
tar zxvf apache-tomcat-6.0.29.tar.gz

配置tomcat环境变量
sudo gedit /etc/profile
umask 022 之前添加:
export CATALINA_HOME=/opt/apache-tomcat-6.0.29
重启!重启计算机后,/etc/profile 的改变才会生效。

启动和测试
cd  /usr/program/apache-tomcat-6.0.28/bin,可以看见里面有几个bash 脚本,在bin目录下使用
./startup.sh命令就可以开启服务了。
运行$./startup.sh结果应该显示:
   Using CATALINA_BASE: /usr/share/tomcat6
   Using CATALINA_HOME: /usr/share/tomcat6
   Using CATALINA_TMPDIR: /usr/share/tomcat6/temp
   Using JRE_HOME:    /usr/lib/jvm/java/jdk1.6.0_22
  Using CLASSPATH: /usr/share/tomcat6/bin/bootstrap.jar

打开你的浏览器,输入:localhost:8080。出现 tomcat 欢迎界面表示配置成功。

tomcat中配置nutch
nutch-1.2目录下的nutch-1.2.war复制到tomcat安装目录下的webapps目录下(***/ tomcat/webapps/
浏览器中输入http://localhost:8080/nutch-1.2,将自动解压nutch-1.2.war,在webapps下生成nutch-1.2目录。

配置***/tomcat/webapps/nutch-1.2/WEB-INF/classes/目录下的core-site.xml文件
<property>
<name>fs.default.name</name>
<value>hdfs://njust01:9000</value><!-这里njust01是当前机器的主机名-&agrave;
<description></description>
</property>

配置***/tomcat/webapps/nutch-1.2/WEB-INF/classes/目录下的nutch-site.xml文件
<property>
<name>http.agent.name</name>不可少,否则无搜索结果
<value>nutch-1.0</value>
<description>HTTP'User-Agent' request header.</description>
</property>
<property>
<name>searcher.dir</name>
<value>/user/njust/data</value>
<! 该值是HDFS中的目录,这里是绝对路径,即爬虫生成的data目录在HDFS中的/user/njust/data目录下。由Hadoop-site.xml中的fs.default.name参数可以决定它的HDFS绝对路径是: hdfs://njust01:9000/user/njust/data对应HDFS中的目录情况如下:
hdfs中的目录情况bin/hadoop dfs -ls drwxr-xr-x - nutch supergroup 0 2010-05-18 17:31/user/nutch/data -->
<description>index dir </description>
</property>


按照上面的配置之后,启动tomcat,可以成功,但是在使用中文时会发现乱码,因为NUTCH本身页面是unicode, 而TOMCAT给的应该是GBK,所以有这个问题,改一下tomcat/conf/server.xml


    <Connector port=&quot;8080&quot;protocol=&quot;HTTP/1.1&quot;

              connectionTimeout=&quot;20000&quot;

              redirectPort=&quot;8443&quot;/>

改为

    <Connector port=&quot;8080&quot;protocol=&quot;HTTP/1.1&quot;

              connectionTimeout=&quot;20000&quot;

              redirectPort=&quot;8443&quot; URIEncoding='utf-8'/>

就是加了个编码。


重启tomcat
cd  /usr/program/apache-tomcat-6.0.29/bin
./shutdown.sh
./startup.sh

在浏览器中输入http://localhost:8080/nutch-1.2,出现如下页面:
DSC0002.gif
在搜索框中输入中文搜索内容(在此之前tomcat的编码一定要按照上面的方式添加过),如浓烟升起,点击搜索,就可以查看到结果。


             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137885-1-1.html 上篇帖子: 离线安装cloudera manager server和hadoop集群 下篇帖子: Weka and Hadoop
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表