天天看點

linux+Hadoop2.7.6環境搭建+ win10+eclipse開發程式

開始 linux平台下Hadoop下載下傳、安裝、配置

第一步, 下載下傳安裝 maven 配置環境 變量

2、下載下傳maven安裝包

 wget wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

3、解壓縮maven

tar -zxvf apache-maven-3.5.4-bin.tar.gz

我這裡将maven解壓縮之後的路徑為:/home/hadmin/apache-maven-3.5.4

4、配置maven環境變量

vi /etc/profile

按照如下樣例編輯環境變量。

編輯之後記得使用source /etc/profile指令是改動生效。

export PATH=$PATH:/opt/maven/apache-maven-3.5.4/bin 

linux+Hadoop2.7.6環境搭建+ win10+eclipse開發程式

第二步,安裝hadoop

下載下傳hadoop

https://archive.apache.org/dist/hadoop/core/hadoop-2.7.6/

本次下載下傳的是: hadoop-2.7.6.tar.gz

 注意安裝自己對應的版本号

1.上傳hadoop包,我這裡使用FileZilla上傳到 linux下root 目錄下

2.解壓hadoop包

     首先在根目錄建立一個/itcast 目錄

          mkdir /itcast

          tar -zxvf hadoop-2.7.6.tar.gz -C /itcast

3.配置hadoop僞分布式(要修改etc/下的4個檔案) 安裝hadoop的目錄下, etc目錄下

export JAVA_HOME=/home/jdk/jdk1.8.0_181

第一個:hadoop-env.sh -- 如果裡面有配置變量,不用再配置,也要配置JDK環境變量

     vim hadoop-env.sh

     export JAVA_HOME=/home/jdk/jdk1.8.0_181

第二個:core-site.xml

<configuration>

          <!-- 用來指定hdfs的老大(NameNode)的位址 -->

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://itcast01:9000</value>

        </property>

          <!-- 用來指定Hadoop運作時産生檔案的存放目錄 -->

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/itcast/hadoop-2.7.6/tmp</value>

        </property>

</configuration>

第三個:hdfs-site.xml

     <configuration>

            <!-- 指定HDFS儲存資料副本數量 --> 

          <property>

                <name>dfs.replication</name>

                <value>1</value>

        </property>

</configuration>

第四個:mapred-site.xml (需要從此檔案複制mapred-site.xml.template)

     <configuration>

          <!-- 告訴hadoop以後MR運作在yarn上 -->

        <property>

                <name>mapreduce.framework.name</name>

                <value>yarn</value>

        </property>

     </configuration>

第五個:yarn-site.xml

<configuration>

          <!-- NodeManager擷取資料的方式是shuffle-->

        <property>

                <name>yarn.nodemanager.aux-services</name>

                <value>mapreduce_shuffle</value>

        </property>

          <!-- 指定YARN的老大(resourcemanager)的位址 -->

        <property>

                <name>yarn.resourcemanager.hostname</name>

                <value>itcast01</value>

        </property>

</configuration>

4.将Hadoop添加到環境變量中

vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_60

export HADOOP_HOME=/itcast/hadoop-2.7.6

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

export PATH=$PATH:/itcast/hadoop-2.7.6/bin 直接添加變量

          #重新整理配置

          source /etc/profile

5.初始化HDFS(格式化檔案系統,此步類似剛買U盤需要格式化)如果失敗,可能是環境變量問題

     hdfs namenode -format

 6.啟動文HDFS和YARN

     ./start-all.sh(過時了) 應該使用 start-dfs.sh and start-yarn.sh

這個兩個指令是要一起啟動的, 每個指令啟動的服務不一樣,(坑)start-yarn.sh

Starting namenodes on [it] Starting namenodes on [hadoop01 hadoop02]

坑 啟動不成功

start-dfs.sh:command not found

在hadoop sbin目錄下可以找到這個檔案。但是run不起來。

 .bashrc 是個隐藏檔案,一般就在使用者的主目錄下

1、可以使用指令ls -a檢視

2、可以使用指令find -name .bashrc 查找檔案在什麼地方

解決方法:

1. 打開 $HOME/.bashrc 加入下面一行。

PATH=$PATH:/itcast/hadoop-2.7.6/sbin

這行代碼告訴bash應該去這個目錄去找這個檔案。

$HOME就是在根目錄下,

2. source $HOME/.bashrc

     #有個小問題(需要多次輸入密碼)

Java HotSpot(TM) Server VM warning: You have loaded library /itcast/hadoop-2.7.6/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'.

hadoop-env.sh中加入以下兩行配置

