hadoop 3.1.1 安裝

如下是本次搭建說使用的服務器html

服務器IP分配
IP    節點名稱 說明
192.168.172.130 master 主服務器
192.168.172.131 slave1 從服務器1
192.168.172.132 slave2 從服務器2

一、分別 在三臺服務器上新增用戶、組java

groupadd hadoop
useradd -d /home/hadoop -g hadoop -s /bin/bash -m hadoop
visudo
#在文中root行下添加hadoop行
root ALL=(ALL:ALL) ALL
hadoop ALL=(ALL) ALL

 


二、分別 在三臺服務器上執行以下操做

vi /etc/hosts
#追加以下內容
192.168.172.130 master
192.168.172.131 slave1
192.168.172.132 slave2

三、分別 在三臺服務器上執行以下操做

vi /etc/hostname
#master服務器將內容修改成以下內容
hadoop_master.localdomain

#slave1服務器將內容修改成以下內容
hadoop_slave1.localdomain

#slave2服務器將內容修改成以下內容
hadoop_slave2.localdomain

四、分別 在三臺服務器上執行以下操做

#重啓服務器
reboot

 五、設置SSH免密碼遠程登陸,環境設置:修改sshd的配置文件

vim /etc/ssh/sshd_config
#找到如下內容,並去掉註釋符「#」

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

重啓sshd服務node

/sbin/service sshd restart

本機生成公鑰和私鑰
本機切換成須要免密碼登錄的帳戶,而後運行如下命令:linux

ssh-keygen -t rsa

運行後默認會在該帳號的home目錄下生成~/.ssh/id_rsa: 私鑰和~/.ssh/id_rsa.pub:公鑰兩個文件。apache

將公鑰導入本機認證文件vim

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

將公鑰導入到目標(將遠程登陸到的服務器)服務器的特定帳號(將以該帳號登陸遠程服務器)的認證文件瀏覽器

scp ~/.ssh/id_rsa.pub xxx@目標主機ip或主機名:/home/xxx/id_rsa.pub

而後以相應帳號登陸到遠程服務器,再運行如下命令導入公鑰到認證文件bash

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys //將全部服務器的id_rsa.pub相互導入服務器

修改遠程服務器相應帳號下的.ssh文件夾和authorized_keys文件的權限服務器

chmod 700 ~/.ssh
chmod 710  ~/.ssh/authorized_keys

測試是否配置成功app

在 master 服務器使用以下命令,第一次會提示輸入一次公鑰密碼,之後再次登陸再也不提示則表示成功

ssh slave1
ssh slave2

在 slave1 服務器使用以下命令,第一次會提示輸入一次公鑰密碼,之後再次登陸再也不提示則表示成功  

ssh master
ssh slave2

在 slave2 服務器使用以下命令,第一次會提示輸入一次公鑰密碼,之後再次登陸再也不提示則表示成功  

ssh master
ssh slave1

 若上面操做始終提示須要輸入密碼,嘗試修改hadoop用戶組再重複上面操做

usermod -G root hadoop

六、配置java環境(如下操做都在master上操做)

mkdir -p /usr/local/java

下載jdk1.8版本,並將其解壓到/usr/local/java目錄下

tar -zxf jdk-8u65-linux-x64.tar.gz -C /usr/local/java/

配置環境變量

vi /etc/profile

#在配置文件的最後添加以下配置

#JAVA
JAVA_HOME=/usr/local/java/jdk1.8.0_65 #本身解壓後的jdk目錄名稱
JRE_JOME=/usr/local/java/jdk1.8.0_65/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_JOME CLASS_PATH PATH

保存退出後,執行如下命令刷新環境變量

source /etc/profile

進行測試是否成功

java -version

七、安裝hadoop3.1.1(如下操做都在master上操做)

cd /usr/local/
sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/core/hadoop-3.1.1/hadoop-3.1.1.tar.gz
#解壓配置環境變量
tar -zxf hadoop-3.1.1.tar.gz -C /usr/local/hadoop/

配置hadoop環境變量

vi /etc/profile
#在配置文件最後一行添加以下配置
 
#HADOOP
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

運行以下命令刷新環境變量

source /etc/profile

進行測試是否成功

hadoop version

配置Hadoop3.1.1  

#在/usr/local/hadoop目錄下建立目錄
cd /usr/local/hadoop/
mkdir tmp     
mkdir var  
mkdir dfs  
mkdir dfs/name  
mkdir dfs/data  

進入hadoop的配置文件目錄下,修改配置文件

cd /usr/local/hadoop/hadoop-3.1.1/etc/hadoop
vi workers
#刪除localhost,添加從節點主機名,例如我這裏是:
slave1
slave2 

a、修改 hadoop-env.sh 文件

vi hadoop-env.sh
在#  JAVA_HOME=/usr/java/testing hdfs dfs -ls一行下面添加以下代碼
export JAVA_HOME=/usr/local/java/jdk1.8.0_65
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
export YARN_RESOURCEMANAGER_USER=hadoop
export YARN_NODEMANAGER_USER=hadoop

b、修改 core-site.xml 文件

vim /usr/local/hadoop/hadoop-3.1.1/etc/hadoop/core-site.xml

內容以下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.172.130:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>

c、修改 hdfs-site.xml 文件

vim /usr/local/hadoop/hadoop-3.1.1/etc/hadoop/hdfs-site.xml

內容以下:

<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/usr/local/hadoop/dfs/name</value>
        <description>
            Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.
        </description>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/usr/local/hadoop/dfs/data</value>
        <description>
            Comma separated list of paths on the localfilesystem of a DataNode where it should store itsblocks.
        </description>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>192.168.172.130:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.172.130:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
        <description>need not permissions</description>
    </property>
</configuration>  

d、修改 yarn-site.xml 文件

在命令行下輸入以下命令,並將返回的地址複製,在配置下面的yarn-site.xml時會用到。

hadoop classpath

將上面命令獲取的到結果複製一下,下面會用到

vim /usr/local/hadoop/hadoop-3.1.1/etc/hadoop/yarn-site.xml

 

內容以下:

<configuration>
    <!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.application.classpath</name>
        <value>輸入剛纔返回的Hadoop classpath路徑</value>
    </property>
</configuration>

八、同步(如下操做都在master上操做)

如下命令一條一條執行

scp -r /usr/local/java slave1:/usr/local/java
scp -r /usr/local/hadoop slave1:/usr/local/hadoop
scp -r /etc/profile slave1:/etc/
 
scp -r /usr/local/java slave2:/usr/local/java
scp -r /usr/local/hadoop slave2:/usr/local/hadoop
scp -r /etc/profile slave2:/etc/

上面的全部命令都執行完以後,分別在slave一、slave2刷新環境變量

source /etc/profile

九、格式化節點(如下操做都在master上操做)

hdfs namenode -format

十、啓動hadoop集羣的服務 (如下操做都在master上操做)

start-all.sh

 啓動完以後在master、slave一、slave2上執行以下命令,查看啓動狀況

jps  

在瀏覽器查看啓動狀況:http://192.168.172.130:8088/cluster

 或者 http://192.168.172.130:50070/dfshealth.html#tab-overview

相關文章
相關標籤/搜索