hadoop學習記錄(一):單機和僞分佈式安裝

1、安裝java

①下載並解壓java1.7.0_79的tar包到 /usr/local 下並修改文件夾名稱爲 java7。java

tar -xvf java1.7.0_79
mv java1.7.0_79 java7

②配置環境變量:node

vi /etc/profile
export JAVA_HOME=/usr/local/java7
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile
java -version

測試一下是否安裝成功,若是成功出現如下結果:git

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

 

2、單機模式下安裝Hadoop

①下載並解壓Hadoop2.8.2的tar包到 /usr/local 下並修改文件夾名稱爲 hadoop。apache

②配置環境變量:ubuntu

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
hadoop version

測試一下是否安裝成功,若是成功出現如下結果:瀏覽器

Hadoop 2.8.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 66c47f2a01ad9637879e95f80c41f798373828fb
Compiled by jdu on 2017-10-19T20:39Z
Compiled with protoc 2.5.0
From source with checksum dce55e5afe30c210816b39b631a53b1d

說明Hadoop在獨立模式下工做正常。默認狀況下,Hadoop被配置爲在非分佈式模式的單個機器上運行。bash

③小例子:app

第一步:新建一個input_test文件夾,往裏拷貝一些帶單詞的txt文件,爲了方便按照教程方式拷貝。框架

mkdir input_test
cp $HADOOP_HOME/*.txt input_test
ls -l input_test

出現如下結果:ssh

total 120
-rw-r--r-- 1 root root 99253 Nov 19 18:23 LICENSE.txt
-rw-r--r-- 1 root root 15915 Nov 19 18:23 NOTICE.txt
-rw-r--r-- 1 root root  1366 Nov 19 18:23 README.txt

第二步:啓動hadoop計數程序統計數量,在/usr/local/hadoop/share/hadoop/mapreduce中運行:

hadoop jar hadoop-mapreduce-examples-2.8.2.jar wordcount /usr/local/hadoop/input_test/ output

第三步:查看運行的結果output下的part-r-00000文件:

cat output/*

出現如下結果,全部出現的單詞以及出現的次數:

......
「License」	1
「Modifications」	1
「Original	1
「Participant」)	1
「Patent	1
「Source	1
「Your」)	1
「You」	2
「commercial	3
「control」	1

 

3、模擬分佈式模式安裝Hadoop

SSH設置和密鑰生成

下面的命令用於生成使用SSH鍵值對。複製公鑰造成 id_rsa.pub 到authorized_keys 文件中 :

ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && \ > cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

①設置hadoop環境變量,修改 /etc/profile 文件並實時生效:

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME
source /etc/profile

②配置hadoop:

爲了使用Java開發Hadoop程序, 打開/usr/local/hadoop/etc/hadoop/hadoop-env.sh 設置java環境變量:

export JAVA_HOME=/usr/local/java7

core-site.xml

core-site.xml文件中包含如讀/寫緩衝器用於Hadoop的實例的端口號的信息,分配給文件系統存儲,用於存儲所述數據存儲器的限制和大小。

打開core-site.xml 並在<configuration>,</configuration>標記之間添加如下屬性:

<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value> hdfs://機器的IP地址:9000</value> 
   </property>
</configuration>

hdfs-site.xml

hdfs-site.xml 文件中包含如複製數據的值,NameNode路徑的信息,,本地文件系統的數據節點的路徑。這意味着是存儲Hadoop基礎工具的地方。

打開hdfs-site.xml 並在<configuration>,</configuration>標記之間添加如下屬性:

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

yarn-site.xml

此文件用於配置成yarn在Hadoop中。

打開 yarn-site.xml 並在<configuration>,</configuration>標記之間添加如下屬性:

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

此文件用於指定正在使用MapReduce框架。缺省狀況下,包含Hadoop的模板yarn-site.xml。首先,它須要從mapred-site.xml複製。得到mapred-site.xml模板文件使用如下命令:

cp mapred-site.xml.template mapred-site.xml

打開mapred-site.xml文件,並在此文件中的<configuration></configuration>標籤之間添加如下屬性。

<configuration>
    <property> 
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

③驗證hadoop安裝, 使用命令「hdfs namenode -format」格式化一個新的分佈式文件系統:

hdfs namenode -format

預期的結果以下 :

17/11/19 19:50:04 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   user = root
STARTUP_MSG:   host = ubuntu/127.0.1.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.8.2
......
......
17/11/19 19:50:08 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/

④驗證hadoop的dfs, 啓動 NameNode 守護進程和 DataNode 守護進程 :

start-dfs.sh

預期結果以下:

17/11/19 21:52:16 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-root-namenode-ubuntu.out
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-ubuntu.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-root-secondarynamenode-ubuntu.out
17/11/19 21:53:20 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

⑤驗證Yarn 腳本,執行以下命令用來啓動yarn腳本。執行此命令將啓動yarn守護進程:

start-yarn.sh

預期以下結果:

starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-root-resourcemanager-ubuntu.out
localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-ubuntu.out

⑥在瀏覽器訪問Hadoop, 默認端口號爲50070,使用網址得到瀏覽器Hadoop服務:

⑦驗證全部應用程序的集羣, 訪問集羣中的全部應用程序的默認端口號爲8088。使用網址訪問該服務:

相關文章
相關標籤/搜索