本小節(jié)沼溜,我們來安裝Hadoop環(huán)境平挑。
遠(yuǎn)程連接工具
為了安裝環(huán)境我們需要先在Windows下安裝一個(gè)遠(yuǎn)程連接的工具來連接Linux虛擬機(jī)。這款工具叫做SecureCRT,當(dāng)然還有很多其他連接工具通熄,不過我覺得這一款挺好用唆涝。
官網(wǎng)下載地址(不免費(fèi)):https://www.vandyke.com/download/securecrt/download.html
你也可以用我這個(gè):鏈接:https://pan.baidu.com/s/1GQq0l1N3XCpov8cPzCCkHQ 密碼:5vyv
打開軟件,新建連接唇辨。
設(shè)置連接屬性
進(jìn)入主界面
我們來稍稍美化一下 廊酣,編碼格式需要設(shè)置成UTF-8 否則會(huì)亂碼。
好了現(xiàn)在我們可以開始安裝Hadoop了赏枚。
下載Hadoop
我們?nèi)ス倬W(wǎng)下載:http://hadoop.apache.org/
輸入wget
下載Hadoop
如果我們是生產(chǎn)環(huán)境就需要驗(yàn)證文件的完整性亡驰,在這里我們就偷個(gè)懶了。
下載好之后饿幅,解壓到/app
目錄下凡辱。注意要切換成root用戶解壓哦,或者在命令前加上sudo
否則可能權(quán)限不夠栗恩。
我們來切換到app目錄下修改一下hadoop文件夾的名字
配置Hadoop環(huán)境
下載好Hadoop之后我們就要開始配置環(huán)境了透乾,
接下來我們來搭建一個(gè)單節(jié)點(diǎn)的集群,配置一個(gè)偽分布式磕秤,為什么不做分布式呢乳乌?
其實(shí)分布式的配置和偽分布式差不多,只是分布式機(jī)器增加了而已市咆,其他沒什么兩樣汉操,所以作為Hadoop學(xué)習(xí)我們搭建偽分布式要更好一點(diǎn),不過后期我們會(huì)搭建真正的分布式環(huán)境床绪。
好了客情,開始吧。你可以和我一起來癞己,也可以看官方文檔:http://hadoop.apache.org/docs/r3.1.0/hadoop-project-dist/hadoop-common/SingleCluster.html
畢竟這是知識(shí)的源頭嘛膀斋,不過和我一起來可以避免很多坑哦,畢竟我是從坑里爬出來的人痹雅。
檢查SSH
rpm -qa | grep openssh
rpm -qa |grep rsync
出現(xiàn)和我一樣的界面即代表已安裝SSH仰担,如果沒有出現(xiàn),那么你需要安裝SSH和rsync绩社,你可以通過如下命令安裝:
yum install ssh
yum install rsync
service sshd restart 啟動(dòng)服務(wù)
設(shè)置網(wǎng)絡(luò)
關(guān)閉selinux
vim /etc/sysconfig/selinux
修改
SELINUX=disabled
修改Hosts文件(目的是為了通過主機(jī)名訪問Hadoop)
vim /etc/hosts
在文件末尾添加如下代碼:hadoop-master 為主機(jī)名摔蓝,如果你的主機(jī)名不是這個(gè)那么需要修改成你自己的,IP也是愉耙,如果需要修改IP你可以到圖形界面去重新設(shè)置一下贮尉,輸入ifconfig
可以查看IP。
192.168.2.10 hadoop-master
創(chuàng)建Hadoop用戶
一般情況下我們都不會(huì)用root用戶直接來操作Linux系統(tǒng)朴沿,所以我們需要?jiǎng)?chuàng)建一個(gè)hadoop用戶猜谚,這個(gè)用戶我們?cè)诘谝还?jié)中已經(jīng)創(chuàng)建了败砂,如果你還沒有創(chuàng)建可以使用如下命令來創(chuàng)建該用戶:
useradd hadoop
passwd hadoop
這個(gè)hadoop用戶有很多權(quán)限是沒有的所以我們需要給hadoop用戶添加權(quán)限
命令:visudo
輸入 /root
可以快速定位到root的位置
root ALL=(ALL) ALL
hadoop ALL=(root) NOPASSWD:ALL
設(shè)置SSH免密登錄
在之后操作集群的時(shí)候我們需要經(jīng)常登錄主機(jī)和從機(jī),所以設(shè)置SSH免密登錄時(shí)有必要的魏铅。
su hadoop
以hadoop身份登錄
輸入如下代碼:
ssh-keygen -t rsa -P ''
生成無密碼密鑰對(duì)昌犹,詢問保存路徑直接輸入回車,生成密鑰對(duì):id_rsa和id_rsa.pub
览芳,默認(rèn)存儲(chǔ)在/home/hadoop/.ssh
目錄下斜姥。
接下來:把id_rsa.pub
追加到授權(quán)的key
里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后修改權(quán)限:
chmod 600 ~/.ssh/authorized_keys
接著需要啟用RSA認(rèn)證沧竟,啟動(dòng)公鑰私鑰配對(duì)認(rèn)證方式
vim /etc/ssh/sshd_config
如果提示權(quán)限不足在命令前加上sudo
修改ssh配置:
RSAAuthentication yes # 啟用 RSA 認(rèn)證
PubkeyAuthentication yes # 啟用公鑰私鑰配對(duì)認(rèn)證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑
重啟SSH service sshd restart
好了準(zhǔn)備工作已經(jīng)做完了铸敏,我們要開始修改Hadoop的配置文件了,總共需要修改6個(gè)文件屯仗。分別是:
- hadoop-env.sh
- yarn-env.sh
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
- yarn-site.xml
我們一個(gè)一個(gè)的來吧搞坝!
hadoop-env.sh 配置
兩個(gè)env.sh
文件主要是配置JDK的位置
如果你不記得JDK的位置了輸入 echo $JAVA_HOME
就可以看到哦。
首先我們切換到hadoop
目錄下
編輯
hadoop-env.sh
在文件中插入如下代碼:
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/app/jdk1.8.0_171
yarn-env.sh 配置
編輯yarn-env.sh
插入如下代碼:
export JAVA_HOME=/app/jdk1.8.0_171
core-site.xml配置
這個(gè)是核心配置文件我們需要在該文件中加入 HDFS的URI和NameNode的臨時(shí)文件夾位置魁袜,這個(gè)臨時(shí)文件夾在下文中會(huì)創(chuàng)建。
在文件末尾的configuration
標(biāo)簽中添加代碼如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>HDFS的URI敦第,文件系統(tǒng)://namenode標(biāo)識(shí):端口號(hào)</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<description>namenode上本地的hadoop臨時(shí)文件夾</description>
</property>
</configuration>
hdfs-site.xml文件配置
replication指的是副本數(shù)量峰弹,我們現(xiàn)在是單節(jié)點(diǎn),所以是1.
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/hdfs/name</value>
<description>namenode上存儲(chǔ)hdfs名字空間元數(shù)據(jù) </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hdfs/data</value>
<description>datanode上數(shù)據(jù)塊的物理存儲(chǔ)位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml文件配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.2.10:8099</value>
<description>這個(gè)地址是mr管理界面的</description>
</property>
</configuration>
創(chuàng)建文件夾
我們?cè)谂渲梦募信渲昧艘恍┪募A路徑芜果,現(xiàn)在我們來創(chuàng)建他們鞠呈,在/usr/hadoop/
目錄下使用hadoop用戶操作,建立tmp右钾、hdfs/name蚁吝、hdfs/data目錄,執(zhí)行如下命令 :
mkdir /usr/hadoop/tmp
mkdir /usr/hadoop/hdfs
mkdir /usr/hadoop/hdfs/data
mkdir /usr/hadoop/hdfs/name
直接創(chuàng)建應(yīng)該會(huì)提示權(quán)限不足舀射,你可以先在usr
文件夾下創(chuàng)建Hadoop
目錄窘茁,然后修改Hadoop
目錄的所有者為Hadoop
用戶,命令為:
chown -R hadoop:hadoop hadoop
修改之后的效果:如果提示權(quán)限不足則在命令前加上suudo
然后在創(chuàng)建上述文件夾脆烟。
將Hadoop添加到環(huán)境變量中
我們現(xiàn)在和之后都使用hadoop
用戶來進(jìn)行操作山林。
sudo vim etc/profile
在文件末尾插入如下代碼:
最后使修改生效:source /etc/profile
驗(yàn)證
現(xiàn)在配置工作已經(jīng)基本搞定,接下來只需要完成:1.格式化HDFS文件邢羔、2.啟動(dòng)hadoop驼抹、3.驗(yàn)證Hadoop 即可
格式化
在使用Hadoop之前我們需要格式化一些hadoop的基本信息。
使用如下命令:
hadoop namenode -format
出現(xiàn)如下界面代表成功:
啟動(dòng)Hadoop
在啟動(dòng)前關(guān)閉防火墻拜鹤,不然會(huì)出現(xiàn)datanode
開后又自動(dòng)關(guān)閉框冀。
centerOS7之前的版本關(guān)閉防火墻使用的是 service iptables stop
來關(guān)閉防火墻,但是CentOS 7.0默認(rèn)使用的是firewall作為防火墻敏簿,使用iptables必須重新設(shè)置一下
1明也、centerOS7直接關(guān)閉防火墻:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機(jī)啟動(dòng)
2、如果你要使用以前的版本設(shè)置 iptables service,可以使用如下方法:
yum -y install iptables-services
如果要修改防火墻配置诡右,如增加防火墻端口3306
vi /etc/sysconfig/iptables
增加規(guī)則
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重啟防火墻使配置生效
systemctl enable iptables.service #設(shè)置防火墻開機(jī)啟動(dòng)
最后重啟系統(tǒng)使設(shè)置生效即可安岂。
我們使用第一種方式即可。
接下來我們啟動(dòng)Hadoop:
start-dfs.sh
輸入命令出現(xiàn)如下圖界面即可:
輸入命令 jps
驗(yàn)證:
之后你可以在你虛擬機(jī)的圖形化界面中打開火狐瀏覽器輸入:http://localhost:9870/ 或者在windows機(jī)器上輸入http://虛擬機(jī)ip地址:9870/ 也可以訪問 hadoop的管理頁面
好了到了這一步Hadoop就安裝完成了帆吻,下一節(jié)我們來學(xué)習(xí)Hadoop的HDFS系統(tǒng)域那。
未完待續(xù)......