亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Hadoop大數(shù)據(jù)部署

    Hadoop大數(shù)據(jù)部署

    一. 系統(tǒng)環(huán)境配置:

    1. 關(guān)閉防火墻,selinux

    關(guān)閉防火墻:
    systemctl stop firewalld
    systemctl disable firewalld

    設(shè)置selinux為disable
    # cat /etc/selinux/config
    SELINUX=disabled

    2. 配置ntp時(shí)間服務(wù)器
    # yum -y install ntpdate
    # crontab -l
    */5 * * * * /usr/sbin/ntpdate 192.168.1.1 >/dev/null 2>&1

    將IP地址換成可用的時(shí)間服務(wù)器IP

    3. 修改系統(tǒng)限制
    # cat /etc/security/limits.conf
    * soft nproc  100000
    * hard nproc  100000
    * soft nofile 102400
    * hard nofile 102400
    hadoop soft nproc  100000
    hadoop hard nproc  100000
    hadoop soft nofile 102400
    hadoop hard nofile 102400

    4. 創(chuàng)建hadoop用戶(hù)
    groupadd -g 1002 hadoop
    useradd -u 1002 -g hadoop hadoop

    5. 配置hosts
    [root@hadoop2 ~]# cat /etc/hosts
    127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.24.43 hadoop1
    192.168.24.216 hadoop2
    192.168.24.7 hadoop3

    6. 分發(fā)公鑰
    # su – hadoop
    $ ssh-keygen
    $ ssh-copy-id hadoop@hadoop1
    $ ssh-copy-id hadoop@hadoop2
    $ ssh-copy-id hadoop@hadoop3

    保證某一個(gè)節(jié)點(diǎn)上都有所有的節(jié)點(diǎn)的公鑰。

    7. 安裝jdk
    # yum -y install jdk-8u171-linux-x64.rpm
    # java -version
    java 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 是一門(mén)多范式(multi-paradigm)的編程語(yǔ)言,設(shè)計(jì)初衷是要集成面向?qū)ο缶幊毯秃瘮?shù)式編程的各種特性。Scala 運(yùn)行在Java虛擬機(jī)上,并兼容現(xiàn)有的Java程序。Scala 源代碼被編譯成Java字節(jié)碼,所以它可以運(yùn)行于JVM之上,并可以調(diào)用現(xiàn)有的Java類(lèi)庫(kù)。
    cd /app
    tar -zxvf /home/Software/scala-2.11.12.tgz  -C .
     mv scala-2.11.12 scala

    9. 安裝snappy

    Snappy是一個(gè)壓縮/解壓縮庫(kù)。它的目標(biāo)不是最大壓縮,也不與任何其他壓縮庫(kù)兼容; 相反,它的目標(biāo)是非常高的速度和合理的壓縮。例如,與最快的zlib模式相比,對(duì)于大多數(shù)輸入,Snappy的速度要快一個(gè)數(shù)量級(jí),但生成的壓縮文件大小要高20%到100%。
    yum -y install automake autoconf libtool openssl openssl-devel gcc gcc-c++
    tar -zxvf  snappy-1.1.3.tar.gz
    cd snappy-1.1.3
    ./autogen.sh
    ./configure
    make & make install

    10. 安裝lzo以及l(fā)zop

    LZO 是一個(gè)用 ANSI C 語(yǔ)言編寫(xiě)的無(wú)損壓縮庫(kù)。他能夠提供非??焖俚膲嚎s和解壓功能。解壓并不需要內(nèi)存的支持。即使使用非常大的壓縮比例進(jìn)行緩慢壓縮出的數(shù)據(jù),依然能夠非??焖俚慕鈮?。LZO遵循GNU 的GPL 使用許可。
    LZO 非常適合進(jìn)行數(shù)據(jù)的實(shí)時(shí)壓縮解壓處理,這就是說(shuō)他更關(guān)心操作速度,而不是壓縮比例。
    LZO 使用 ANSI C 語(yǔ)言編寫(xiě),并且壓縮后的數(shù)據(jù)也被設(shè)計(jì)為可以跨平臺(tái)使用的格式。
    tar -xvf lzo-2.06.tar.gz
    cd lzo-2.06
    ./configure –enable-shared
    make && make install

    lzop是使用lzo庫(kù)寫(xiě)的一個(gè)程序,通過(guò)shell命令直接可以壓縮、解壓縮文件。
    tar -xvf lzop-1.03.tar.gz
    cd lzop-1.03
    ./configure
    make && make install

    二. Zookeeper 集群

    Zookeeper有三種安裝模式,單機(jī)模式:?jiǎn)喂?jié)點(diǎn)安裝standalones模式;偽集群模式:在一臺(tái)主機(jī)上啟動(dòng)多個(gè)zookeeper的實(shí)例;集群模式:需要奇數(shù)臺(tái)服務(wù)器,至少3臺(tái),每臺(tái)啟動(dòng)一個(gè)zookeeper實(shí)例。

    1. 解壓安裝Zookeepr
    su – hadoop
    mkdir /app
    tar -zxvf zookeeper-3.4.10.tar.gz -C /app/
    cd /app
    sudo mv zookeeper-3.4.10 zookeeper
    mkdir data logs

    2. 修改zoo.cfg文件
    [hadoop@hadoop1 ~]$ vim /app/zookeeper/conf/zoo.cfg
    tickTime=2000
    initLimit=20
    syncLimit=10
    dataDir=/app/zookeeper/data
    dataLogDir=/app/zookeeper/logs
    clientPort=2181
    server.1=hadoop1:2888:3888
    server.2=hadoop2:2888:3888
    server.3=hadoop3:2888:3888

    initLimit:初始化鏈接時(shí),follower和leader之間的最長(zhǎng)心跳時(shí)間,20*2000即40秒
    syncLimit:leader和follower之間發(fā)送消息, 請(qǐng)求和應(yīng)答的最大時(shí)間長(zhǎng)度,即20秒
    server.X=A:B:C 其中X是一個(gè)數(shù)字, 表示這是第幾號(hào)server. A是該server所在的IP地址. B:配置該server和集群中的leader交換消息所使用的端口. C:配置選舉leader時(shí)所使用的端口

    3. 修改myid

    在/app/zookeeper/data/下增加一個(gè)myid文件,把前面配置文件里server.X中的X寫(xiě)入里面。
    [hadoop@hadoop1 ~]$ cat /app/zookeeper/data/myid
    1

    4. 修改zookeeper的日志輸出路徑:

    修改/app/zookeeper/bin/zkEnv.sh下的ZOO_LOG_DIR改為配置文件里寫(xiě)的路徑/app/zookeeper/logs。
    if [ “x${ZOO_LOG_DIR}” = “x” ]
    then
        ZOO_LOG_DIR=”/app/zookeeper/logs”
    fi

    5. 啟動(dòng)并調(diào)試zookeeper

    啟動(dòng):

    $ zkServer.sh start

    查看狀態(tài):

    $ zkServer.sh status
    [hadoop@hadoop1 ~]$ zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /app/zookeeper/bin/../conf/zoo.cfg
    Mode: follower

    二. Hadoop HA安裝

    hadoop分為1.0和2.0兩個(gè)大版本,具體的區(qū)別自行查找。本文主要使用的是hadoop2.0。hadoop2.0的生態(tài)系統(tǒng)主要包括以下核心項(xiàng)目:HDFS YARN MapReduce。

    1. 解壓安裝
    sudo tar -zxvf hadoop-2.9.1.tar.gz -C /app/
    $ pwd
    /app/hadoop/etc/hadoop
    $ ls
    capacity-scheduler.xml      httpfs-env.sh            mapred-env.sh
    configuration.xsl          httpfs-log4j.properties  mapred-queues.xml.template
    container-executor.cfg      httpfs-signature.secret  mapred-site.xml
    core-site.xml              httpfs-site.xml          mapred-site.xml.template
    hadoop-env.cmd              kms-acls.xml            slaves
    hadoop-env.sh              kms-env.sh              ssl-client.xml.example
    hadoop-metrics2.properties  kms-log4j.properties    ssl-server.xml.example
    hadoop-metrics.properties  kms-site.xml            yarn-env.cmd
    hadoop-policy.xml          log4j.properties        yarn-env.sh
    hdfs-site.xml              mapred-env.cmd          yarn-site.xml

    2. 修改hadoop的環(huán)境變量(hadoop-env.sh)
    export HADOOP_HEAPSIZE=16196
    export JAVA_HOME=/usr/java/1.8.0_171
    export JAVA_LIBRARY_PATH=/app/hadoop-2.9.1/lib/native
    export HADOOP_OPTS=”-Djava.library.path=/app/hadoop-2.9.0/lib/native”
    注意:如果在CentOS 6環(huán)境中變量名后面的路徑必須使用雙引號(hào),否則后面啟動(dòng)的時(shí)候報(bào)錯(cuò)找不到該變量。

    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環(huán)境,添加環(huán)境變量

    在yarn-env.sh文件后面設(shè)置yarn heap大小。追加下面這句
    YARN_HEAPSIZE=4000

    添加環(huán)境變量:
    $ tail .bash_profile
    export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
    export HADOOP_HOME=/app/hadoop
    export ZOOKPEER_HOME=/app/zookeeper
    export LIBRAY_PATH=$HADOOP_HOME/lib/native
    export SCALA_HOME=/app/scala
    export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKPEER_HOME/bin:$SCALA_HOME/bin

    7 集群的啟動(dòng)與監(jiān)控

    安裝psmisc,否則不能實(shí)現(xiàn)自動(dòng)切換:
    yum -y install psmisc

    啟動(dòng)集群:
    # 1. 在所有zookeeper節(jié)點(diǎn)上執(zhí)行
    zkServer.sh start
    # 1.1 在leader上執(zhí)行,用zookeeper進(jìn)行初始化,這將會(huì)創(chuàng)建一個(gè)znode在zookeeper上內(nèi)部實(shí)現(xiàn)自動(dòng)備援系統(tǒng)。
    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. 自動(dòng)啟動(dòng)hdfs服務(wù)
    start-dfs.sh
    # 2.1 注意:如何你想要手動(dòng)的管理你的集群服務(wù),你必須通過(guò)zkfc deamon來(lái)啟動(dòng)你的namenode,命令如下:
    hadoop-daemon.sh –script hdfs start zkfc
    # 3. 在hadoop啟動(dòng)Resourcemanager
    start-yarn.sh
    # 4. 在另一個(gè)節(jié)點(diǎn)上啟動(dòng)standby resourcemanager
    yarn-daemon.sh start resourcemanager

    # 其他命令:
    # 啟停namenode
    hadoop-daemon.sh start/stop namenode
    # 啟停datanode
    hadoop-daemon.sh start/stop namenode

    查看狀態(tài):
    # 查看各個(gè)節(jié)點(diǎn)
    $ jps
    2049 NameNode
    2611 DFSZKFailoverController
    3465 ResourceManager
    1727 QuorumPeerMain
    2159 DataNode
    2415 JournalNode
    3199 NodeManager
    3695 Jps
    # 查看HDFS集群namedate節(jié)點(diǎn)的狀態(tài)
    hdfs haadmin -getAllServiceState
    # 查看nn1/nn2的狀態(tài)
    hdfs haadmin -getServiceState nn1
    hdfs haadmin -getServiceState nn2
    # 查看resourcemanager集群的主備狀態(tài)
    $ yarn rmadmin -getAllServiceState
    hadoop1:8033                                      active   
    hadoop2:8033                                      standby 
    # 查看resourcemanager的集群各個(gè)節(jié)點(diǎn)的狀態(tài)
    $ yarn rmadmin -getServiceState rm1
    active
    $ yarn rmadmin -getServiceState rm2
    standby

    hadoop集群監(jiān)控相關(guān)的端口:
    NameNode: http://namenode_host:50070
    ResourceManager: http://resourcemanager_host:8088
    MapReduce JobHistory Server: http://jobistoryserver_host:19888

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)