1. 程式人生 > >Hadoop 2.7.0在centos7分散式叢集上的部署與測試

Hadoop 2.7.0在centos7分散式叢集上的部署與測試

Author: Wingter Wu

1 環境說明

VitualBox 5.0.24

CentOS-7-x86_64-Minimal-1611:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso

JDK 1.7u75:網盤

Hadoop-2.7.0-bin.tar.gz:http://mirrors.hust.edu.cn/apache/hadoop/common/

主要參考資料:

輔助資料:

http://blog.csdn.net/stark_summer/article/details/43484545(配置檔案+官方配置項列表)

2      安裝VM系統

2.1 配置虛擬機器

磁碟:本文配20G,動態分配,vdi格式

記憶體:1G-2G

CPU:一核

網路:網路方式使用 橋接網絡卡最為簡單。

2.2安裝CentOS VM

設定->新增虛擬光碟機-> CentOS-7-x86_64-Minimal-1611.iso

啟動虛擬機器,進入CentOS 7安裝

分割槽:

採用普通分割槽,LVM未嘗試過

掛載點大小分配(總大小20GB):/boot=200M, /=10G, swap=1G (或2倍記憶體),剩下給/home

網路和主機名:

主機名設定為hadoop.master(其實不建議用’.’,可能在Bash提示符處顯示不全)

網路設定:

Ipv4:設為固定(192.168.1.103),並在路由器管理頁面進行mac-ip繫結

掩碼:255.255.255.0

閘道器:192.168.1.1(路由器的ip)

DNS伺服器:222.201.130.30  222.201.130.33 (同宿主機)

開始安裝…...(同時設定root密碼,可不建立hadoop使用者,可以直接在root上部署hadoop,或者後續再建立)

完成安裝,重新啟動虛擬機器。 

2.3CentOSVM環境配置

Note: 為了減少工作量,本文件的思路是在hadoop.master上完成所有配置(i.e., 網路(克隆後需在slaves上調整)+JDK+Hadoop),然後再克隆出slave1和slave2,微調網路後再配置SSH,就完成了叢集搭建。

下面開始配置hadoop.master這個主節點

網路配置:centos7.0初始化時並沒有ifconfig指令,需要使用下面兩個指令進行安裝:

#yum search ifconfg

#yum install net-tools.x86_64

輸入ifconfig 檢視是否正常獲取IP地址,使用ping命令確認能否上網。

為了使用ssh,關閉防火牆(和SElinux):

#systemctlstop firewalld

關閉SElinux:

#getenforce

#setenforce 0

設定hostname,設定為hadoop.master,需要修改的檔案包括:

#vim/etc/sysconfig/network

#vim/etc/hostname

#vim/etc/hosts

配置本地hosts,這裡假設兩臺slave的ip已經確定了(雖然還未克隆出來)

# vim/etc/hosts

192.168.1.103   hadoop.master

192.168.1.104   hadoop.slave1

192.168.1.105   hadoop.slave2

2.4 JAVA配置:

一般linux中都已經開啟了ssh功能。

使用宿主機ssh客戶端(e.g., SSH Secure Shell Client),上傳jdkhadoop

Jdk1.7安裝到/usr/java中:

#tar zxvf jdk-7u75-linux-x64.tar.gz–C /usr/java

軟連線以方便設定envs

#ln –s jdk1.7.0_75 jdk

設定Java環境變數,可以直接修改/etc/profile,更容易維護的方式新建是/etc/profile.d/java.sh

#vim /etc/profile.d/java.sh

寫入如下內容:

exportJAVA_HOME=/usr/java/jdk

exportJRE_HOME=/usr/java/jdk/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

使之生效:

#source /etc/profile

2.5 Hadoop配置:

假設從host上傳過來的Hadoop在~/

解壓(安裝)到/usr/hadoop:

#tar zxvf hadoop-2.7.0.tar.gz –C/usr/hadoop/hadoop-2.7.0.tar.gz

配置Hadoop相關環境變數:

#vim /etc/profile.d/hadoop.sh

寫入:

export HADOOP_HOME=/usr/hadoop 

export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin${PATH}

exportHADOOP_MAPRED_HOME=${HADOOP_HOME}

exportHADOOP_COMMON_HOME=${HADOOP_HOME}

exportHADOOP_HDFS_HOME=${HADOOP_HOME}

export YARN_HOME=${HADOOP_HOME}

exportHADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native   

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib: ${HADOOP_HOME}/lib/native"

使之生效:

#source /etc/profile

配置Hadoop的各種配置檔案:

設定hadoop-env.shyarn-env.shmapred-env.sh中的java環境變數

#cd/usr/hadoop/etc/hadoop/

#vimhadoop-env.sh

#vim yarn-env.sh

#vim mapred-env.sh

// 修改JAVA_HOME

export JAVA_HOME=/usr/java/jdk

配置core-site.xml檔案(指定了Namenode):

#vimcore-site.xml

// 修改檔案內容為以下

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/hadoop/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<property>

<name>fs.defaultFS</name>  #原文是fs.default.name,這兩個屬性在官網都有

<value>hdfs://hadoop.master:9000</value>

</property>

</configuration>

配置hdfs-site.xml檔案(指定HDFS塊在本地的儲存位置、副本數):

#vim hdfs-site.xml

// 修改檔案內容為以下

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///usr/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:///usr/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.nameservices</name>

<value>hadoop-cluster1</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>Master.Hadoop:50090</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

配置mapred-site.xml檔案(指定mapred採用框架yarn和一系列狀態查詢介面):

#vim mapred-site.xml

// 修改檔案為以下

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<final>true</final> #應該可以不要

</property>

<property>

<name>mapreduce.jobtracker.http.address</name>

<value>Master.Hadoop:50030</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>Master.Hadoop:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>Master.Hadoop:19888</value>

</property>

<property>

<name>mapred.job.tracker</name>

<value>http://Master.Hadoop:9001</value>

</property>

</configuration>

配置yarn-site.xml檔案(指定resourcemanager位置和一系列狀態查詢介面):

#vim yarn-site.xml

<configuration>

// 修改檔案內容為以下

<property>

<name>yarn.resourcemanager.hostname</name>

<value>Master.Hadoop</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>Master.Hadoop:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>Master.Hadoop:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>Master.Hadoop:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>Master.Hadoop:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>Master.Hadoop:8088</value>

</property>

</configuration>

修改Master主機上的slaves檔案(這兩個檔案在兩個slaves上應該不需要)

#cd/usr/hadoop/etc/hadoop

#vim slaves  Hadoop2.x似乎沒有master檔案)

// 將檔案內容修改為兩個slaves的主機名

hadoop.slave1

hadoop.slave2

*現在hadoop.master的所有內容已經配置完成。

2.6 複製出slaves

先在VirtualBox全域性設定中設定“預設虛擬電腦儲存位置”

然後克隆hadoop.master

副本型別:“完全複製”;備份:“全部”;不勾選“重新初始化所有Mac”

如下圖:

或者用VBoxManage命令形式(未試過):

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd"D:\Linux\CentOS\h1.vdi" "D:\Linux\CentOS\h2.vdi"

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Clone hard disk created in format 'VDI'. UUID:74a09b9d-c4d8-4689-9186-87e34e4b5265

2.7 修改slaves上的各種配置

啟動克隆出來的slave前,在Hypervisor內重新生成其Mac地址,因為預設克隆出來和master一樣的

分別登入3臺虛擬機器內,將IP地址與hostname,hosts修改正確,使之能互相ping通

#vim/etc/hostname

hadoop.slave1

#vim/etc/hosts

Note: 第一行127.0.0.1的解析名中不可以包含主機名(如hadoop.slave1),否則會導致Datanode連不上Namenode

第二行開始和master配置的一樣,就是一個DNS本地解析

#vim/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=hadoop.slave1

修改IP地址:

#vim /etc/sysconfig/network-scripts/ifcfg-eth0  #最後這個網絡卡名看情況

