yarn上運行flink環境搭建


主要完成hadoop集群搭建和yarn上運行flink

1.搭建hadoop偽集群

主要是搭建hadoop MapReduce(yarn)和HDFS

1.1 下載&配置環境變量

這里下載的hadoop二進制包為 2.7.7,下載后解壓到本地,假設是/usr/hadoop/hadoop-2.7.7


#HADOOP VARIABLES START
export HADOOP_INSTALL=/usr/hadoop/hadoop-2.7.7
export HADOOP_HOME=$HADOOP_INSTALL
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END

1.2 設置ssh

運行命令

ssh localhost

如果出現 “Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.” 類似的錯誤則需要做如下配置

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 如果已經生成了公私鑰對則跳過改步驟

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

$ chmod 0600 ~/.ssh/authorized_keys

1.3 配置hdfs

cd hadoop-2.7.7

vim etc/hadoop/core-site.xml

修改core-site.xml文件內容為

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/hadoop/hadoop-2.7.2/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

vim etc/hadoop/hdfs-site.xml

修改hdfs-site.xml內容為

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/hadoop/hadoop-2.7.2/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/hadoop/hadoop-2.7.2/tmp/dfs/data</value>
    </property>
</configuration>

注意: 官網的配置只配置了fs.defaultFS和dfs.replication,這樣便可以啟動起來,但是若沒有配置hadoop.tmp.dir參數,則默認使用的臨時目錄為 /tmp/hadoo-hadoop,而這個目錄在重啟時有可能被系統清理掉,導致必須重新執行format才行。

vim etc/hadoop/hadoop-env.sh

需要顯示的聲明JAVA_HOME, 即使環境變量里已經有了JAVA_HOME。否則會報錯:JAVA_HOME is not set and could not be found

    ## 修改此處為jdk的home目錄
    export JAVA_HOME=/opt/jdk/jdk1.8

1.4 格式化和啟動hdfs

$ bin/hdfs namenode -format

$ sbin/start-dfs.sh

成功啟動后可以通過 http://localhost:50070/ 訪問hdfs web頁面。使用jps查看進程可以看到DataNode、NameNode、SecondaryNameNode 三個進程,如果沒有看到NameNode,可以排除下是不是端口有沖突,然后修復core-site.xml中fs.defaultFS配置的端口號重試下。

1.4 配置yarn

vim etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

vim etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

啟動yarn

$ sbin/start-yarn.sh

啟動后可以通過 http://localhost:8088/ 訪問ResourceManager

到此hadoop偽集群已經搭建完畢

flink要下載和hadoop版本對應的flink版本,否則會出現錯誤, 這里我們下載 Apache Flink 1.7.2 with Hadoop® 2.7 for Scala 2.11。下載后解壓為flink-1.7.2。直接運行如下命令即可:

$ flink-1.7.2/bin/flink run -m yarn-cluster -yn 2 ../my-flink-project-0.1.jar

其中yarn-cluster表示在yarn上運行flink集群, my-flink-project-0.1.jar是自己寫的flink程序。

提交后可以通過ResourceManager http://localhost:8088/ 查看yarn任務運行.

3 參考

  1. http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
  2. https://blog.csdn.net/Evankaka/article/details/51612437


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM