大數據集群運維(20)centos7 hadoop 單機模式安裝配置


前言

由於現在要用spark,而學習spark會和hdfs和hive打交道,之前在公司服務器配的分布式集群,離開公司之后,自己就不能用了,后來用ambari搭的三台虛擬機的集群太卡了,所以就上網查了一下hadoop+hive的單機部署,以便自己能進行簡單的學習,這里記錄一下,本來想把hadoop和hive的放在一起寫,由於太多,就分成兩篇寫了。

1、首先安裝配置jdk(我安裝的1.8)

2、下載hadoop

下載地址:http://mirror.bit.edu.cn/apache/hadoop/common/,我下載的是hadoop-2.7.5.tar.gz
(由於我之前用的2.7.1是幾年前下載保存在本地的,現在發現之前在配置spark那篇寫的那個hadoop下載地址較慢,所以改成這個地址)

3、解壓到/opt目錄下(目錄根據自己習慣)

tar -zxvf hadoop-2.7.5.tar.gz  -C /opt/

4、配置hadoop環境變量

vim /etc/profile
export HADOOP_HOME=/opt/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile

5、配置hadoop

5.1 配置hadoop-env.sh

vim /opt/hadoop-2.7.5/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_45

找到# The java implementation to use.將其下面的一行改為:

5.2 配置core-site.xml (5.2和5.3中配置文件里的文件路徑和端口隨自己習慣配置)

其中的IP:192.168.44.128為虛擬機ip,不能設置為localhost,如果用localhost,后面在windows上用saprk連接服務器(虛擬機)上的hive會報異常(win讀取的配置也是localhost,這樣localhost就為win本地ip了~也可以給ip加個映射,不過因為單機的我就沒加)。

vim /opt/hadoop-2.7.5/etc/hadoop/core-site.xml
<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>file:///opt/hadoop-2.7.5</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.44.128:8888</value>
    </property>
</configuration>

5.3 配置hdfs-site.xml

vim /opt/hadoop-2.7.5/etc/hadoop/hdfs-site.xml
<configuration>
        <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/hadoop-2.7.5/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///opt/hadoop-2.7.5/tmp/dfs/data</value>
    </property>
</configuration>
6、SSH免密碼登錄

以下用三台centos為例,ip分別為192.168.44.138、192.168.44.139、192.168.44.140,分別對應別名master、slave1、slave2

1、首先在每個機器上執行

ssh-keygen -t rsa

將公鑰導入到認證文件中一直按回車默認就好

將三個機器上id_rsa.pub的內容合並起來放在authorized_keys,可以用命令按下面的步驟來,也可以分別將三個機器的公鑰拷貝出來放在一個文件里,之后分別復制到各自機器的authorized_keys,我用的是下面的命令

2.1 在master上執行

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

如果不能免密登錄,可能是文件權限不對,執行下面的命令,再驗證一下(這時如果配單機的話,就可以免密登錄本機了,可以執行ssh localhost 或ssh master驗證一下,如下圖)

chmod 710 authorized_keys

然后將master的authorized_keys傳到slave1上的.ssh目錄下

scp -r authorized_keys root@slave1:~/.ssh 

2.2 在slave1上執行

cd ~/.ssh
cat id_rsa.pub>>authorized_keys
scp -r authorized_keys root@slave2:~/.ssh

2.3 在slave2上執行

這一步實際是將salve1的id_rsa.pub和master傳過來的authorized_keys里的內容合並起來存到authorized_keys,然后將authorized_keys傳到slave2機器上

cd ~/.ssh
cat id_rsa.pub>>authorized_keys
scp -r authorized_keys root@master:~/.ssh
scp -r authorized_keys root@slave1:~/.ssh

ssh master這一步實際是將salve2的id_rsa.pub和slave1傳過來的authorized_keys里的內容合並起來存到authorized_keys,然后將authorized_keys傳到master、slave1機器上。
到這里,每台機器上的authorized_keys都含有三台機器的公鑰,在每台機器上驗證一下是否可以免密ssh登錄到三台機器上了。

ssh slave1
ssh slave2

如果都不需要輸入密碼,就代表配置成功! 

7、啟動與停止

第一次啟動hdfs需要格式化:

cd /opt/hadoop-2.7.5
./bin/hdfs namenode -format

Re-format filesystem in Storage Directory /opt/hadoop-2.7.5/tmp/dfs/name ? (Y or N)

輸入:Y
(出現詢問輸入Y or N,全部輸Y即可)
啟動:

./sbin/start-dfs.sh

停止:

./sbin/stop-dfs.sh

驗證,瀏覽器輸入:http://192.168.44.128:50070

簡單的驗證hadoop命令:

hadoop fs -mkdir /test


在瀏覽器查看,出現如下圖所示,即為成功

8、配置yarn

8.1 配置mapred-site.xml

cd /opt/hadoop-2.7.5/etc/hadoop/
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
8.2 配置yarn-site.xml

vim yarn-site.xml
<configuration>
    <!-- reducer取數據的方式是mapreduce_shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

8.3 yarn啟動與停止

啟動:

cd /opt/hadoop-2.7.5
./sbin/start-yarn.sh

停止:

./sbin/stop-yarn.sh
瀏覽器查看:http://192.168.44.128:8088


jps查看進程

到此,hadoop單機模式就配置成功了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM