python3.4.4+solr5.5+hadoop2.6.3 Linux

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.bz2
cd pdsh-2.26
./configure --with-ssh --with-dshgoups --with-machines=/etc/dsh/machines
make && make install
pdsh -V

打印pdsh版本及安装完成!

 3.在每台虚拟机上修改hosts文件添加以下内容(/etc/hosts)

192.168.1.131 master
192.168.1.132 slave1
192.168.1.133 slave2

2.hadoop2.6.3安装及环境变量配置

1.解压hadooptar –xvzf hadoop-2.6.3.tar.gz

2.设置环境变量,在~/.bash_profile添加以下内容:

#hadoop
export HADOOP_YARN_USER=hadoop
export HADOOP_HOME=/software/hadoop-2.6.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH

 

使环境生效,执行source ~/.bash_profile

3.设置所有者:

chown -R hadoop:hadoop hadoop-2.6.3

4.修改hadoop配置文件

首先在’/’目录下建立文件夹:hadoophadoop/namehadoop/tmphadoop/dfshadoop/dfs/namehadoop/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

添加如下内容:

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/hadoop/tmp</value>
    <description>Abasefor other temporary directories.</description>
  </property>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>dfs.name.dir</name>
    <value>file:/hadoop/name</value>
  </property>
</configuration>

 

③配置文件路径:/software/hadoop-2.6.3/etc/hadoop/hdfs-site.xml

添加如下内容:

<configuration>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/hadoop/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/hadoop/dfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
  </property>
</configuration>

 

④把配置文件/software/hadoop-2.6.3/etc/hadoop/mapred-site.xml重命名:mv mapred-site.xml.template mapred-site.xml

在配置文件mapred-site.xml添加如下内容:

 

<configuration>
  <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
 <property>
  <name>mapreduce.jobhistory.address</name>
  <value>master:10020</value>
 </property>
 <property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>master:19888</value>
 </property>
</configuration>

 

⑤修改配置文件:/software/hadoop-2.6.3/etc/hadoop/yarn-site.xml

添加以下内容:

 

<configuration>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
  </property>
  <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
   <name>yarn.resourcemanager.address</name>
   <value>master:8032</value>
  </property>
  <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:8030</value>
  </property>
  <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>master:8035</value>
  </property>
  <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>master:8033</value>
  </property>
  <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:8088</value>
  </property>
<!-- Site specific YARN configuration properties -->
</configuration>

⑥修改配置文件:/software/hadoop-2.6.3/etc/hadoop/slaves

localhost 删除,添加以下内容:

master
slave1
slave2

5.同步配置到slave1slave2

scp -r hadoop/ hadoop@slave1:/software/hadoop-2.6.3/etc

scp -r hadoop/ hadoop@slave2:/software/hadoop-2.6.3/etc

6.启动hadoop集群

 ①格式化一个新的分布式文件系统:

$ bin/hadoop namenode -format

 ②运行hadoop:

执行命令./start-all.sh启动hadoop

 启动完成之后查看master slave1slave2 的状态

[hadoop@master ~]$ jps
3297 NodeManager
2897 DataNode
4769 Jps
3205 ResourceManager
2807 NameNode
3070 SecondaryNameNode
[hadoop@slave1 ~]$ jps
2593 DataNode
3261 Jps
[hadoop@slave1 ~]$ 
[hadoop@slave2 ~]$ jps
3376 Jps
2612 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

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr/solr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
在/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

 <directoryFactory name="DirectoryFactory" 
                    class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
  </directoryFactory>
将以上代码替换如下:
<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory"> <str name="solr.hdfs.home">hdfs://localhost:9000/solr</str> <bool name="solr.hdfs.blockcache.enabled">true</bool> <int name="solr.hdfs.blockcache.slab.count">1</int> <bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool> <int name="solr.hdfs.blockcache.blocksperbank">16384</int> <bool name="solr.hdfs.blockcache.read.enabled">true</bool> <bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool> <int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int> <int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int> </directoryFactory>

非常重要的一点:

<lockType>${solr.lock.type:native}</lockType>
替换如下:
<lockType>${solr.lock.type:hdfs}</lockType>

2.配置hadoop hdfs的权限

配置:/usr/local/hadoop/hadoop-2.6.3/etc/hadoop/hdfs-site.xml

添加以下内容:

<property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
</property>
<property>
     <name>dfs.permissions.enabled</name>
     <value>false</value>
</property>

 

3.完成,重新启动solr,happy。

 

以下为建立索引前后的目录:

 

posted on 2016-05-20 09:04 海水中的泪 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/sunjter/p/5510893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值