日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop从0开始 (安装配置:转) (一) - 沐魇

發(fā)布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop从0开始 (安装配置:转) (一) - 沐魇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前一直在找安裝教程 都是0.20版本的 弄了好久沒有弄出來..我下載的是0.23.11

后來發(fā)現(xiàn)是新版跟舊版有很大的不同.官方文檔都不更新簡直是喪心病狂..

今天終于找到新版的安裝配置方法.多次失敗后自己理解并修改了一些步驟添加了一些細節(jié)說明。分享出來.

安裝環(huán)境:

  • 系統(tǒng):Ubuntu 14?? 64bit
  • hadoop:0.23.11??
  • jdk:1.8.0_11
  • 安裝步驟:

    一.安裝JDK

    安裝 jdk,并且配置環(huán)境以及設置成默認

    檢查jdk是否正確安裝和配置

    在主目錄下執(zhí)行java -version

    如果出現(xiàn)下面類似結果則ok

    ?
    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ java? -version java version "1.8.0_11" Java(TM) SE Runtime Environment (build 1.8.0_11-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

    ?記得系統(tǒng)中java_home也要設置好

    二.安裝hadoop

    1.下載:

    http://mirror.bit.edu.cn/apache/hadoop/common/

    選擇你要的版本。我選擇的是最新的 0.23.11

    hadoop是32位的如果是64位系統(tǒng)最好使用源碼安裝

    不然之后也要重新編譯64位庫 很麻煩

    2.安裝

    ubuntu下解壓然后改名為hadoop方便敲命令

    再移動到 /opt/下? 用sudo mv

    ?現(xiàn)在hadoop的目錄即? /opt/hadoop

    以后的命令我都是按這個位置來。

    ?三.安裝ssh server

    ?這個是ssh的服務

    sudo apt-get install openssh-server

    ?四.添加hadoop用戶

    為了方便hadoop的管理,最好添加一個單獨的用戶來管理hadoop,例如添加hadoop用戶

    執(zhí)行以下命令

    sudo adduser hadoop

    然后會提示輸入密碼,設置好密碼就可以了

    這時候只要執(zhí)行

    su hadoop

    輸入密碼后就可以切換到hadoop用戶下

    注:

    為了使hadoop帳號下能夠sudo,在 /etc/sudousers 里

    sudo??? ALL=(ALL:ALL) ALL的后面添加
    hadoop?? ALL=(ALL:ALL) ALL

    ?

    ?五.配置本機ssh無密碼登錄

    ?

    hadoop@hanson-ThinkPad-Edge:~$ ssh-keygen?-t?rsa?
    ssh-keygen -t rsa命令會在當前目錄下產生一個隱藏.ssh文件夾,以參數(shù) rsa (或者 dsa) 方式在里面產生公鑰和密鑰,名稱為? id_rsa.pub 和id_rsa ,可以把公鑰給別的計算機來無密碼登錄你電腦,相當于通行證。

    hadoop@hanson-ThinkPad-Edge:~$ cat?~/.ssh/id_rsa.pub?>>?~/.ssh/authorized_keys

    authorized_keys便是存放別人的公鑰的地方。這個命令就是復制到里面。

    測試:

    hadoop@hanson-ThinkPad-Edge:~$ ssh localhost
    Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)

    ?* Documentation:? https://help.ubuntu.com/

    Last login: Wed Aug 13 11:25:32 2014 from localhost

    ?六.配置Hadoop

    chmod -R 777 /opt/hadoop

    改變hadoop的權限,使所有人可讀可寫。

    su hadoop

    切換到hadoop用戶

    1. 配置jdk及hadoop環(huán)境變量

    在~/.bashrc文件里追加(只有當前用戶可以使用的配置,切記切換到hadoop)

    下面所有因安裝而異的配置在我會用粗體標注。

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11
    export JRE_HOME=${JAVA_HOME}/jre
    export HADOOP_HOME=/opt/hadoop
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$HADOOP_HOME/bin:$PATH
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

    2. Hadoop文件配置

    hadoop@hanson-ThinkPad-Edge:~$ cd /opt/hadoop/etc/hadoop/

    hadoop@hanson-ThinkPad-Edge:/opt/hadoop/etc/hadoop$ vi yarn-env.sh

    追加以下配置 (下面所有因安裝而異的配置在我會用粗體標注。)

    export HADOOP_FREFIX=/opt/hadoop
    export HADOOP_COMMON_HOME=${HADOOP_FREFIX}
    export HADOOP_HDFS_HOME=${HADOOP_FREFIX}
    export PATH=$PATH:$HADOOP_FREFIX/bin
    export PATH=$PATH:$HADOOP_FREFIX/sbin
    export HADOOP_MAPRED_HOME=${HADOOP_FREFIX}
    export YARN_HOME=${HADOOP_FREFIX}
    export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_FREFIX}/etc/hadoop

    下面在 /opt/hadoop/etc/hadoop/ 目錄下進行一系列配置(這些文件的模板都在template里面,學到深入的時候再分享。我后面遇到的問題也與此有關。)

    ?

    vi core-site.xml

    ?
    <configuration> <property>? ?? ????<name>fs.defaultFS</name>? ?? ????<value>hdfs://localhost:9000</value>? ?? ??</property> ?? ??<property>?? ?? ????<name>hadoop.tmp.dir</name>? ?? ????<value>/opt/hadoop/hadoop-root</value>? ?? ??</property>? ?? <property> ?? ??<name>fs.arionfs.impl</name> ?? ??<value>org.apache.hadoop.fs.pvfs2.Pvfs2FileSystem</value> ?? ??<description>The FileSystem for arionfs.</description> ?? </property>? </configuration>

    ?注意下面配置中的地址,也與安裝路徑有關。

    vi hdfs-site.xml

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <configuration> ?<property> ?? ????<name>dfs.namenode.name.dir</name> ?? ????<value>file:/opt/hadoop/data/dfs/name</value> ?? ????<final>true</final> ?? ????</property> ?? ????<property> ?? ????<name>dfs.namenode.data.dir</name> ?? ????<value>file:/opt/hadoop/data/dfs/data</value> ?? ????<final>true</final> ?? ????</property> ?? ????<property>?? ?? ????<name>dfs.replication</name> ?? ????<value>1</value> ?? ????</property> ?? ????<property> ?? ????<name>dfs.permission</name> ?? ????<value>false</value> ?? ????</property> </configuration>

    ?

    vi mapred-site.xml 這個是新文件

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 <configuration> <property> ?? ????<name>mapreduce.framework.name</name> ?? ????<value>yarn</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.job.tracker</name> ?? ????<value>hdfs://localhost:9001</value> ?? ????<final>true</final> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.map.memory.mb</name> ?? ????<value>1536</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.map.java.opts</name> ?? ????<value>-Xmx1024M</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.reduce.memory.mb</name> ?? ????<value>3072</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.reduce.java.opts</name> ?? ????<value>-Xmx2560M</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.task.io.sort.mb</name> ?? ????<value>512</value> ?? ????</property> ?<property> ?? ????<name>mapreduce.task.io.sort.factor</name> ?? ????<value>100</value> ?? ????</property>???? ?? ????<property> ?? ????<name>mapreduce.reduce.shuffle.parallelcopies</name> ?? ????<value>50</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.system.dir</name> ?? ????<value>file:/opt/hadoop/data/mapred/system</value> ?? ????</property> ?? ????<property> ?? ????<name>mapreduce.local.dir</name> ?? ????<value>file:/opt/hadoop/data/mapred/local</value> ?? ????<final>true</final> ?? ????</property> </configuration>

    ?vi yarn-site.xml

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 <configuration> ?? <!-- Site specific YARN configuration properties --> <property>? ?? ????<name>yarn.nodemanager.aux-services</name>? ?? ????<value>mapreduce.shuffle</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>? ?? ????<value>org.apache.hadoop.mapred.ShuffleHandler</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>mapreduce.framework.name</name>? ?? ????<value>yarn</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>user.name</name>? ?? ????<value>hadoop</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>yarn.resourcemanager.address</name>? ?? ????<value>localhost:54311</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>yarn.resourcemanager.scheduler.address</name>? ?? ????<value>localhost:54312</value>? ?? ??</property>? <property>? ?? ????<name>yarn.resourcemanager.webapp.address</name>? ?? ????<value>localhost:54313</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>yarn.resourcemanager.resource-tracker.address</name>? ?? ????<value>localhost:54314</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>yarn.web-proxy.address</name>? ?? ????<value>localhost:54315</value>? ?? ??</property>? ?? ??<property>? ?? ????<name>mapred.job.tracker</name>? ?? ????<value>localhost</value>? ?? ??</property> </configuration>

    ?配置完成.

    七.啟動并運行wordcount程序

    1. 格式化namenode. 進入 /opt/hadoop/

    鍵入 bin/hadoop?namenode?-format?

    切記若多次格式化,請先清空hdfs-site.xml中dfs.namenode.*.dir設置的文件路徑里的文件。不然會沖突。不要把文件夾刪了。

    2. 啟動

    ?

    于/opt/hadoop/sbin

    $?./start-dfs.sh?

    $../start-yarn.sh

    ?4.檢查啟動是否成功

    hadoop@hanson-ThinkPad-Edge:/opt/hadoop/sbin$?jps?

    5036?DataNode?

    5246?SecondaryNameNode?

    5543?NodeManager?

    5369?ResourceManager?

    4852?NameNode?

    5816?Jps?

    ?全部存在就成功了。

    ?5.試著運行wordcount

    1)構造輸入數(shù)據(jù)

    新建一個文本文件

    比如在 ~ 目錄下的test.txt中輸入一系列字母

    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ cat ~/test.txt
    a c b a b d f f e b a c c d g i s a b c d e a b f g e i k m m n a b d g h i j a k j e

    記得打空格。這個示例是用來統(tǒng)計單詞數(shù)量的,不打空格它就只統(tǒng)計一個了。

    ?2)上傳到hdfs

    ?

    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$? hadoop fs -mkdir /test? (在hdfs中創(chuàng)建一個新文件夾)
    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$? hadoop fs -copyFromLocal ~/test.txt /test?? (這個指令就是從本地復制到hdfs中)
    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop fs -ls? /test (查看test中的文件)
    Found 1 items
    -rw-r--r--?? 1 hadoop supergroup???????? 86 2013-04-18 07:47 /test/test.txt

    ?


    3)執(zhí)行程序

    注意版本號。

    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-0.23.11.jar wordcount /test/test.txt /test/out????????????????

    #其中/test/out 為輸出目錄

    4)查看結果

    hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop fs -ls /test
    Found 2 items
    drwxr-xr-x?? - hadoop supergroup????????? 0 2014-08-13 11:42 /test/out
    -rw-r--r--?? 1 hadoop supergroup???????? 86 2014-08-13 13:50 /test/test.txt


    hadoop@ubuntu:/opt/hadoop$ hadoop fs -ls /test/out
    Found 2 items
    -rw-r--r--?? 1 hadoop supergroup????????? 0 2014-08-13 13:53 /test/out/_SUCCESS
    -rw-r--r--?? 1 hadoop supergroup???????? 76 2014-08-13 13:53 /test/out/part-r-00000


    hadoop@ubuntu:/opt/hadoop$ hadoop fs -cat /test/out/part-r-00000
    14/08/13 13:55:24?INFO util.NativeCodeLoader: Loaded the native-hadoop library
    a??? 7
    b??? 6
    c??? 4
    d??? 4
    e??? 4
    f??? 3
    g??? 3
    h??? 1
    i??? 3
    j??? 2
    k??? 2
    m??? 2
    n??? 1
    s??? 1

    ?

    ?最后記得

    $ ./stop-dfs.sh

    $ ./stop-yarn.sh

    --------------------

    下面說一下我所遇到的問題

    1.第一個錯誤是碰到說找不到加載類namenode

    ?

    解決過程: 經(jīng)過查找發(fā)現(xiàn)是xml配置文件寫錯了 多了一個符號 刪去后好了

    ?

    2.第二個碰到的問題就是datanode始終無法啟動

    解決過程:經(jīng)過查找logs目錄下的datanode啟動的記錄

    發(fā)現(xiàn)拋出 IOException ,大概是 Incompatible clusterIDs? 。也就是clusterIDs 有矛盾。最后找到原因是由于總是配置不好,我進行了多次的格式化。所以才會沖突

    切記若多次格式化,請先清空hdfs-site.xml中dfs.namenode.*.dir設置的文件路徑里的文件。不然會沖突。不要把文件夾刪了。

    于是有了上面這句忠告。

    ?

    3.第三個碰到的問題是在最后一步查看輸出文檔時。結果之前提示如下。

    Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
    It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
    14/08/13 13:55:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    大概就是說我本地庫無法加載。

    解決方法:查找到原因是因為hadoop用的是32位的庫而系統(tǒng)是64位的。

    想消除這個warning需要編譯一個64位的庫?;蛘咭婚_始就用源碼安裝。心累。于是去官網(wǎng)下載了 src? (http://mirror.bit.edu.cn/apache/hadoop/common/)

    另外還需要安裝 maven 和 CMake 還有protobuf (過程略)

    最后進入源碼目錄 敲下 mvn package -Pdist,native -DskipTests 編譯

    結果出現(xiàn)了另外的問題,報出Error提示不準使用自關閉元素? <p/> 于是我去源碼里把所有的<p/>刪除了 (不知道是標準改變的原因還是什么)

    之后還出現(xiàn)了各種各樣的問題。。一般是缺少某個項目造成的 比如? protobuf? 這個也得下 過程略。

    ?

    ?

    4.使用hadoop dfsadmin -report 類似的操作時 提示:

    DEPRECATED: Use of this script to execute hdfs command is deprecated.
    Instead use the hdfs command for it.

    解釋:新版這樣的命令已經(jīng)由hadoop變成了hdfs

    ?----------------------------------------

    其他經(jīng)驗:

    1.hadoop 命令設置(原始命令過長使用別名簡化命令):在~/.bashrc 中添加如下:
    #alias for hadoop
    alias hls='hadoop fs -ls'
    alias hlsr='hadoop fs -lsr'
    alias hcp='hadoop fs -cp '
    alias hmv='hadoop fs -mv'
    alias hget='hadoop fs -get'
    alias hput='hadoop fs -put'
    alias hrm='hadoop fs -rm'
    alias hmkdir='hadoop fs -mkdir'
    alias hcat='hadoop fs -cat'
    alias hrmr='hadoop fs -rmr'
    alias hstat='hadoop fs -stat'
    alias htest='hadoop fs -test'
    alias htext='hadoop fs -text'
    alias htouchz='hadoop fs -touchz'
    alias hdu='hadoop fs -du'
    alias hdus='hadoop fs -dus'
    alias hchmod='hadoop fs -chmod'
    alias hchgrp='hadoop fs -chgrp'
    alias hchown='hadoop fs -chown'
    alias htail='hadoop fs -tail'
    alias hjar='hadoop jar'

    ?

    以后就可以使用這些簡化命令來代替了。

    轉載于:https://www.cnblogs.com/ainubis/p/3990233.html

    總結

    以上是生活随笔為你收集整理的Hadoop从0开始 (安装配置:转) (一) - 沐魇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。