hadoop分布式快速搭建
1.配置主節點與從節點的ssh互信;
【其中在主從節點主機的/etc/hosts檔案中需綁定主機名ip間的映射關系;
如,192.168.1.113 node0
192.168.1.108 node1
192.168.1.190 node2
】
2.配置各節點jdk環境;
3,修改${HADOOP_HOME}/conf/hadoop-env.xml,core-site.xml,hdfs-site.xml,mapred-site.xml;如下
修改core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file.-->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/app/hadoop/hadooptmp</value>
</property>
<name>fs.default.name</name>
<value>hdfs://node0:9000</value>
</configuration>
修改hdfs-site.xml
<!--Put site-specific property overriders in this file. -->
<name>dfs.replication</name>
<value>3</value>
修改mapred-site.xml
<name>mapred.job.tracker</name>
<value>node0:9001</value>
上面是主節點配置,拷貝主節點hadoop主目錄到從節點即可
4.在主節點格式化namenode檔案系統;
hadoop namenode -format
啟動hadoop即可;
狀态檢視
案例測試,
單詞統計,
hadoop fs -ls
touch file01 file02
echo hello hadoop file01
echo hadoop hi
hadoop fs -put ./* input
切換到${HADOOP_HOME}下執行
hadoop jar hadoop-xample.jar wordcount input output
hadoop fs -ls output
注意點;
hadoop分布式系統2個重要的目錄結構,一個是namenode上名字空間的存放,一個是datanode資料塊存放,還有其他的檔案存放,這些檔案的存放都是基于hadoop.tmp.dir存儲的.
namenode的名字空間存放位置
${hadoop.tmp.dir}/dfs/name
datanode資料塊的存放位置
${hadoop.tmp.dir}/dfs/data
hadoop.tmp.dir目錄可以不存在,hadoop系統會自動生成,
core-site.xml 檔案fs.default.name設定namenode位于哪個機器上,
格式hdfs://node0:90000
mapred-site.xml檔案mapred.job.tracker指定jobtracker位于那台機器上.
6大程序;
namenode,datanode,jobtracker,tasktracker,secondarynamenode,jps;
問題warning:$HADOOP_HOME is deprecated
解決,編輯/etc/profile
添加export HADOOP_HOME_WARN_SUPPRESS=TRUE