Hadoop大資料部署

來源:互聯網
上載者:User

標籤:tin   3.4   library   解壓   特性   address   sys   ESS   切換   

Hadoop大資料部署一. 系統內容配置:1. 關閉防火牆,selinux

關閉防火牆:

systemctl stop firewalldsystemctl disable firewalld

設定selinux為disable

# cat /etc/selinux/config SELINUX=disabled
2. 配置ntp時間伺服器
# yum -y install ntpdate# crontab -l*/5 * * * * /usr/sbin/ntpdate 192.168.1.1 >/dev/null 2>&1

將IP地址換成可用的時間伺服器IP

3. 修改系統限制
# cat /etc/security/limits.conf* soft nproc  100000* hard nproc  100000* soft nofile 102400* hard nofile 102400hadoop soft nproc  100000hadoop hard nproc  100000hadoop soft nofile 102400hadoop hard nofile 102400
4. 建立hadoop使用者
groupadd -g 1002 hadoopuseradd -u 1002 -g hadoop hadoop
5. 配置hosts
[[email protected] ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.24.43 hadoop1192.168.24.216 hadoop2192.168.24.7 hadoop3
6. 分發公開金鑰
# su - hadoop$ ssh-keygen$ ssh-copy-id [email protected]$ ssh-copy-id [email protected]$ ssh-copy-id [email protected]

保證某一個節點上都有所有的節點的公開金鑰。

7. 安裝jdk
# yum -y install jdk-8u171-linux-x64.rpm# java -versionjava version "1.8.0_171"Java(TM) SE Runtime Environment (build 1.8.0_171-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
8. 安裝SCALA

Scala 是一門多範式(multi-paradigm)的程式設計語言,設計初衷是要整合物件導向編程和函數式編程的各種特性。Scala 運行在Java虛擬機器上,併兼容現有的Java程式。Scala 原始碼被編譯成Java位元組碼,所以它可以運行於JVM之上,並可以調用現有的Java類庫。

cd /apptar -zxvf /home/Software/scala-2.11.12.tgz  -C . mv scala-2.11.12 scala
9. 安裝snappy

Snappy是一個壓縮/解壓縮庫。它的目標不是最大壓縮,也不與任何其他壓縮庫相容; 相反,它的目標是非常高的速度和合理的壓縮。例如,與最快的zlib模式相比,對於大多數輸入,Snappy的速度要快一個數量級,但產生的壓縮檔大小要高20%到100%。

yum -y install automake autoconf libtool openssl openssl-devel gcc gcc-c++tar -zxvf  snappy-1.1.3.tar.gzcd snappy-1.1.3./autogen.sh./configuremake & make install
10. 安裝lzo以及lzop

LZO 是一個用 ANSI C 語言編寫的無損壓縮庫。他能夠提供非常快速的壓縮和解壓功能。解壓並不需要記憶體的支援。即使使用非常大的壓縮比例進行緩慢壓縮出的資料,依然能夠非常快速的解壓。LZO遵循GNU 的GPL 使用許可。
LZO 非常適合進行資料的即時壓縮解壓處理,這就是說他更關心操作速度,而不是壓縮比例。
LZO 使用 ANSI C 語言編寫,並且壓縮後的資料也被設計為可以跨平台使用的格式。

tar -xvf lzo-2.06.tar.gzcd lzo-2.06./configure --enable-sharedmake && make install

lzop是使用lzo庫寫的一個程式,通過shell命令直接可以壓縮、解壓縮檔案。

tar -xvf lzop-1.03.tar.gzcd lzop-1.03./configuremake && make install
二. Zookeeper 叢集

Zookeeper有三種安裝模式,單機模式:單節點安裝standalones模式;偽叢集模式:在一台主機上啟動多個zookeeper的執行個體;叢集模式:需要奇數台伺服器,至少3台,每台啟動一個zookeeper執行個體。

1. 解壓安裝Zookeepr
su - hadoopmkdir /apptar -zxvf zookeeper-3.4.10.tar.gz -C /app/cd /appsudo mv zookeeper-3.4.10 zookeepermkdir data logs
2. 修改zoo.cfg檔案
[[email protected] ~]$ vim /app/zookeeper/conf/zoo.cfg tickTime=2000initLimit=20syncLimit=10dataDir=/app/zookeeper/datadataLogDir=/app/zookeeper/logsclientPort=2181server.1=hadoop1:2888:3888server.2=hadoop2:2888:3888server.3=hadoop3:2888:3888

initLimit:初始化連結時,follower和leader之間的最長心跳時間,20*2000即40秒
syncLimit:leader和follower之間發送訊息, 請求和應答的最大時間長度,即20秒
server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B:配置該server和叢集中的leader交換訊息所使用的連接埠. C:配置選舉leader時所使用的連接埠

3. 修改myid

/app/zookeeper/data/下增加一個myid檔案,把前面設定檔裡server.X中的X寫入裡面。

[[email protected] ~]$ cat /app/zookeeper/data/myid 1
4. 修改zookeeper的日誌輸出路徑:

修改/app/zookeeper/bin/zkEnv.sh下的ZOO_LOG_DIR改為設定檔裡寫的路徑/app/zookeeper/logs

if [ "x${ZOO_LOG_DIR}" = "x" ]then    ZOO_LOG_DIR="/app/zookeeper/logs"fi
5. 啟動並調試zookeeper

啟動:

$ zkServer.sh start

查看狀態:

$ zkServer.sh status

[[email protected] ~]$ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /app/zookeeper/bin/../conf/zoo.cfgMode: follower
二. Hadoop HA安裝

hadoop分為1.0和2.0兩個大版本,具體的區別自行尋找。本文主要使用的是hadoop2.0。hadoop2.0的生態系統主要包括以下核心項目:HDFS YARN MapReduce。

1. 解壓安裝
sudo tar -zxvf hadoop-2.9.1.tar.gz -C /app/$ pwd/app/hadoop/etc/hadoop$ lscapacity-scheduler.xml      httpfs-env.sh            mapred-env.shconfiguration.xsl           httpfs-log4j.properties  mapred-queues.xml.templatecontainer-executor.cfg      httpfs-signature.secret  mapred-site.xmlcore-site.xml               httpfs-site.xml          mapred-site.xml.templatehadoop-env.cmd              kms-acls.xml             slaveshadoop-env.sh               kms-env.sh               ssl-client.xml.examplehadoop-metrics2.properties  kms-log4j.properties     ssl-server.xml.examplehadoop-metrics.properties   kms-site.xml             yarn-env.cmdhadoop-policy.xml           log4j.properties         yarn-env.shhdfs-site.xml               mapred-env.cmd           yarn-site.xml
2. 修改hadoop的環境變數(hadoop-env.sh)
export HADOOP_HEAPSIZE=16196export JAVA_HOME=/usr/java/1.8.0_171export JAVA_LIBRARY_PATH=/app/hadoop-2.9.1/lib/nativeexport HADOOP_OPTS="-Djava.library.path=/app/hadoop-2.9.0/lib/native"注意:如果在Centos 6環境中變數名後面的路徑必須使用雙引號,否則後面啟動的時候報錯找不到該變數。
3. 修改core-site.xml
<configuration><property>  <name>fs.defaultFS</name>  <value>hdfs://myhadoop</value></property><property>   <name>ha.zookeeper.quorum</name>   <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value></property><property>   <name>hadoop.tmp.dir</name>   <value>/app/hadoop/tmp</value></property><property>    <name>io.file.buffer.size</name>    <value>131072</value></property><property>    <name>io.compression.codecs</name>                             <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value></property><property>    <name>io.compression.codec.lzo.class</name>    <value>com.hadoop.compression.lzo.LzoCodec</value></property><property>    <name>hadoop.proxyuser.hadoop.hosts</name>    <value>*</value></property><property>    <name>hadoop.proxyuser.hadoop.groups</name>    <value>*</value></property></configuration>
3. 修改hdfs-site.xml
<configuration><property>  <name>dfs.nameservices</name>  <value>myhadoop</value></property><property>  <name>dfs.ha.namenodes.myhadoop</name>  <value>nn1,nn2</value></property><property>  <name>dfs.namenode.rpc-address.myhadoop.nn1</name>  <value>hadoop1:8020</value></property><property>  <name>dfs.namenode.rpc-address.myhadoop.nn2</name>  <value>hadoop2:8020</value></property><property>  <name>dfs.namenode.http-address.myhadoop.nn1</name>  <value>hadoop1:50070</value></property><property>  <name>dfs.namenode.http-address.mycluster.nn2</name>  <value>hadoop2:50070</value></property><property>  <name>dfs.journalnode.edits.dir</name>  <value>/app/hadoop/qjournal</value></property><property>  <name>dfs.namenode.shared.edits.dir</name>  <value>qjournal://hadoop1:8485;hadoop2:8485;hadoop3:8485/myhadoop</value></property><property>  <name>dfs.client.failover.proxy.provider.myhadoop</name>  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property>   <name>dfs.ha.fencing.methods</name>   <value>sshfence</value></property><property>   <name>dfs.ha.fencing.ssh.private-key-files</name>   <value>/home/hadoop/.ssh/id_rsa</value></property> <property>   <name>dfs.ha.automatic-failover.enabled</name>   <value>true</value> </property><property>    <name>dfs.namenode.name.dir</name>    <value>file:/app/hadoop/dfs/name,file:/hadoop/dfs/name</value></property><property>    <name>dfs.datanode.data.dir</name>    <value>file:/app/hadoop/dfs/data</value></property><property>    <name>dfs.datanode.handler.count</name>    <value>100</value></property><property>    <name>dfs.namenode.handler.count</name>    <value>1024</value></property><property>    <name>dfs.datanode.max.xcievers</name>    <value>8096</value></property></configuration>
3. 修改yarn-site.xml
<configuration><property>  <name>yarn.resourcemanager.ha.enabled</name>  <value>true</value></property><property>  <name>yarn.resourcemanager.cluster-id</name>  <value>cluster1</value></property><property>  <name>yarn.resourcemanager.ha.rm-ids</name>  <value>rm1,rm2</value></property><property>  <name>yarn.resourcemanager.hostname.rm1</name>  <value>hadoop1</value></property><property>  <name>yarn.resourcemanager.hostname.rm2</name>  <value>hadoop2</value></property><property>  <name>yarn.resourcemanager.webapp.address.rm1</name>  <value>hadoop1:8088</value></property><property>  <name>yarn.resourcemanager.webapp.address.rm2</name>  <value>hadoop2:8088</value></property><property>  <name>yarn.resourcemanager.zk-address</name>  <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value></property></configuration>
5. 修改mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property>    <name>mapreduce.jobhistory.address</name>    <value>hadoop1:10020</value></property><property>    <name>mapreduce.jobhistory.webapp.address</name>    <value>hadoop1:19888</value></property><property>    <name>mapreduce.job.tracker</name>    <value>hdfs://hadoop1:8021</value></property><property>    <name>mapreduce.reduce.shuffle.parallelcopies</name>    <value>50</value></property><property>    <name>mapreduce.map.java.opts</name>    <value>-Xmx4096M</value></property><property>    <name>mapreduce.reduce.java.opts</name>    <value>-Xmx8192M</value></property><property>    <name>mapreduce.map.memory.mb</name>    <value>4096</value></property><property>    <name>mapreduce.reduce.memory.mb</name>    <value>8192</value></property><property>    <name>mapreduce.map.output.compress</name>    <value>true</value></property><property>    <name>mapred.child.env</name>    <value>JAVA_LIBRARY_PATH=/app/hadoop-2.9.1/lib/native</value></property><property>    <name>mapreduce.map.output.compress.codec</name>    <value>com.hadoop.compression.lzo.LzoCodec</value></property><property>    <name>mapreduce.task.io.sort.mb</name>    <value>512</value></property><property>    <name>mapreduce.task.io.sort.factor</name>    <value>100</value></property><property>    <name>mapred.reduce.tasks</name>    <value>4</value></property><property>    <name>mapred.map.tasks</name>    <value>20</value></property><property>     <name>mapred.child.java.opts</name>     <value>-Xmx4096m</value> </property><property>     <name>mapreduce.reduce.shuffle.memory.limit.percent</name>     <value>0.1</value></property><property>     <name>mapred.job.shuffle.input.buffer.percent</name>     <value>0.6</value></property></configuration>
6. 修改yarn-env.sh環境,添加環境變數

在yarn-env.sh檔案後面設定yarn heap大小。追加下面這句
YARN_HEAPSIZE=4000

添加環境變數:

$ tail .bash_profileexport JAVA_HOME=/usr/java/jdk1.8.0_171-amd64export HADOOP_HOME=/app/hadoopexport ZOOKPEER_HOME=/app/zookeeperexport LIBRAY_PATH=$HADOOP_HOME/lib/nativeexport SCALA_HOME=/app/scalaexport PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKPEER_HOME/bin:$SCALA_HOME/bin
7 叢集的啟動與監控

安裝psmisc,否則不能實現自動切換:

yum -y install psmisc

啟動叢集:

# 1. 在所有zookeeper節點上執行zkServer.sh start# 1.1 在leader上執行,用zookeeper進行初始化,這將會建立一個znode在zookeeper上內部實現自動備援系統。hdfs zkfc -formatZK# 1.2 If you are setting up a fresh HDFS cluster, you should first run the format command,on one of NameNodes.hdfs namenode -format# 2. 自動啟動hdfs服務start-dfs.sh# 2.1 注意:如何你想要手動的管理你的叢集服務,你必須通過zkfc deamon來啟動你的namenode,命令如下:hadoop-daemon.sh --script hdfs start zkfc# 3. 在hadoop啟動Resourcemanagerstart-yarn.sh# 4. 在另一個節點上啟動standby resourcemanageryarn-daemon.sh start resourcemanager# 其他命令:# 啟停namenodehadoop-daemon.sh start/stop namenode# 啟停datanodehadoop-daemon.sh start/stop namenode

查看狀態:

# 查看各個節點$ jps2049 NameNode2611 DFSZKFailoverController3465 ResourceManager1727 QuorumPeerMain2159 DataNode2415 JournalNode3199 NodeManager3695 Jps# 查看HDFS叢集namedate節點的狀態hdfs haadmin -getAllServiceState# 查看nn1/nn2的狀態hdfs haadmin -getServiceState nn1hdfs haadmin -getServiceState nn2# 查看resourcemanager叢集的主備狀態$ yarn rmadmin -getAllServiceState hadoop1:8033                                       active    hadoop2:8033                                       standby   # 查看resourcemanager的叢集各個節點的狀態$ yarn rmadmin -getServiceState rm1active$ yarn rmadmin -getServiceState rm2standby

hadoop叢集監控相關的連接埠:

NameNode: http://namenode_host:50070ResourceManager: http://resourcemanager_host:8088MapReduce JobHistory Server: http://jobistoryserver_host:19888

Hadoop大資料部署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.