(上圖不是slave1的配置,只是示例;實際IP應為192.168.1.10x,掩碼24/32,閘道器192.168.1.1)

刪掉UUIDHWADDR這兩行(重啟會自動生成)

更改完成以後儲存並退出,然後刪除Linux實體地址繫結的檔案(該檔案會在作業系統重啟並生成實體地址以後將實體地址繫結到IP上);

如果不刪除,則作業系統會一直繫結著克隆過來的實體地址;

最簡單的解決辦法是直接刪除70-persistent-net.rules配置檔案

#rm -fr /etc/udev/rules.d/70-persistent-net.rules

(這一檔案我在克隆出的slave沒有發現,相似的檔案/etc/udev/rules.d/70-persistent-ipoib.rules也全是註釋,所有沒有做這一步)

#reboot

重啟系統就ok了,系統會自動生成一個新的。

啟動hadoop.master和兩臺slaves,嘗試互相ping一下,測試網路接通性。

2.8 在三臺VM上配置SSH無密碼登入

// 據說RSA認證原理大致是:master要免密登陸slave,所以生成一對公私鑰併發送公鑰給slave,slave將id_rsa.pub內容加入自己的信任名單;master發起SSH連線時,slave向master回覆一串內容,master用私鑰加密並回送,slave用master的公鑰解密,內容一致就完成認證,因此而免去密碼驗證。

以下在hadoop.master主機上配置

輸入以下指令生成ssh

#ssh-keygen

// 會生成兩個檔案,放到預設的/root/.ssh/資料夾中(我採用root作為hadoop使用者的賬戶)

把id_rsa.pub追加到授權的key裡面去

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

修改檔案”authorized_keys”許可權

#chmod 600 ~/.ssh/authorized_keys

設定SSH配置

#Vim /etc/ssh/sshd_config

// 以下三項修改成以下配置(可以先不做)

RSAAuthentication yes # 啟用 RSA 認證

PubkeyAuthentication yes # 啟用公鑰私鑰配對認證方式

AuthorizedKeysFile .ssh/authorized_keys # 公鑰檔案路徑(和上面生成的檔案同)

重啟ssh服務

#service sshd restart

把公鑰複製所有的Slave機器上

#格式:scp ~/.ssh/id_rsa.pub 遠端使用者名稱@遠端伺服器IP:~/

#scp ~/.ssh/id_rsa.pub [email protected]:~/

#scp ~/.ssh/id_rsa.pub [email protected]:~/

以下在Slave主機上配置

在slave主機上建立.ssh資料夾

#mkdir ~/.ssh

// 修改許可權

#chmod 700 ~/.ssh

追加到授權檔案”authorized_keys”

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

修改許可權

#chmod 600 ~/.ssh/authorized_keys

刪除無用.pub檔案

#rm –r ~/id_rsa.pub

master主機下進行測試

#ssh192.168.1.104

#ssh 192.168.1.105

2.9 關閉各節點的防火牆

#serviceiptables stop# centos7預設防火牆不是iptables

#servicefirewalld stop  # 暫時關閉

#systemctl disable firewalld.service  # 禁止firewall開機啟動

可以把SELinux也關閉了

#sestatus  # 檢視狀態

#setenforce 0  # 關閉

2.11 測試hadoop

登入hadoop.master測試Hadoop:

格式化HDFS檔案系統:

# Master主機上輸入以下指令

#hadoop namenode -format

啟動HDFS和Yarn

#cd /usr/hadoop/sbin

#./start-all.sh

// 更推薦的執行方式:

#cd /usr/hadoop/sbin

#./start-dfs.sh

#./start-yarn.sh

應該輸出以下資訊:

Startingnamenodes on [Master.Hadoop]

Master.Hadoop:starting namenode, logging to /usr/hadoop/logs/hadoop-root-namenode-localhost.localdomain.out

Slave2.Hadoop:starting datanode, logging to /usr/hadoop/logs/hadoop-root-datanode-Slave2.Hadoop.out

Slave1.Hadoop:starting datanode, logging to /usr/hadoop/logs/hadoop-root-datanode-Slave1.Hadoop.out

starting yarndaemons

startingresourcemanager, logging to /usr/hadoop/logs/yarn-root-resourcemanager-localhost.localdomain.out

Slave1.Hadoop:starting nodemanager, logging to /usr/hadoop/logs/yarn-root-nodemanager-Slave1.Hadoop.out

Slave2.Hadoop: starting nodemanager, logging to/usr/hadoop/logs/yarn-root-nodemanager-Slave2.Hadoop.out

通過JPS檢視程序啟動結果:

# 直接在MasterSlave輸入指令:

#jps

# 應該輸出以下資訊(埠號僅供參考)

# Master:

3930 ResourceManager

4506 Jps

3693 NameNode

# Slave:

2792 NodeManager

2920 Jps

2701DataNode

通過hadoop的dfsadmin命令檢視叢集狀態(可能需稍等HDFS退出safe-mode):

//輸入以下指令

#hadoop dfsadmin –report

// 應該輸出以下資訊:

ConfiguredCapacity: 14382268416 (13.39 GB)

PresentCapacity: 10538565632 (9.81 GB)

DFS Remaining: 10538557440 (9.81 GB)

DFS Used: 8192 (8 KB)

DFS Used%: 0.00%

Under replicatedblocks: 0

Blocks with corruptreplicas: 0

Missing blocks: 0

Missing blocks (with replicationfactor 1): 0

-------------------------------------------------

Live datanodes (2):

Name: 192.168.1.104:50010 (hadoop.slave1)

Hostname: hadoop.slave1

DecommissionStatus : Normal

ConfiguredCapacity: 7191134208 (6.70 GB)

DFS Used: 4096 (4 KB)

Non DFS Used: 1921933312 (1.79 GB)

DFS Remaining: 5269196800 (4.91 GB)

DFS Used%: 0.00%

DFS Remaining%: 73.27%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

Last contact:Thu Jul 0210:45:04 CST 2017

Name: 192.168.1.105:50010 (hadoop.slave2)

Hostname: hadoop.slave2

DecommissionStatus : Normal

ConfiguredCapacity: 7191134208 (6.70 GB)

DFS Used: 4096 (4 KB)

Non DFS Used: 1921769472 (1.79 GB)

DFS Remaining: 5269360640 (4.91 GB)

DFS Used%: 0.00%

DFS Remaining%: 73.28%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

停止yarn和hdfs程序:

#stop-yarn.sh

#stop-dfs.sh

3 MR程式測試

現在寫一個MyWordCount來在叢集上執行一下:

筆者參照WordCount的標準實現,它可以在Hadoop安裝包裡找到,包含該.java的具體路徑:

hadoop-2.7.0.tar.gz\hadoop-2.7.0\share\hadoop\mapreduce\sources\ hadoop-mapreduce-examples-2.7.0-sources

解壓之後可以找到org\apache\hadoop\examples中找到WordCount.java

參照景仰的Official codes,我簡化包結構,重名為主類為MyWordCount,程式碼如下:

/*

 * MyWordCount.java

 * This is a version of wordcount coded by

 * by Wingter

 * on 06/20/2017

 * basically identical to the officialimplementation of wordcount

 * provided inhadoop-mapreduce-2.7.0-sources.jar

 * as org.apache.hadoop.examples.WordCount.java

 * This class of mine is named MyWordCount andused to test Hadoop 2.7.0

 */

package hadoopTests;

import java.io.IOException;

importjava.util.StringTokenizer;

importorg.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.Path;

importorg.apache.hadoop.io.IntWritable;

importorg.apache.hadoop.io.Text;

importorg.apache.hadoop.mapreduce.Job;

importorg.apache.hadoop.mapreduce.Mapper;

importorg.apache.hadoop.mapreduce.Reducer;

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

importorg.apache.hadoop.util.GenericOptionsParser;

public class MyWordCount {

  public static class TokenizerMapper extendsMapper<Object, Text, Text, IntWritable>{

    private final static IntWritable one = newIntWritable(1);

    private Text word = new Text();

    public void map(Object key, Text value,Context context) throws IOException, InterruptedException {

      StringTokenizer itr = newStringTokenizer(value.toString());

      while(itr.hasMoreTokens()){

        word.set(itr.nextToken());

        context.write(word,one);

      }

    }

  }

  public static class IntSumReducer extendsReducer<Text, IntWritable, Text, IntWritable>{

    private IntWritable result = newIntWritable();

    public void reduce(Text key,Iterable<IntWritable> values, Context context) throws IOException,InterruptedException{

      int sum = 0;

      for(IntWritable val : values){

        sum += val.get();

      }

      result.set(sum);

      context.write(key, result);

    }

  }

  public static void main(String[] args) throwsException{

    Configuration conf = new Configuration();

    String[] otherArgs = newGenericOptionsParser(conf, args).getRemainingArgs();

    if(otherArgs.length < 2){

      //otherArgs begin from <input path>and end with <output path>

      System.err.println("Usage:MyWordCount <in> [<in>..] <out>");

      System.exit(2);

    }

    Job job = Job.getInstance(conf, "wwtword count");

    job.setJarByClass(MyWordCount.class);

    job.setMapperClass(TokenizerMapper.class);

    job.setCombinerClass(IntSumReducer.class);

    job.setReducerClass(IntSumReducer.class);

    job.setOutputKeyClass(Text.class);

    job.setOutputValueClass(IntWritable.class);

    for(int i=0;i<otherArgs.length-1;i++){

      FileInputFormat.addInputPath(job, newPath(otherArgs[i]));

    }

    FileOutputFormat.setOutputPath(job, newPath(otherArgs[otherArgs.length-1]));

    System.exit(job.waitForCompletion(true)?0:1);

  }

}

該程式碼MyWordCount.java放在~/programs/hadoopTests/下,儲存程式碼(:wq)之後,因為要在命令列下用javac編譯它,mapreduce程式自然要依賴hadoop的一些jar包。

舊版的Hadoop標準編譯方式是:

#javac-classpath $HADOOP_HOME/hadoop-core-1.0.1.jar -d  MyWordCount/  MyWordCount.java  //這是因為舊版程式依賴的包都在core那一個包裡面

但到了2.x版本,需要包含多個包。

據資料<http://blog.csdn.net/wang_zhenwei/article/details/47439623>說,例如2.4.1版本需要:

$HADOOP_HOME/share/hadoop/common/hadoop-common-2.4.1.jar

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.4.1.jar

$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar

所以一個辦法是在-classpath後面敲上它們。

一個更為機智的辦法是在JAVA環境變數CLASSPATH中就設定好,這樣直接javac即可編譯。


最為機智的方法來確定MapReduce程式依賴包的方法是(在/etc/profile.d/Hadoop.sh中加入):

#export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

# 因為命令hadoop classpath直接告訴你它所有的依賴包路徑了。

所以現在,編譯的命令僅僅是:

#javac –d myWordCount/ MyWordCount.java  

# -d表示輸出到myWordCount目錄下,等下直接對這個目錄打包;

# 指明-d選項,編譯完後,該目錄下會自動生成hadoopTests/的子目錄(因為程式碼中申明瞭package),不加-d則會使所有.class散佈在當前目錄下,不利於jar打包。

打包成jar:

#jar –cvf myWordCount.jar –C myWordCount/ . 

# 不要忘記最後的.-C代表臨時進去myWordCount目錄搜尋.class並且不建立新的目錄(即jar包內最外層不會是myWordCount/),最後的.代表回到當前工作目錄。

弄些資料並上傳至hdfs:

#hadoop dfs –mkdir /testdata    #HDFS的組織結構如同linux,以/為根

#hadoop dfs –copyFromLocal ~/testdata/wikepedia.txt /testdata/

執行MyWordCount作業:

#hadoop jar ~/programs/myWordCount.jarhadoopTests.MyWordCount /testdata /output

# 其中hadoopTests.MyWordCount是主類名,注意帶上包結構;/outputHDFS輸出目錄,需要不存在

執行結束,檢視輸出和job狀態

#hadoop dfs –cat /testdata/part-r-0000

RM上檢視Log:

#lessHADOOP_HOME/logs/yarn-root-resourcemanager-hadoop.master.log

#less檢視時,方向鍵翻行,G跳至最後

Web介面檢視作業狀態:192.168.1.103:8088

Web介面檢視輸出檔案:192.168.1.103:50070 -> Utilities -> Browse the file system:

4 測試Hadoop-streaming:

原理:

Streaming工具會建立MapReduce作業,在各節點啟動執行使用者指定指令碼/程式的程序,同時監控整個作業的執行過程。Hadoop會自動解析資料檔案(成行)到Mapper或者Reducer的標準輸入中,以供它們讀取使用。mapper和reducer會從標準輸入中讀取使用者資料,一行一行處理後傳送給標準輸出,Hadoop再對標準輸出自動進行kv化。

以mapper為例,如果一個檔案(可執行或者指令碼)作為mapper,mapper初始化時,每一個mapper任務會把該檔案作為一個單獨程序啟動,mapper任務執行時,它把輸入切分成行並把每一行提供給可執行檔案程序的標準輸入。 同時,mapper收集可執行檔案程序標準輸出的內容,並把收到的每一行內容轉化成key/value對,作為mapper的輸出。 預設情況下,一行中第一個tab之前的部分作為key,之後的(不包括tab)作為value。如果沒有tab,整行作為key值,value值為null。

對於reducer,類似。

Hadoop-streaming的使用套路:

//hadoop2.7的streaming工具包在:$HADOOP_HOME/share/hadoop/tools/lib /hadoop-streaming-2.7.0.jar

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/tools/libhadoop-*-streaming.jar \

-input myInputDirs \

相關推薦

Centos7 實現Hadoop-2.9.1分散式叢集搭建和部署(三臺機器)

一、準備三臺虛擬機器hadoop 192.168.131.128 localhost131 192.168.131.131 localhost134 192.168.131.134(以上是我的三臺虛擬機器的hostname 和 ip)hadoop 是 master 的 hos

如何使用Rancher 2.0在Kubernetes叢集部署Istio

Service mesh旨在解決雲原生應用之間服務拓撲的連線問題。如果你想要構建雲原生應用,那麼就需要Service mesh。Istio是Service mesh中的一個明星專案,在Istio文件中對其有非常全面的介紹:https://istio.io/docs/conce

Hadoop 2.7分散式安裝配置 Error: JAVA_HOME is not set and could not be found.

問題: 如果你明明安裝配置了 JAVA_HOME 卻還是報錯 如果遇到 Error: JAVA_HOME is not set and could not be found. 的錯誤,而你明

HBase 1.2.6 完全分散式叢集安裝部署詳細過程

Apache HBase 是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,是NoSQL資料庫,基於Google Bigtable思想的開源實現,可在廉價的PC Server上搭建大規模結構化儲存叢集,利用Hadoop HDFS作為其檔案儲存系統,利用Hadoo

Hadoop 2.7.0在centos7分散式叢集部署測試

Author: Wingter Wu 1 環境說明 VitualBox 5.0.24 CentOS-7-x86_64-Minimal-1611:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_6

hadoop-2.7.4-翻譯文件-分散式叢集搭建

安裝簡介 安裝Hadoop叢集通常需要在叢集中的所有機器上進行統一安裝,或者通過適合目標作業系統的打包系統進行安裝。 安裝的要點是對不同的節點分配不同的功能。 其他服務(例如Web App Proxy Server和MapReduce作業歷史記錄伺服器)通常根據負載在專用硬體或共享裝置上

hadoop-2.7.4-翻譯文件-叢集部署

準備 JDK。 SSH。 下載hadoop-2.7.4.tar.gz 本地模式 1.tar開hadoop包 $>tar -zxvf hadoop-2.7.4.tar.gz 2.配置環境變數 [etc/environment] PATH=...:had

hadoop 2.7.2 + zookeeper 高可用叢集部署

一.環境說明 虛擬機器:vmware 11 作業系統:Ubuntu 16.04 Hadoop版本:2.7.2 Zookeeper版本:3.4.9 二.節點部署說明 三.Hosts增加配置 sudo gedit /etc/hosts wxzz-pc、wxzz-pc0、

Hadoop-2.7.6雙namenode配置搭建(HA)高可用叢集部署教程

配置雙namenode的目的就是為了防錯,防止一個namenode掛掉資料丟失,具體原理本文不詳細講解,這裡只說明具體的安裝過程。Hadoop HA的搭建是基於Zookeeper的,關於Zookeeper的搭建可以檢視這裡 hadoop、zookeeper、hbase、spa

HadoopHadoop 2.7.6安裝_偽分散式叢集

本篇主要演示在Linux上安裝單節點Hadoop模式,以及偽分散式Hadoop模式。一 安裝環境作業系統:Oracle Linux Server release 6.5;Java版本:java-1.7.0-openjdk-1.7.0.45;Hadoop版本:hadoop-2.

阿里雲伺服器部署分散式hadoop 2.7時,NameNode啟動報Problem binding to [master:9000]問題

今天在阿里雲伺服器上部署hadoop時,master上執行jps時,只有secondarynamenode和jps程序,並無ResourceManager和NameNode的程序,仔細看了一下log,發現錯誤是Prob

Mac通過偽分佈方式部署Hadoop 2.7.2

1. 無密碼登入localhost的設定 1. ssh-keygen -t rsa Press enter for each line 2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 3. chmod

Hadoop 2.7.3 完全分布式部署

sbin oot oop .com body acl border tool user 本次測試環境如下 IP host JDK linux hadop role 172.16.101.55 sht-sgmhadoopnn-01 1.8.0_111

hadoop 2.7.7 安裝(測試環境部署) hadoop2.x部署

hadoop 2.7.7 安裝(測試環境部署) hadoop2.x部署 系統環境(censtos 6.5 ): 172.16.57.97 namenodeyw 172.16.57.98 datanodeyw1 172.16.57.238 datanodeyw2

hadoop-2.7.6 完全分散式的安裝

準備環境           CentOS 7           jdk1.8 (這裡建議使用1.8版本的jdk 連結:https://www.oracle.com/technetwork/ja

windows部署hadoop-2.7.0

        這裡使用自己編譯的hadoop-2.7.0版本部署在windows上,記得幾年前,部署hadoop需要藉助於cygwin,還需要開啟ssh服務,最近發現,原來不需要藉助cygwin,也無需開啟ssh免密登入這些類linux的複雜流程。直接就可以sbin/sta

CentOS 6.5 hadoop 2.7.3 叢集環境搭建

CentOS 6.5 hadoop 2.7.3 叢集環境搭建 所需硬體,軟體要求 使用 virtualbox 構建三臺虛擬機器模擬真實物理環境 作業系統:CentOS6.5 主機列表: master ip: 192.168.3.171 slav

3臺機器配置hadoop-2.7.3叢集

一. 環境介紹 三臺主機,主機名和ip分別為: ubuntu1  10.3.19.171 ubuntu2  10.3.19.172 ubuntu3  10.3.19.173 三臺主機的登入使用者名稱是bigdata,home目錄是/home/bigdata 現在三臺主機上

Hadoop(2.7.3)叢集配置-官方文件

目標 本文描述瞭如何安裝、配置和管理有實際意義的Hadoop叢集,其規模可從幾個節點的小叢集到幾千個節點的超大叢集。如果你希望在單機上安裝Hadoop玩玩,從這裡(Single Node Setup)能找到相關細節。 這份文件不包含更先進話題,比如安

Hadoop-2.7.3叢集搭建中遇到的問題總結

0 前言: 1)Hadoop叢集搭建參照前一篇博文Hadoop叢集安裝配置教程 2)叢集有三個節點:Master、Slave1、Slave2,其中Master只作namenode,其餘兩個從節點做datanode 1 搭建過程中常用Hadoop指令: 1