Hadoop僞分佈式模式安裝

一.Hadoop介紹

Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特色,而且設計用來部署在低廉的硬件上;並且它提供高吞吐量來訪問應用程序的數據,適合那些有着超大數據集的應用程序。Hadoop的框架最核心的設計就是:HDFS和MapReduce,HDFS爲海量的數據提供了存儲,MapReduce爲海量的數據提供了計算。node

 

二.安裝Hadoop

環境:Docker(17.04.0-ce)、鏡像Ubuntu(16.04.3)、Hadoop(3.1.1)、JDK(1.8.0_144)linux

1.運行dockeer容器,指定IP
faramita2016@linux-l9e6:~> docker run -id --hostname lab-bd --net br0 --ip 10.0.0.3 ubuntu:ssh docker

2.在容器中執行,安裝ssh、vimubuntu

root@lab-bd:~# apt-get update
root@lab-bd:~# apt-get install -y ssh vim

3.新建bigdata用戶(做爲hadoop用戶)vim

root@lab-bd:~# useradd bigdata -m -g root -c /bin/bash
root@lab-bd:~# passwd bigdata
root@lab-bd:~# su - bigdata

4.解壓Jdk和Hadoop瀏覽器

bigdata@lab-bd:~$ tar -xf jdk-8u144-linux-x64.tar.gz 
bigdata@lab-bd:~$ tar -xf hadoop-3.1.1.tar.gz

5.編輯.bashrc文件,配置Java環境bash

export JAVA_HOME=/home/bigdata/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

6.激活Java環境變量
bigdata@lab-bd:~$ source .bashrc app

7.編輯etc/hadoop/hadoop-env.sh文件,配置Java環境
export JAVA_HOME=/home/bigdata/jdk1.8.0_144 框架

8.配置ssh免密登陸ssh

bigdata@lab-bd:~$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
bigdata@lab-bd:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
bigdata@lab-bd:~$ ssh localhost

9.編輯etc/hadoop/core-site.xml文件,添加以下配置

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

10.編輯etc/hadoop/hdfs-site.xml文件,添加以下配置

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

11.格式化文件系統
bigdata@lab-bd:~$ hadoop-3.1.1/bin/hdfs namenode -format 

12.啓動hdfs服務
bigdata@lab-bd:~$ hadoop-3.1.1/sbin/start-dfs.sh 

13.瀏覽器訪問http://10.0.0.3:9870

 

三.配置Yarn

1.建立bigdata用戶默認文件夾
bigdata@lab-bd:~$ hadoop-3.1.1/bin/hdfs dfs -mkdir -p /user/bigdata 

2.編輯etc/hadoop/mapred-site.xml文件,添加以下配置

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

3.編輯etc/hadoop/yarn-site.xml文件,添加以下配置

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

4.啓動Yarn服務
bigdata@lab-bd:~$ hadoop-3.1.1/sbin/start-yarn.sh

5.瀏覽器訪問http://10.0.0.3:8088

 

四.運行任務

1.建立hadoop任務輸入文件夾
bigdata@lab-bd:~$ hadoop-3.1.1/bin/hdfs dfs -mkdir /user/bigdata/input 

2.添加xml文件作爲輸入文本
bigdata@lab-bd:~$ hadoop-3.1.1/bin/hdfs dfs -put hadoop-3.1.1/etc/hadoop/*.xml /user/bigdata/input 

3.執行單詞統計示例任務,input輸入文件夾,output輸出文件夾(自動建立)

bigdata@lab-bd:~$ hadoop-3.1.1/bin/hadoop jar hadoop-3.1.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'had[a-z.]+'

4.查看單詞統計輸出結果
bigdata@lab-bd:~$ hadoop-3.1.1/bin/hdfs dfs -cat /user/bigdata/output/part-r-00000 

 

五.HDFS命令

1) ls 顯示目錄下的全部文件或者文件夾
示例: hdfs dfs –ls /
顯示目錄下的全部文件能夠加 -R 選項
示例: hdfs dfs -ls -R /

2) cat 查看文件內容
示例: hdfs dfs -cat /user/bigdata/test.txt

3) mkdir 建立目錄
示例: hdfs dfs –mkdir /user/bigdata/a
建立多級目錄 加上 –p
示例: hdfs dfs –mkdir -p /user/bigdata/a/b/c

4) rm 刪除目錄或者文件
示例: hdfs dfs -rm /user/bigdata/test.txt
刪除文件夾加上 -r
示例: hdfs dfs -rm -r /user/bigdata/a/b/c

5) put 將文件複製到hdfs系統中,
示例:hdfs dfs -put /tmp/test.txt /user/bigdata

6) cp 複製系統內文件
示例:hdfs dfs -cp /user/bigdata/test.txt /user/bigdata/a/

7) get 複製文件到本地系統
示例:hdfs dfs -get /user/bigdata/test.txt /tmp

8) mv 將文件從源路徑移動到目標路徑。
示例:hdfs dfs -mv /user/bigdata/a/test.txt /user/bigdata/b/test.txt

9) du 顯示目錄中全部文件的大小
示例: hdfs dfs -du /
顯示當前目錄或者文件夾的大小可加選項 -s
示例: hdfs dfs -du -s /user/bigdata

 

六.運行異常

running …… beyond the 'VIRTUAL' memory limit異常

虛擬內存分配不夠,Yarn直接殺死進程,須要禁止內存檢查
編輯etc/hadoop/yarn-site.xml文件,添加以下配置

<configuration>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>
相關文章
相關標籤/搜索