在ECS实例的centos系统中安装Hadoop
返回《在阿里云中搭建大數(shù)據(jù)實(shí)驗(yàn)環(huán)境》首頁(yè)
提示:本教程是一個(gè)系列文章,請(qǐng)務(wù)必按照本教程首頁(yè)中給出的各個(gè)步驟列表,按照先后順序一步步進(jìn)行操作,本博客假設(shè)你已經(jīng)順利完成了之前的操作步驟。
在阿里云ECS的Ubuntu系統(tǒng)中安裝Hadoop,和在本地電腦安裝Hadoop,基本相似,但是,也有略微差別,必須正確配置,否則,會(huì)導(dǎo)致無(wú)法順利啟動(dòng)。安裝Hadoop之前,請(qǐng)確保已經(jīng)根據(jù)前面的博客《在ECS實(shí)例的Ubuntu系統(tǒng)中安裝Java》完成了Java的安裝。
我們已經(jīng)把Hadoop的安裝包hadoop-2.7.1.tar.gz放在了百度云盤(建議選擇2.7.1版本,確保和本教程的其他大數(shù)據(jù)軟件在版本上能夠兼容,選擇其他Hadoop版本,可能導(dǎo)致其他軟件會(huì)運(yùn)行出錯(cuò)),可以點(diǎn)擊這里到百度云盤下載Hadoop安裝包。把壓縮格式的文件hadoop-2.7.1.tar.gz下載到本地電腦,然后,參考之前的FTP使用指南,在本地電腦中,使用FTP軟件,使用用戶名linziyu連接阿里云ECS實(shí)例,把hadoop-2.7.1.tar.gz這個(gè)壓縮格式文件上傳到遠(yuǎn)程的阿里云ECS實(shí)例的Ubuntu系統(tǒng)中,可以上傳到Ubuntu系統(tǒng)的“/home/linziyu/Downloads/”目錄下。
根據(jù)本教程前面博客介紹的方法,采用用戶名linziyu,使用Putty連接ECS中的Ubuntu系統(tǒng),進(jìn)入命令行界面,或者也可以使用VNCViewer連接ECS中的Ubuntu系統(tǒng)打開“終端”進(jìn)入命令行界面??傊?#xff0c;一定要進(jìn)入命令行界面,這樣可以在里面輸入Shell命令,來(lái)安裝Java。
假設(shè)現(xiàn)在已經(jīng)進(jìn)入命令行界面中,當(dāng)前登錄用戶名是linziyu。
更新apt
用linziyu 用戶登錄后,我們先更新一下 apt,后續(xù)我們使用 apt 安裝軟件,如果沒更新可能有一些軟件安裝不了。在命令行界面中執(zhí)行如下命令:
Shell 命令
安裝SSH、配置SSH無(wú)密碼登陸
Hadoop集群、單節(jié)點(diǎn)模式都需要用到 SSH 登陸(類似于遠(yuǎn)程登陸,你可以登錄某臺(tái) Linux 主機(jī),并且在上面運(yùn)行命令),Ubuntu 默認(rèn)已安裝了 SSH client,此外還需要安裝 SSH server:sudo apt-get install openssh-server
Shell 命令
安裝后,可以使用如下命令登陸本機(jī):
ssh localhostShell 命令
此時(shí)會(huì)有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼 hadoop,這樣就登陸到本機(jī)了。
SSH首次登陸提示
但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無(wú)密碼登陸比較方便。
首先退出剛才的 ssh,就回到了我們?cè)鹊慕K端窗口,然后利用 ssh-keygen 生成密鑰,并將密鑰加入到授權(quán)中:
Shell 命令
此時(shí)再用?ssh localhost?命令,無(wú)需輸入密碼就可以直接登陸了,屏幕上會(huì)顯示如下信息:
linziyu@iZbp11gznj7n38xkztu64dZ:~$ ssh localhost Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-93-generic x86_64)* Documentation: https://help.ubuntu.com/ 23 packages can be updated. 9 updates are security updates. New release '16.04.4 LTS' available. Run 'do-release-upgrade' to upgrade to it. Your Hardware Enablement Stack (HWE) is supported until April 2019. Welcome to Alibaba Cloud Elastic Compute Service ! Last login: Fri Apr 6 10:51:13 2018 from 118.12.231.185安裝Java
安裝Hadoop之前,請(qǐng)確保已經(jīng)根據(jù)前面的博客《在ECS實(shí)例的Ubuntu系統(tǒng)中安裝Java》完成了Java的安裝。
修改hostname配置文件
sudo vim /etc/hostsShell 命令
打開這個(gè)配置文件以后,在里面增加一行“192.168.1.106 iZbp11gznj7n38xkztu64dZ”,增加以后的效果如下:
192.168.1.106 iZbp11gznj7n38xkztu64dZ 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters增加的一行“192.168.1.106 iZbp11gznj7n38xkztu64dZ”中,192.168.1.106是阿里云ECS實(shí)例的私有IP地址,iZbp11gznj7n38xkztu64dZ是ECS實(shí)例中的Ubuntu系統(tǒng)的主機(jī)名。
安裝 Hadoop
我們選擇將 Hadoop 安裝至 /usr/local/ 中,用linziyu用戶登錄Ubuntu系統(tǒng)后,在命令行終端中,執(zhí)行如下命令:
cd ~ sudo tar -zxf ~/Downloads/hadoop-2.7.1.tar.gz -C /usr/local # 解壓到/usr/local中 cd /usr/local/ sudo mv ./hadoop-2.7.1/ ./hadoop # 將文件夾名改為hadoop sudo chown -R linziyu:linziyu ./hadoop # 修改文件權(quán)限?
Shell 命令
Hadoop 解壓后即可使用。輸入如下命令來(lái)檢查 Hadoop 是否可用,成功則會(huì)顯示 Hadoop 版本信息
?
cd /usr/local/hadoop ./bin/hadoop versionShell 命令
Hadoop偽分布式配置
Hadoop 可以在單節(jié)點(diǎn)上以偽分布式的方式運(yùn)行,Hadoop 進(jìn)程以分離的 Java 進(jìn)程來(lái)運(yùn)行,節(jié)點(diǎn)既作為 NameNode 也作為 DataNode,同時(shí),讀取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個(gè)配置文件?core-site.xml?和?hdfs-site.xml?。Hadoop的配置文件是 xml 格式,每個(gè)配置以聲明 property 的 name 和 value 的方式來(lái)實(shí)現(xiàn)。
修改配置文件?core-site.xml?(使用vim編輯器:?vim /usr/local/hadoop/etc/hadoop/core-site.xml),該文件原來(lái)的內(nèi)容如下:
XML
請(qǐng)把該文件修改為下面配置:
?
注意,在上面這個(gè)core-site.xml文件中,“hdfs://192.168.1.106:9000”的IP地址是你的阿里云ECS實(shí)例的“私網(wǎng)IP地址”192.168.1.106,不是公網(wǎng)IP地址。你的私網(wǎng)IP地址可能不是這個(gè),可以登錄阿里云控制臺(tái),查詢自己的ECS實(shí)例的私網(wǎng)IP地址。
同樣的,修改配置文件?hdfs-site.xml:
?
Hadoop配置文件說(shuō)明
Hadoop 的運(yùn)行方式是由配置文件決定的(運(yùn)行 Hadoop 時(shí)會(huì)讀取配置文件),因此如果需要從偽分布式模式切換回非分布式模式,需要?jiǎng)h除 core-site.xml 中的配置項(xiàng)。
此外,偽分布式雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運(yùn)行(官方教程如此),不過(guò)若沒有配置 hadoop.tmp.dir 參數(shù),則默認(rèn)使用的臨時(shí)目錄為 /tmp/hadoo-hadoop,而這個(gè)目錄在重啟時(shí)有可能被系統(tǒng)清理掉,導(dǎo)致必須重新執(zhí)行 format 才行。所以我們進(jìn)行了設(shè)置,同時(shí)也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否則在接下來(lái)的步驟中可能會(huì)出錯(cuò)。
配置完成后,執(zhí)行 NameNode 的格式化:
Shell 命令
成功的話,會(huì)看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯(cuò)。
如果在這一步時(shí)提示?Error: JAVA_HOME is not set and could not be found.?的錯(cuò)誤,則說(shuō)明之前設(shè)置 JAVA_HOME 環(huán)境變量那邊就沒設(shè)置好,請(qǐng)按教程先設(shè)置好 JAVA_HOME 變量,否則后面的過(guò)程都是進(jìn)行不下去的。如果已經(jīng)按照前面教程在.bashrc文件中設(shè)置了JAVA_HOME,還是出現(xiàn)?Error: JAVA_HOME is not set and could not be found.?的錯(cuò)誤,那么,請(qǐng)到hadoop的安裝目錄修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”這行,然后,把它修改成JAVA安裝路徑的具體地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次啟動(dòng)Hadoop。
接著開啟 NameNode 和 DataNode 守護(hù)進(jìn)程。
cd /usr/local/hadoop ./sbin/start-dfs.sh #start-dfs.sh是個(gè)完整的可執(zhí)行文件,中間沒有空格Shell 命令
若出現(xiàn)SSH提示,輸入yes即可,啟動(dòng)過(guò)程會(huì)顯示如下形式的屏幕信息:
linziyu@iZbp11gznj7n38xkztu64dZ:/usr/local/hadoop$ ./sbin/start-dfs.sh Starting namenodes on [iZbp11gznj7n38xkztu64dZ] iZbp11gznj7n38xkztu64dZ: starting namenode, logging to /usr/local/hadoop/logs/hadoop-linziyu-namenode-iZbp11gznj7n38xkztu64dZ.out localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-linziyu-datanode-iZbp11gznj7n38xkztu64dZ.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-linziyu-secondarynamenode-iZbp11gznj7n38xkztu64dZ.out啟動(dòng)時(shí)可能會(huì)出現(xiàn)如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN 提示可以忽略,并不會(huì)影響正常使用。
啟動(dòng)以后,使用jps命令查詢進(jìn)程,如果顯示如下四個(gè)進(jìn)程,則說(shuō)明Hadoop啟動(dòng)成功:
如果要停止Hadoop,可以使用如下命令:
cd /usr/local/hadoop ./sbin/stop-dfs.sh總結(jié)
以上是生活随笔為你收集整理的在ECS实例的centos系统中安装Hadoop的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: yum知识总结
- 下一篇: javaMail操作QQ邮箱发送邮箱 D