hadoop分布式搭建
一、首先是搞好master
1、創建用戶組
groupadd hadoop? 添加一個組
useradd hadoop -g hadoop? 添加用戶
2、jdk的安裝
這里安裝的版本是jdk-7u9-linux-i586.tar.gz ,使用 tar -zsvf?jdk-7u9-linux-i586.tar.gz? -C /opt/? 命令將其解壓到/opt目錄下,并將解壓后的文件夾jdk-7u9-linux-i586改名為java.
jdk安裝好就要配置環境變量了,使用vi /etc/profile命令編輯添加如下內容:
export JAVA_HOME=/opt/java/jdk
exprot PATH=$JAVA_HOME/bin:$PATH
配置好之后要用命令source /etc/profile使配置文件生效,這樣jdk就安裝完畢了。安裝完之后不要忘了將所有者設置為hadoop。
使用命令chown -R hadoop:hadoop java/
3.hadoop的安裝
hadoop的版本是hadoop-0.20.2.tar.gz,也把它解壓到/opt目錄下面,改名為hadoop。
hadoop也要設置環境變量,使用vi /etc/profile命令編輯添加如下內容:
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
同樣也要執行source /etc/profile使配置文件生效,然后執行命令使用命令chown -R hadoop:hadoop hadoop/將其所有者改為hadoop
4、修改地址解析文件/etc/hosts,加入
192.168.137.110 master
192.168.137.111 slave1
192.168.137.112 slave2
5、修改hadoop的配置文件
首先切換到hadoop用戶,su hadoop
①修改hadoop目錄下的conf/hadoop-env.sh文件
加入java的安裝路徑export JAVA_HOME=/opt/java/jdk
②把hadoop目錄下的conf/core-site.xml文件修改成如下:
1 <property>2 <name>hadoop.tmp.dir</name>3 <value>/hadoop</value>4 </property>5 <property>6 <name>fs.default.name</name>7 <value>hdfs://master:9000</value>8 </property>9 <property> 10 <name>dfs.name.dir</name> 11 <value>/hadoop/name</value> 12 </property>③把hadoop目錄下的conf/ hdfs-site.xml文件修改成如下:
1 <property> 2 <name>dfs.replication</name> 3 <value>3</value> 4 </property> 5 <property> 6 <name>dfs.data.dir</name> 7 <value>/hadoop/data</value> 8 </property>④把hadoop目錄下的conf/ mapred-site.xml文件修改成如下:
1 <property>2 <name>mapred.job.tracker</name> 3 <value>master:9001</value>4 </property>5 <property>6 <name>mapred.system.dir</name> 7 <value>/hadoop/mapred_system</value>8 </property>9 <property> 10 <name>mapred.local.dir</name> 11 <value>/hadoop/mapred_local</value> 12 </property>⑤把hadoop目錄下的conf/ masters文件修改成如下:
master
⑥把hadoop目錄下的conf/ slaves文件修改成如下:
master
slave1
slave2
6、復制虛擬機
???我使用Virtual Box的克隆功能,將主機master完全克隆兩份:slave1和slave2,并修改相應的主機名和IP地址,這樣就可以簡單地保持hadoop環境基本配置相同。
7、SSH設置無密碼驗證
?? 切換到Hadoop用戶,在Hadoop家目錄下面創建.ssh目錄,并在master節點上生成密鑰對:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa???。然后一直按[Enter]鍵,按默認的選項生成密鑰對保存在.ssh/id_rsa文件中。
然后執行如下命令:
$ ssh ~/.ssh
$ cp id_rsa.pub authorized_keys
$ scp authorized_keys slave1:/home/hadoop/.ssh
$ scp authorized_keys slave2:/home/hadoop/.ssh
執行遠程復制文件的時候記得要把slave1和slave2的防火墻關掉。復制完畢后記得要到slave1和slave2去修改該文件的權限。
從master向slave1和slave2發起SSH連接,第一次登錄時需要輸入密碼,以后就不需要了。
$ ssh slave1
$ ssh slave2
我們只需要配置從master向slaves發起SSH連接不需要密碼就可以了,但這樣只能在master(即在主機master)啟動或關閉hadoop服務。
8、運行hadoop
使用Hadoop用戶,切換到hadoop/bin目錄下
格式化分布式文件系統./hadoop namenode -format
執行命令./start-all.sh啟動hadoop
在master上執行jps命令查看運行的進程如下:
[hadoop@master hadoop]$ jps 3200 SecondaryNameNode 3271 JobTracker 3370 TaskTracker 3002 NameNode 3106 DataNode 5687 Jps在slave1和slave2上執行jps結果如下:
[hadoop@slave1 ~]$ jps 1477 DataNode 3337 Jps 1547 TaskTracker訪問http://master:50070可以查看分布式文件系統的狀態
9、運行單詞統計程序
WordCount是hadoop自帶的實例,統計一批文本文件中各單詞出現的資料,輸出到指定的output目錄中,輸出目錄如果已經存在會報錯。
$ cd /opt/hadoop $ hadoop fs -mkdir input $ hadoop fs -copyFromLocal /opt/hadoop/*.txt input/ $ hadoop jar hadoop-0.20.2-examples.jar wordcount input output $ hadoop fs -cat output/* #最后查看結果運行結果如下:
13/06/16 19:32:26 INFO input.FileInputFormat: Total input paths to process : 4 13/06/16 19:32:26 INFO mapred.JobClient: Running job: job_201306161739_0002 13/06/16 19:32:27 INFO mapred.JobClient: map 0% reduce 0% 13/06/16 19:32:35 INFO mapred.JobClient: map 50% reduce 0% 13/06/16 19:32:36 INFO mapred.JobClient: map 100% reduce 0% 13/06/16 19:32:47 INFO mapred.JobClient: map 100% reduce 100% 13/06/16 19:32:49 INFO mapred.JobClient: Job complete: job_201306161739_0002 13/06/16 19:32:49 INFO mapred.JobClient: Counters: 18 13/06/16 19:32:49 INFO mapred.JobClient: Job Counters 13/06/16 19:32:49 INFO mapred.JobClient: Launched reduce tasks=1 13/06/16 19:32:49 INFO mapred.JobClient: Rack-local map tasks=2 13/06/16 19:32:49 INFO mapred.JobClient: Launched map tasks=4 13/06/16 19:32:49 INFO mapred.JobClient: Data-local map tasks=2 13/06/16 19:32:49 INFO mapred.JobClient: FileSystemCounters 13/06/16 19:32:49 INFO mapred.JobClient: FILE_BYTES_READ=179182 13/06/16 19:32:49 INFO mapred.JobClient: HDFS_BYTES_READ=363457 13/06/16 19:32:49 INFO mapred.JobClient: FILE_BYTES_WRITTEN=358510 13/06/16 19:32:49 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=133548 13/06/16 19:32:49 INFO mapred.JobClient: Map-Reduce Framework 13/06/16 19:32:49 INFO mapred.JobClient: Reduce input groups=10500 13/06/16 19:32:49 INFO mapred.JobClient: Combine output records=10840 13/06/16 19:32:49 INFO mapred.JobClient: Map input records=8968 13/06/16 19:32:49 INFO mapred.JobClient: Reduce shuffle bytes=179200 13/06/16 19:32:49 INFO mapred.JobClient: Reduce output records=10500 13/06/16 19:32:49 INFO mapred.JobClient: Spilled Records=21680 13/06/16 19:32:49 INFO mapred.JobClient: Map output bytes=524840 13/06/16 19:32:49 INFO mapred.JobClient: Combine input records=47258 13/06/16 19:32:49 INFO mapred.JobClient: Map output records=47258 13/06/16 19:32:49 INFO mapred.JobClient: Reduce input records=10840運行該程序一定得注意將slave1和slave2的防火墻給關閉,否則會報異常的。
轉載于:https://www.cnblogs.com/yhl-yh/p/7145233.html
總結
以上是生活随笔為你收集整理的hadoop分布式搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: net5:Theme主题样式的动态变换,
- 下一篇: CM5.11与CDH5.11安装使用说明