1. 程式人生 > >阿里雲伺服器16.04安裝Hadoop 完美解決方案

阿里雲伺服器16.04安裝Hadoop 完美解決方案

ubuntu16.04 阿里雲伺服器安裝 hadoop

一、準備
  1. 建立hadoop使用者(這個沒有必要,我就沒有弄)

    $ sudo useradd -m hadoop -s /bin/bash  #建立hadoop使用者,並使用/bin/bash作為shell
    $ sudo passwd hadoop                   #為hadoop使用者設定密碼,之後需要連續輸入兩次密碼
    $ sudo adduser hadoop sudo             #為hadoop使用者增加管理員許可權
    $ su - hadoop                          #切換當前使用者為使用者hadoop
    $ sudo apt-get update                  #更新hadoop使用者的apt,方便後面的安裝


  1. 安裝SSH,設定SSH無密碼登陸(有必要,不然你就使勁輸入密碼吧)

$ sudo apt-get install openssh-server   #安裝SSH server
$ ssh localhost                         #登陸SSH,第一次登陸輸入yes
$ exit                                  #退出登入的ssh localhost
$ cd ~/.ssh/                            #如果沒法進入該目錄,執行一次ssh localhost
$ ssh-keygen -t rsa  

輸入完  $ ssh-keygen -t rsa 語句以後,需要連續敲擊三次回車

之後再輸入:


$ cat ./id_rsa.pub >> ./authorized_keys #加入授權
$ ssh localhost                         #此時已不需密碼即可登入localhost,並可見下圖。如果失敗則可	

然後安裝Java,設定Java環境變數

然後安裝 hadoop ,設定環境變數和相關內容

相關內容可以參考這篇部落格,傳送門

我的相關配置 vim ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH


export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


相關操作

1.    先到hadoop主目錄 跳轉到sbin
2.  啟動服務
start-all.sh

3.關閉服務
stop-all.sh

1、通過 
                                                       http://127.0.0.1:8088/
        即可檢視叢集所有節點狀態:
2、訪問                                                http://localhost:9870/       
		即可檢視檔案管理頁面:

3、通過hadoop命令列進行檔案操作:
         mkdir命令建立目錄:hadoop fs -mkdir           hdfs://localhost:9000/user

4 、 ls命令檢視指定目錄檔案列表:hadoop fs -ls         hdfs://localhost:9000/user/


hadoop 測試
1 先啟動服務

	start-all.sh
2. 檢視資料夾

	hdfs dfs -ls /

3.建立資料夾
 hdfs dfs -mkdir /test
 hdfs dfs -mkdir /test2
4.  複製檔案從本地
  hdfs dfs -copyFromLocal /usr/local/1.txt   /test/
  
5. hdfs dfs -copyToLocal  /test/1.txt   /home/a

hdfs dfs -copyToLocal /test/1.txt /usr/local/src/

6. 檢視檔案
	hdfs dfs -cat /test/s.txt 

7.  從HDFS下載到複製到本地,並且還可以重新命名

hdfs dfs -copyToLocal /test/1.txt /usr/local/src/3.txt

8.  更改許可權
	hdfs dfs -chmod 777
	


ubuntu 16.04搭建hadoop

這是我要是的重點,問題的解決

問題 一、 Hadoop之—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform…

解決方案

問題二、hadoop上傳檔案錯誤org.apache.hadoop.ipc.RemoteException(java.io.IOException)

解決方案

  使用  `hadoop dfsadmin -report`  命令檢視磁碟使用情況

怎麼在瀏覽器中找到阿里雲伺服器對應的HDFS線上檢視網址?

1- 用jps 檢視

	 其作用是顯示當前系統的java程序情況,及其id號

[email protected]:/# jps
12066 ResourceManager
11914 SecondaryNameNode
24330 Jps
11596 NameNode                -----------------------------------》》》》》11596
11740 DataNode                  -----------------------------------》》》》》11740
12175 NodeManager
[email protected]:/# 

2. netstat -ntlp 檢視埠號

[email protected]:/# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8040            0.0.0.0:*               LISTEN      12175/java      
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      11596/java      
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      1161/java       
tcp        0      0 0.0.0.0:8042            0.0.0.0:*               LISTEN      12175/java      
tcp        0      0 0.0.0.0:50090           0.0.0.0:*               LISTEN      11914/java      
tcp        0      0 0.0.0.0:35691           0.0.0.0:*               LISTEN      12175/java      
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1161/java       
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      848/nginx -g daemon
tcp        0      0 127.0.0.1:38230         0.0.0.0:*               LISTEN      11740/java      ------------》》》38230
tcp        0      0 0.0.0.0:50070           0.0.0.0:*               LISTEN      11596/java    ----------------》》》50070   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1068/sshd       
tcp        0      0 0.0.0.0:8088            0.0.0.0:*               LISTEN      12066/java      
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      13067/0         
tcp        0      0 0.0.0.0:50010           0.0.0.0:*               LISTEN      11740/java      
tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN      848/nginx -g daemon
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      12681/3         
tcp        0      0 0.0.0.0:50075           0.0.0.0:*               LISTEN      11740/java      
tcp        0      0 127.0.0.1:6012          0.0.0.0:*               LISTEN      13631/1         
tcp        0      0 0.0.0.0:8030            0.0.0.0:*               LISTEN      12066/java      
tcp        0      0 0.0.0.0:8031            0.0.0.0:*               LISTEN      12066/java      
tcp        0      0 0.0.0.0:8032            0.0.0.0:*               LISTEN      12066/java      
tcp        0      0 0.0.0.0:8033            0.0.0.0:*               LISTEN      12066/java      
tcp        0      0 0.0.0.0:50020           0.0.0.0:*               LISTEN      11740/java      
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1161/java       
tcp6       0      0 :::3306                 :::*                    LISTEN      786/mysqld      
tcp6       0      0 :::80                   :::*                    LISTEN      848/nginx -g daemon

3. 找到11596 11740對應的埠號分別是50070 38230

4. 開放雲伺服器埠號(新增安全組規則)

下面是我的埠號(埠號不開放,是訪問不到的)

我的埠號

5.瀏覽器輸入http:61.135.169.121:50070

其中埠號之前的是你的阿里雲IP地址,當然你完全不必開放,因為一旦開放,別人就能訪問,對你的資料是極其不安全的