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伪集群已经搭建完毕
1 在yarn上运行flink
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任务运行.