上一章我們講了關於hadoop的一些基本的概念,這一章我們開始着手搭建hadoop的開發環境。
首先你要有linux虛擬機,關於VMware和linux虛擬機的安裝這裏就不多說了。可以自行百度,很簡單。
假定我們已經有了linux虛擬機,接下來我們就開始進行hadoop環境的安裝。
1.使用useradd創建一個用戶,這裏我們取名爲hadoop
[root@localhost ~]# useradd hadoop
2.用passwd爲hadoop設置密碼
[root@localhost ~]# passwd hadoop
Changing password for user hadoop.
New password: //輸入密碼
BAD PASSWORD: The password is shorter than 8 characters//這句話是提示我的密碼過於簡單,忽略
Retype new password: //確認密碼
passwd: all authentication tokens updated successfully.
3.給hadoop用戶賦予使用sudo命令的權限
查看/etc/sudoers的權限信息:
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 3907 Nov 4 2016 /etc/sudoers
發現當前root用戶對該文件沒有寫的權限。我們首先要做的就是給root用戶增加寫該文件的權限:
[root@localhost ~]# chmod u+w /etc/sudoers
然後再次查看root對該文件的權限:
[root@localhost ~]# ll /etc/sudoers
-rw-r-----. 1 root root 3907 Nov 4 2016 /etc/sudoers
此時root擁有了修改該文件的權限。
然後修改該文件:
vim /etc/sudoers
找到下面這這一行:
root ALL=(ALL) ALL//中間的空格是Tab鍵
在這一行的下面加上一行:
hadoop ALL=(ALL) ALL
然後保存退出。
4.撤銷剛纔root對/etc/sudoers的權限,防止誤修改
[root@localhost ~]# chmod u-w /etc/sudoers
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 3927 Oct 28 18:07 /etc/sudoers
5.修改主機名
爲了方便以後做測試,我們將主機名修改爲hadoop.
[root@localhost ~]# vim /etc/hostname
然後將裏面的內容修改爲hadoop。
修改etc/hosts文件,在裏面添加
主機名 hadoop
然後重啓linux生效。
[root@localhost ~]# reboot
重啓linux後,我們發現hostname已經變成了hadoop。
6.設置本地ssh免密登陸
[root@hadoop ~]# ssh-keygen -t rsa
一直敲回車,直到結束。
這個時候,在~/.ssh文件夾下會生成兩個文件:
-rw-------. 1 root root 1679 Oct 28 18:15 id_rsa
-rw-r--r--. 1 root root 393 Oct 28 18:15 id_rsa.pub
我們需要在這個文件夾下面創建authorized_keys文件,並且將id_rsa.pub的內容添加到authorized_keys中去,命令如下:
[root@hadoop .ssh]# cat id_rsa.pub >>authorized_keys
然後需要更改authorized_keys文件的權限爲600(這一步必須,否則ssh免密登陸將會不成功),命令如下:
[root@hadoop .ssh]# chmod 600 authorized_keys
7.安裝JDK
hadoop需要JDK的運行環境。
首先從官網上下載JDK安裝包,鏈接地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
現在完成後放到linux的文件夾中,這裏我是在/home/hadoop下新建了一個softs的文件夾。
然後執行解壓縮命令:
[root@hadoop softs]# tar -zxvf jdk-8u151-linux-x64.tar.gz
如果解壓提示permission deny等問題,可以再命令前面加上sudo。
解壓完成後,創建jdk目錄的軟連接(方便以後使用):
[root@hadoop softs]# sudo ln -s /home/hadoop/softs/jdk1.8.0_151 /usr/local/jdk
然後設置java的環境變量:
[root@hadoop softs]# vim ~/.bash_profile
在該文件中加入下面三行:
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
然後使用命令使配置生效。
[root@hadoop softs]# source ~/.bash_profile
檢測java環境:
[root@hadoop softs]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
可以看到java版本信息,說明jdk環境已經安裝成功。
8.安裝hadoop環境
下載hadoop的安裝包並複製到softs文件夾中。hadoop鏈接地址:http://archive.cloudera.com/cdh5/cdh/5/
解壓該安裝包。
[root@hadoop softs]# tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz
解壓完成後,在/home/hadoop/下創建bigdata文件夾。
創建hadoop文件夾的軟連接:
[root@hadoop softs]# sudo ln -s /home/hadoop/softs/hadoop-2.5.0-cdh5.3.6 /home/hadoop/bigdata/hadoop5.3.6
在/home/hadoop/bigdata/hadoop5.3.6文件夾下面創建hdfs文件夾。
進入/home/hadoop/bigdata/hadoop5.3.6/etc/hadoop 文件夾下面
配置/home/hadoop/bigdata/hadoop5.3.6/etc/hadoop/hadoop-env.sh環境文件。
export JAVA_HOME=/usr/local/jdk
export HADOOP_PID_DIR=/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp
配置mapred-env.sh
export HADOOP_MAPRED_PID_DIR=/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp
配置基本環境變量core-site.xml文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://hh:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp</value>
</property>
配置hdfs相關變量hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/bigdata/hadoop5.3.6/hdfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>/home/hadoop/bigdata/hadoop5.3.6/hdfs/data</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
配置mapre相關環境變量mapred-site.xml文件
執行命令:
cp mapred-site.xml.templete mapred-site.xml
配置mapred-site.xml文件
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置yarn相關環境變量
yarn-site.xml文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
yarn-env.sh文件
export YARN_PID_DIR=/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp
配置datanode相關變量slaves文件
將salves文件中的內容改爲主機名
配置hadoop相關環境變量
export HADOOP_HOME=/home/hadoop/bigdata/hadoo5.3.6/
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
最後執行命令使配置生效:
source ~/.bash_profile
9.啓動hadoop
第一次啓動hadoop需要執行一個命令:hadoop namenode - format
然後執行命令:start-all.sh
10.驗證是否啓動成功
輸入命令jps,如果你能看到下面幾個進程在運行,那麼恭喜你,你的hadoop環境已經成功運行。
[root@hadoop ~]# jps
5472 DataNode
6083 NodeManager
6469 Jps
5798 ResourceManager
5640 SecondaryNameNode