我的家園

          我的家園

          ? ? ? ? 目前我們使用的是hadoop的核心功能,在hadoop的網站上就是hadoop-core,里面包括兩個部分,一個是HDFS,也就是hadoop distributed filesysem.一個是mapred,一個map/reduce的框架。?
          在hadoop的架構中,對于hdfs,存在一個namenode,多個datanode,namenode存儲的是各個datanode的元數據,比如他所在的服務器地址,存儲了那些數據塊等。當客戶端訪問hdfs時,他首先和namenode交互,得到他要的具體的datanode的信息,然后就可以和datanode進行交互了。也就相當于namenode是個路由表一樣的情況。對于mapred,存在一個jobtracker,多個tasktracker,jobtracker的客戶端組裝job,描述map任務,reduce任務,輸入輸出的類型,最后把這個job提交給jobtracker。jobtracker會和namenode溝通,了解要操作的數據所在的位置,盡量的讓任務在數據所在的服務器上執行。現在配置的服務器有3臺,IP地址分別為192.168.16.107, 192.168.16.108,192.168.16.109.其中107這臺會同時作為namenode和jobtracker,而108和109作為datanode和tasktracker.?
          下面我們開始配置分布式的hadoop,一,首先給幾臺服務器取名,這里107取名為m1,108為s1,109為s2.107上修改為?
          192.168.16.107 m1?
          192.168.16.108 s1?
          192.168.16.109 s2運行命令hostname m1測試一下,確定ping m1,ping s1,ping s2都能ping到。中間可能需要重啟服務器。108上修改為?
          192.168.16.107 m1?
          192.168.16.108 s1運行命令hostname s1?
          測試一下,確定ping m1,ping s1都能ping到。中間可能需要重啟服務器。109上修改為?
          192.168.16.107 m1?
          192.168.16.109 s2運行命令hostname s2?
          測試一下,確定ping m1,ping s2都能ping到。中間可能需要重啟服務器。二,配置ssh證書,保證m1在執行ssh s1,ssh s2這樣的命令時不需要輸入密碼。在m1服務器上執行ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa?
          cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys拷貝id_dsa.pub到s1服務器上,執行cat id_dsa.pub >> ~/.ssh/authorized_keys?
          拷貝id_dsa.pub到s2服務器上,執行cat id_dsa.pub >> ~/.ssh/authorized_keys?
          執行上面的命令時如果沒有相應目錄,則先創建測試一下,第一次執行ssh s1,ssh s2需要確認一下,是為了增加known host。三,修改nutch/conf下的幾個配置文件,1)master的內容修改為?
          m1,2)salves的內容修改為?
          s1?
          s23)hadoop-env.sh,?
          export JAVA_HOME=/opt/java/latest?
          export HADOOP_HOME=/root/nutch_bin?
          export HADOOP_CONF_DIR=/root/nutch_bin/conf4)修改hadoop-site.xml<?xml version="1.0"?>?
          <?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>?
          <property>?
          <name>fs.default.name</name>?
          <value>hdfs://m1:9000</value>?
          </property><property>?
          <name>mapred.job.tracker</name>?
          <value>m1:9001</value>?
          </property><property>?
          <name>hadoop.tmp.dir</name>?
          <value>/root/nutch_bin/tmp</value>?
          </property><property>?
          <name>dfs.name.dir</name>?
          <value>/root/nutch_bin/filesystem/name</value>?
          </property><property>?
          <name>dfs.data.dir</name>?
          <value>/root/nutch_bin/filesystem/data</value>?
          </property><property>?
          <name>dfs.replication</name>?
          <value>2</value>?
          </property>?
          </configuration>5)如3所示,nutch_bin目錄在/root下。cd到root目錄下,運行scp -r nutch_bin s1:/root/.再scp -r nutch_bin s2:/root/.6)運行nutch使用分布式的hadoopbin/start-all.sh?
          bin/hadoop namenode -format?
          bin/hadoop dfs -put urls urls?
          bin/nutch crawl urls -dir crawl?
          7)修改tomcat下的nutch.war,使其使用hdfs<?xml version="1.0"?>?
          <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>?
          <configuration>?
          <property>?
          <name>fs.default.name</name>?
          <value>hdfs://m1:9000</value>?
          </property>?
          <property>?
          <name>searcher.dir</name>?
          <value>crawl</value>?
          </property>?
          </configuration>



          已有 0 人發表留言,猛擊->>這里<<-參與討論


          ITeye推薦




          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 西宁市| 历史| 锡林浩特市| 内乡县| 宣汉县| 庆元县| 司法| 田林县| 马公市| 灵宝市| 阿克苏市| 平度市| 栾川县| 墨竹工卡县| 常山县| 封丘县| 南川市| 和田县| 久治县| 西青区| 台南市| 奈曼旗| 灵寿县| 星座| 六盘水市| 炉霍县| 虹口区| 大埔区| 汉寿县| 万荣县| 淳化县| 丹东市| 苗栗市| 德州市| 黎城县| 上饶县| 宣威市| 锦屏县| 定结县| 平定县| 三门县|