export ##HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/"

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

在/itcast/hadoop-2.7.6/etc/hadoop/log4j.properties檔案中添加

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR 

/etc/hosts檔案作用:

itcast01: ssh: Could not resolve hostname itcast01: Name or service not known

127.0.0.1 itcast01

   接下來,使用jps檢視程序情況

     jps(jps 在Linux/unix平台上簡單察看目前java程序的一些簡單情況),如果有以下程序則表示測試通過

3887 Jps (java程序)

3449 SecondaryNameNode (相當于NameNode的助理)

3263 DataNode (hdfs部門的小弟,負責存放資料)

3138 NameNode (hdfs部門的老大)

3579 ResourceManager (yarn部門的老大,yarn負責資源管理)

3856 NodeManager (yarn部門的小弟,可以一個,叢集的話會有很多)

 另外,我們也可以在windows平台下,使用浏覽器進行檢視,是否搭建成功

     http://192.168.1.128:50070 ( hdfs管理界面)

     http://192.168.1.128:8088 (yarn管理界面)

 如果用戶端無法連接配接,請關閉防火牆 systemctl stop firewalld.service 我用的虛拟機

     在這個檔案中添加linux主機名和IP的映射關系

     c:\Windows\System32\drivers\etc

     在末尾,添加

     192.168.11.233     itcast01

(坑) yarn管理界面 無法登入

,最開始在hosts檔案裡,127.0.0.1  itcast01這樣配置有些問題

必須還是要 192.168.11.233     itcast01 不會被站用端口。

另外,兩個啟動指令經常失效,配置.bashrc 檔案後要經常儲存才行,後面有添加變量解決

輸入位址   http://192.168.1.128:50070

linux+Hadoop2.7.6環境搭建+ win10+eclipse開發程式

輸入位址,http://192.168.1.128:8088/

linux+Hadoop2.7.6環境搭建+ win10+eclipse開發程式

四、測試hdfs(主要存儲資料,存儲海量資料)

     1.上傳檔案

我在終端這麼操作

hadoop fs -put Testhadoop.doc hdfs://itcast01:9000/user/words

建立一個doc檔案,上傳到後面的位址,words是重命名了檔案。上傳可以在hadoop WEB界面下載下傳,在Utilities 選項檢視, 檔案是在終端目前目錄

      hadoop fs -put /mnt/hgfs/share/jdk-7u60-linux-i586.tar.gz hdfs://itcast01:9000/jdk

     2.下載下傳檔案

     hadoop fs -get hdfs://itcast01:9000/jdk /home/jdk1.7

五、測試MapReduce和Yarn

     官方提供了一個Jar包

     /itcast/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

     在這裡,我們測試一下單詞統計(輸入與輸出,都存放在hdfs,因為可能檔案很大)

     我們建立一個words檔案

          hello tom

hello jerry

hello kitty

hello world

hello tom

     将此檔案words上傳到hdfs上,接着我們使用mapreduce統計單詞,同時輸出也存放到hdfs上

          hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount hdfs://itcast01:9000/words hdfs://itcast01:9000/wcount

     這一個是hdfs://itcast01:9000/wcount 上是MapReduce統計結果

          hello    5

jerry    1

kitty    1

tom    2

world    1

六、配置SSH免密碼登入(/root/.ssh)

     #SSH協定(讓linux不同機器,啟動起來。hadoop老大為了讓小弟聽話,使用SSH進行控制)

     ssh-keygen -t rsa

     執行完這個指令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)

     将公鑰拷貝成authorized_keys 檔案上

     cp id_rsa.pub authorized_keys

     接下來,我們将公鑰發送給想要登入的linux機器(實質是拷貝authorized_keys )

     ssh-copy-id 192.168.8.89

     這樣,我們以後使用192.168.8.88(NameNode主機)免密登入192.168.8.89

(坑) 修改  ~/.bashrc 檔案

添加以下這些行到 ~/.bashrc 檔案的末尾,内容如下所示:

#Set HADOOP_HOME

export HADOOP_HOME=/itcast/hadoop-2.7.6

#Set JAVA_HOME

export JAVA_HOME=/home/jdk/jdk1.8.0_181

# Add bin/ directory of Hadoop to PATH

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

環境變量PATH裡也可能要加上這個sbin 目錄

第二部分開始,用win在eclipse上開發程式

參考下面連接配接, 這位博友寫的非常詳細

https://www.cnblogs.com/supiaopiao/p/7240308.html

linux+Hadoop2.7.6環境搭建+ win10+eclipse開發程式

繼續閱讀