Hadoop學習(一)Hadoop的安裝

環境是VirtualBox虛擬機和Ubuntu操作系統,虛擬機和操作系統的安裝見https://blog.csdn.net/zhangcjsyl/article/details/88142588

本文的參考文章:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation

一、安裝JDK

Hadoop是以java開發,因此需要安裝Java環境。首先查看java版本

$ java -version

請注意,推薦安裝jdk8或以下的jdk版本,jdk1.9以上的javax包被禁用,按本文的安裝配置方法會無法啓動ResourceManager;如要使用jdk9以上的版本需要增加配置(見https://issues.apache.org/jira/browse/HADOOP-14978,hadoop推薦的jdk版本見https://wiki.apache.org/hadoop/HadoopJavaVersions),如果已經安裝了jdk1.8及以下的java環境可以直接進行下一節設置SHH無密碼登錄。如果沒有安裝Java環境或者jdk版本在9以上就要進行下面的步驟進行安裝:

下載apt軟件安裝包管理工具

$ sudo apt-get update

這一操作需要輸入superuser的密碼,然後安裝software-properties

$sudo apt-get install software-properties-common

添加ppa

$ sudo add-apt-repository ppa:webupd8team/java

更新系統

$ sudo apt-get update

完畢後使用apt-get安裝jdk,這裏安裝的事oracle的1.8版本jdk:

$ sudo apt-get install oracle-java8-installer

系統會詢問是否繼續執行,輸入Y後按Enter即可。如果之前安裝過jdk需要進行jdk版本切換

$ sudo update-java-alternatives -s java-8-oracle

再次查看java版本,當看到如下的內容則已經安裝成功。

二、設置SSH無密碼登錄

Hadoop一般是集羣部署,啓動Hadoop時NameNode必須與DataNode連接,爲了讓系統能夠順利運行而不用輸入密碼就需要設置SSH無密碼登錄。

1.安裝SSH

$ sudo apt-get install ssh

在終端執行以上命令,系統會詢問是否繼續,輸入Y並按下Enter鍵。

2.安裝rsync

終端輸入下面的命令

$ sudo apt-get install rsync

3.產生SSH Key

這裏採用rsa算法,也可採用dsa算法,就將rsa改爲dsa即可:

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa

SSH Key會產生在用戶根目錄/home/zhangc(這裏zhangc是我的用戶名)下,輸入下面的命令查看產生的SSH Key:

$ ll /home/zhangc/.ssh

運行後得到下面的結果:

.pub文件就是產生的Key,下面將這個Key放到許可證文件中去:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(>> 會將命令產生的輸出附加在後面的文件末尾而不會覆蓋該文件。)、

可以嘗試進行本機的ssh無密碼登錄:

$ ssh localhost

成功後輸入logout命令進行登出,不然的話有些命令無法使用(後面的gedit就是)

$ ssh logout

三、下載安裝Hadoop

訪問下載地址https://archive.apache.org/dist/hadoop/common/(這裏可以使用北京信息學院鏡像http://mirror.bit.edu.cn/apache/hadoop/common/)

選擇要下載的版本,這裏我選擇的事hadoop-3.2.0的版本,點擊進去複製選擇.tar.gz的文件右鍵複製下載鏈接

然後在終端下輸入wget和之前複製的鏈接

$ wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz

下載完成後解壓縮下載的文件

$ sudo tar -zxvf hadoop-3.2.0.tar.gz 

移動到/usr/local目錄下

$ sudo mv hadoop-3.2.0 /usr/local/hadoop

四、設置Hadoop環境變量

1.編輯~/.bashrc

在終端輸入下面的命令,打開~/.bashrc文件

$ sudo gedit ~/.bashrc 

在文件末尾輸入下面的配置:

export JAVA_HOME=usr/lib/jvm/java-8-oracle
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

如下圖所示,然後點擊保存,最後點擊關閉按鈕。

2.讓~/.bashrc生效

$ source ~/.bashrc 

五、修改Hadoop配置文件

1.修改hadoop-env.sh

$ sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh

找到如下位置

修改爲自己的jdk路徑:

2.修改core.site.xml

終端輸入以下命令:

$ sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml 

在configuration標籤中增加如下內容:

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

如下圖所示:

然後點擊保存並退出。

3.修改yarn-site.xml

在終端輸入命令:

$ sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml 

在configuration標籤中增加如下內容:

<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>

如下圖所示:

然後點擊保存並退出。

4.設置hdfs-site.xml

在終端輸入命令:

sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml 

在configuration標籤中增加如下內容:

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>

如下圖所示:

然後點擊保存並退出。

創建namenode和datanode目錄:

$ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
$ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

六、格式化Hadoop

1.將Hadoop目錄擁有者改爲當前用戶zhangc

$ sudo chown zhangc:zhangc -R /usr/local/hadoop

2.進行格式化

這個操作會清除hdfs中的所有數據:

hadoop namenode -format

七、啓動Hadoop

運行下面的命令啓動hdfs:

$ start-dfs

啓動yarn:

$ start-yarn.sh

以上兩個命令可以用一個命令代替:

$ start-all.sh

使用jps查看當前已啓動的進程:

$ jps

如下所示:

一定要有 DataNode、NodeManager、SecondaryNameNode、ResourceManager、NameNode這五個缺一不可纔算啓動成功。

訪問Resource Manager界面localhost:8088和HDFS界面localhost:9870(hadoop2.x版本的默認的hdfs的端口是50070)

這樣就啓動成功了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章