1.通过python编写爬虫,数据存储到hdfs当中
2.通过solr在hdfs当中建立索引并实现全文检索功能
好了,正文开始了!
一,环境搭建
0.centOS6.6 安装及配置
1.python3.4.4安装及环境变量配置
2.hadoop2.6.3安装及环境变量配置
3.solr5.5安装及配置()
4.solr5.5+hdfs配置
正文
0.centOS6.6 安装及配置
安装3台虚拟机
1.安装完centOS后,第一件事:记得用root用户
yum update
2.pdsh 安装:pdsh是一款管理集群的小工具
tar -xjvf pdsh-2.26.tar.bz2cd pdsh-2.26./configure --with-ssh --with-dshgoups --with-machines=/etc/dsh/machinesmake && make install pdsh -V
打印pdsh版本及安装完成!
3.在每台虚拟机上修改hosts文件添加以下内容(/etc/hosts)
192.168.1.131 master192.168.1.132 slave1192.168.1.133 slave2
2.hadoop2.6.3安装及环境变量配置
1.解压hadoop:tar –xvzf hadoop-2.6.3.tar.gz
2.设置环境变量,在~/.bash_profile添加以下内容:
#hadoopexport HADOOP_YARN_USER=hadoopexport HADOOP_HOME=/software/hadoop-2.6.3export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport HADOOP_YARN_HOME=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoopexport LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH
使环境生效,执行source ~/.bash_profile
3.设置所有者:
chown -R hadoop:hadoop hadoop-2.6.3
4.修改hadoop配置文件
首先在’/’目录下建立文件夹:hadoop,hadoop/name,hadoop/tmp,hadoop/dfs,hadoop/dfs/name,hadoop/dfs/data
设置文件夹所有者为hadoopY
①配置文件路径:/software/hadoop-2.6.3/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/software/jdk1.8.0_91
②配置文件路径:/software/hadoop-2.6.3/etc/hadoop/core-site.xml
添加如下内容:
hadoop.tmp.dir file:/hadoop/tmp Abasefor other temporary directories. fs.default.name hdfs://master:9000 dfs.name.dir file:/hadoop/name
③配置文件路径:/software/hadoop-2.6.3/etc/hadoop/hdfs-site.xml
添加如下内容:
dfs.namenode.secondary.http-address master:9001 dfs.namenode.name.dir file:/hadoop/dfs/name dfs.datanode.data.dir file:/hadoop/dfs/data dfs.replication 3 dfs.webhdfs.enabled true dfs.permissions.enabled false
④把配置文件/software/hadoop-2.6.3/etc/hadoop/mapred-site.xml重命名:mv mapred-site.xml.template mapred-site.xml
在配置文件mapred-site.xml添加如下内容:
mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888
⑤修改配置文件:/software/hadoop-2.6.3/etc/hadoop/yarn-site.xml
添加以下内容:
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address master:8032 yarn.resourcemanager.scheduler.address master:8030 yarn.resourcemanager.resource-tracker.address master:8035 yarn.resourcemanager.admin.address master:8033 yarn.resourcemanager.webapp.address master:8088
⑥修改配置文件:/software/hadoop-2.6.3/etc/hadoop/slaves
把localhost 删除,添加以下内容:
masterslave1slave2
5.同步配置到slave1、slave2
scp -r hadoop/
scp -r hadoop/
6.启动hadoop集群
①格式化一个新的分布式文件系统:
$ bin/hadoop namenode -format
②运行hadoop:
执行命令./start-all.sh启动hadoop
启动完成之后查看master 及slave1和slave2 的状态
[hadoop@master ~]$ jps3297 NodeManager2897 DataNode4769 Jps3205 ResourceManager2807 NameNode3070 SecondaryNameNode
[hadoop@slave1 ~]$ jps2593 DataNode3261 Jps[hadoop@slave1 ~]$
[hadoop@slave2 ~]$ jps3376 Jps2612 DataNode[hadoop@slave2 ~]$
7.进行环境测试
输入hadoop fs -mkdir /tmp
输入hadoop fs -ls /
如何显示如上图结果,及环境搭建完成!
4.solr5.5+hdfs配置
1. 下载tomcat9 及solr5.5
2.解压tomcat9级solr5.5 存放路径为tomcat9:/usr/local/solr/tomcat9
solr5.5:/usr/local/solr/solr-5.5.0
3.在tomcat的webapps中新建文件夹solr
mkdir solr
把solr-5.5.0\server\solr-webapp\webapp目录下的文件全部复制进来
cd /usr/local/solr/solr-5.5.0/server/solr-webapp/webapp/ cp -r * /usr/local/solr/tomcat9/webapps/solr/
4.在tomcat9的WEB-INF文件下新建classes文件夹,把solr-5.5.0\server\resources\log4j.properties复制到classes文件夹里,这样才能看到solr的日志。
cd /usr/local/solr/tomcat9/webapps/solr/WEB-INF/ mkdir classes cp /usr/local/solr/solr-5.5.0/server/resources/log4j.properties /usr/local/solr/tomcat9/webapps/solr/WEB-INF/classes/
5.修改 WEB-INF/web.xml
solr/home /usr/local/solr/solr_home java.lang.String
在/usr/local/solr/目录下执行
mkdir solr_home
6.把 solr-5.5.0\server\lib\ext 下的jar包全部复制到 WEB-INF/lib目录下
cp /usr/local/solr/solr-5.5.0/server/lib/ext/*.jar /usr/local/solr/tomcat9/webapps/solr/WEB-INF/lib/
7.在solr_home(WEB-INF/web.xml指定的目录)中创建一个core_sea(名字随意),core1中创建两个文件夹,data,conf。
mkdir core_sea mkdir core_sea/data mkdir core_sea/conf
把 solr-5.5.0\server\solr\configsets\basic_configs\conf 里边的文件全部复制到 新建的conf文件下。
cp -r /usr/local/solr/solr-5.5.0/server/solr/configsets/basic_configs/conf/* /usr/local/solr/solr_home/core_sea/conf/
把solr-5.5.0\server\solr\solr.xml复制到solr_home目录下。
cp /usr/local/solr/solr-5.5.0/server/solr/solr.xml /usr/local/solr/solr_home/
8.结束,启动tomcat, 输入http://localhost:8080/solr/index.html 。访问正常,即成功。
/usr/local/solr/tomcat9/bin# ./startup.sh
可以看到 No cores available
没有关系,点击它,输入我们创建的core_sea,name与instanceDir均填写core_sea,其他不动,点击Add Core OK!
4.solr5.5+hdfs配置
1.打开solrconfig.xml
将以上代码替换如下: hdfs://localhost:9000/solr true 1 true 16384 true true 16 192
非常重要的一点:
将${solr.lock.type:native} 替换如下:${solr.lock.type:hdfs}
2.配置hadoop hdfs的权限
配置:/usr/local/hadoop/hadoop-2.6.3/etc/hadoop/hdfs-site.xml
添加以下内容:
dfs.webhdfs.enabled true dfs.permissions.enabled false
3.完成,重新启动solr,happy。
以下为建立索引前后的目录: