真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

從零開始構(gòu)建Hadoop集群-創(chuàng)新互聯(lián)

一、簡介

當(dāng)今只要談到大數(shù)據(jù),自然想到Hadoop,以前Hadoop還只是個(gè)軟件、系統(tǒng),而如今更多代表的是一個(gè)大數(shù)據(jù)生態(tài)圈。

本文談的 Hadoop 特指一個(gè)軟件,它是 Apache 基金會(huì)的頂級(jí)項(xiàng)目之一,它本身主要解決了大數(shù)據(jù)領(lǐng)域的兩大核心問題,如何存儲(chǔ)(hdfs)、如何計(jì)算(mapreduce)。

官方文檔:http://hadoop.apache.org

閑言少敘,下面進(jìn)入正題。

二、部署環(huán)境的準(zhǔn)備工作

1、服務(wù)器

本次選擇使用4臺(tái)物理機(jī)來搭建Hadoop集群,配置如下

Master			CPU(24核)	MEM(48G)	DISK(2T*1 -> RAID10)
Slave01			CPU(24核)	MEM(12G)	DISK(1T*4)
Slave02			CPU(12核)	MEM(24G)	DISK(1T*4)
Slave03			CPU(24核)	MEM(16G)	DISK(1T*4)

# 還是挺慘的~

2、系統(tǒng)選擇的是 CentOS 6.9 x86_64

三、系統(tǒng)初始化

1、配置主機(jī)名、停用多余的服務(wù)、關(guān)閉SELinux、Iptables

2、修改大打開文件描述符

shell > tail -4 /etc/security/limits.conf 

* - nofile 65536

# End of file

3、關(guān)閉透明大頁

shell > tail -1 /etc/rc.local 
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

4、創(chuàng)建 Unix 用戶賬號(hào)

shell > useradd hadoop | echo hadoop | passwd --stdin hadoop

# 所有服務(wù)器都需要?jiǎng)?chuàng)建

5、格式化硬盤

shell > mkdir /dfs && chown -R hadoop.hadoop /dfs

# Master 執(zhí)行

shell > mkdir -p /dfs/{disk1,disk2,disk3}
shell > mkfs.ext4 /dev/sdb、/dev/sdc、/dev/sdd

shell > tail -3 /etc/fstab 
/dev/sdb                /dfs/disk1              ext4    defaults,noatime 0 0
/dev/sdc                /dfs/disk2              ext4    defaults,noatime 0 0
/dev/sdd                /dfs/disk3              ext4    defaults,noatime 0 0

shell > mount -a

shell > chown -R hadoop.hadoop /dfs

# 所有 Slave 都需要執(zhí)行

6、時(shí)間同步

shell > crontab -l
0 */2 * * * /usr/sbin/ntpdate us.pool.ntp.org | /sbin/hwclock -w > /dev/null

# 時(shí)間同步挺重要的, 上次遇到過由于時(shí)間不同步導(dǎo)致 HBase 的 RegionServer 無法啟動(dòng)

# init 6

四、搭建 Hadoop 集群

1、配置用戶免密登陸

root shell > ssh-keygen			# 生成密鑰
root shell > ssh-copy-id -i ~/.ssh/id_rsa.pub slave01
root shell > ssh-copy-id -i ~/.ssh/id_rsa.pub slave02
root shell > ssh-copy-id -i ~/.ssh/id_rsa.pub slave03

hadoop shell > ssh-keygen		# 生成密鑰
hadoop shell > ssh-copy-id -i ~/.ssh/id_rsa.pub master
hadoop shell > ssh-copy-id -i ~/.ssh/id_rsa.pub slave01
hadoop shell > ssh-copy-id -i ~/.ssh/id_rsa.pub slave02
hadoop shell > ssh-copy-id -i ~/.ssh/id_rsa.pub slave03

# Hadoop 控制腳本(不是 Hadoop 守護(hù)進(jìn)程)依賴 SSH 來管理服務(wù)的啟停。
# Tips: ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@slave01

2、安裝 jdk

shell > rpm -ivh jdk-8u161-linux-x64.rpm

shell > ansible slave -m shell -a 'rpm -ivh jdk-8u161-linux-x64.rpm'

shell > vim /etc/profile

export JAVA_HOME=/usr/java/default

shell > source /etc/profile

shell > java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

# jdk 是需要所有機(jī)器都安裝的, 且配置環(huán)境變量

3、下載、安裝 Hadoop

shell > wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.9.1/hadoop-2.9.1.tar.gz

shell > tar xf hadoop-2.9.1.tar.gz -C /usr/local

shell > chown -R hadoop.hadoop /usr/local/hadoop-2.9.1

shell > tail -2 /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.9.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

shell > source /etc/profile

4、配置 Hadoop

1> hadoop-env.sh 一個(gè)全局環(huán)境變量控制文件, 該文件中的值會(huì)被 yarn-env.sh、mapred-env.sh 覆蓋

shell > vim /usr/local/hadoop-2.9.1/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/default		# JAVA_HOME

export HADOOP_HEAPSIZE=1000				# 內(nèi)存堆大小

# Hadoop 默認(rèn)為每個(gè)守護(hù)進(jìn)程分配1000MB內(nèi)存, 資料顯示, 以 NameNode 進(jìn)程來說, 保守計(jì)算每100萬個(gè)數(shù)據(jù)塊需要1000MB內(nèi)存,
# 我們集群為3個(gè)節(jié)點(diǎn), 每個(gè)節(jié)點(diǎn)有3T硬盤, 數(shù)據(jù)塊大小為256MB, 每個(gè)數(shù)據(jù)塊有3個(gè)復(fù)本, 大概有12000個(gè)數(shù)據(jù)塊 -> 3*3000000MB/(256MB*3), 默認(rèn)值足夠了。
# Tips: 可以單獨(dú)為每個(gè)進(jìn)程設(shè)置不同的內(nèi)存大小

2> core-site.xml

shell > vim /usr/local/hadoop-2.9.1/etc/hadoop/core-site.xml



    
      fs.defaultFS
      hdfs://192.168.10.50
    

    
      hadoop.tmp.dir
      file:///dfs/tmp/hadoop-${user.name}
    

    
      io.file.buffer.size
      131072
    

    
      fs.trash.interval
      1440
    



# 模板文件:HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml

3> hdfs-site.xml

shell > vim /usr/local/hadoop-2.9.1/etc/hadoop/hdfs-site.xml



    
      dfs.blocksize
      134217728
    

    
      dfs.replication
      3
    

    
      dfs.namenode.handler.count
      100
    

    
      dfs.namenode.name.dir
      file:///dfs/name
    

    
      dfs.datanode.data.dir
      file:///dfs/disk1/data,/dfs/disk2/data,/dfs/disk3/data
    

    
      dfs.namenode.checkpoint.dir
      file:///dfs/namesecondary
    



# 模板文件:HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

4> yarn-site.xml

shell > vim /usr/local/hadoop-2.9.1/etc/hadoop/yarn-site.xml



    
      yarn.resourcemanager.hostname
      192.168.10.50
    

    
      yarn.nodemanager.local-dirs
      file:///dfs/disk1/nm-local-dir,/dfs/disk2/nm-local-dir,/dfs/disk3/nm-local-dir
    

    
      yarn.nodemanager.aux-services
      mapreduce_shuffle
    

    
      yarn.nodemanager.resource.memory-mb
      10240
    

    
      yarn.nodemanager.resource.cpu-vcores
      10
    



# 模板文件:HADOOP_HOME/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

5> mapred-site.xml

shell > vim /usr/local/hadoop-2.9.1/etc/hadoop/mapred-site.xml



    
      mapreduce.framework.name
      yarn
    

    
      mapreduce.map.memory.mb
      2048
    

    
      mapreduce.reduce.memory.mb
      2048
    

    
      mapred.child.java.opts
      -Xmx1024m
    



# 模板文件:HADOOP_HOME/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

6> slaves

shell > tail /usr/local/hadoop-2.9.1/etc/hadoop/slaves 
192.168.10.51
192.168.10.52
192.168.10.53

5、同步配置文件

shell > ansible slave -m synchronize -a 'src=/usr/local/hadoop-2.9.1 dest=/usr/local/'

6、啟動(dòng) Hadoop

shell > su - hadoop -c "hdfs namenode -format"	# 格式化文件系統(tǒng)

18/06/03 16:24:39 INFO common.Storage: Storage directory /dfs/name has been successfully formatted.

# 表示成功

shell > su - hadoop
hadoop shell > start-dfs.sh		# 啟動(dòng) hdfs
hadoop shell > start-yarn.sh	# 啟動(dòng) yarn

hadoop shell > jps				# Master 節(jié)點(diǎn)服務(wù)啟動(dòng)成功
14032 ResourceManager
13745 SecondaryNameNode
14364 Jps
13406 NameNode

hadoop shell > ansible slave -m shell -a 'jps'	# Slave 節(jié)點(diǎn)服務(wù)啟動(dòng)成功
slave02 | SUCCESS | rc=0 >>
4324 DataNode
4936 Jps
4572 NodeManager

slave01 | SUCCESS | rc=0 >>
4807 DataNode
5065 NodeManager
5455 Jps

slave03 | SUCCESS | rc=0 >>
4720 DataNode
5365 Jps
4975 NodeManager

五、附加

1、hdfs dfs -ls		# 列出當(dāng)前用戶家目錄

18/06/03 17:16:30 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: `.': No such file or directory

解決方法:

1> 根據(jù)你 hadoop 的版本,來 http://dl.bintray.com/sequenceiq/sequenceiq-bin 下載一個(gè)對(duì)應(yīng)版本的 hadoop-native-64 包

2> 解壓壓縮包,覆蓋到 HADOOP_HOME/lib/native/ 目錄下即可!

shell > tar xf hadoop-native-64-2.7.0.tar -C /usr/local/hadoop-2.9.1/lib/native/

hadoop shell > hdfs dfs -ls

ls: `.': No such file or directory		# 創(chuàng)建用戶家目錄即可 hdfs -mkdir -p /user/hadoop

# 如果沒有對(duì)應(yīng)版本就下載個(gè)最接近的也行,我的環(huán)境 hadoop 2.9.1,下載 2.7.0 沒有問題。

在東遼等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,東遼網(wǎng)站建設(shè)費(fèi)用合理。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站標(biāo)題:從零開始構(gòu)建Hadoop集群-創(chuàng)新互聯(lián)
本文鏈接:http://weahome.cn/article/dhdpjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部