Hadoop 部署文档

文档中的集群包含 192.168.105.10/11/12 三台机器。三台机器的 hostname 分别设为 ivic10/ivic11/ivic12,其中第一台机器作为 master,后两台作为 slaves。

1 先决条件

在开始安装 Hadoop 之前,请确认集群的每台机器上均已安装 JDK1.8(注意是 SunJDK 而不是 OpenJDK),并且已经配置好密钥登陆(服务器两两之间可以无密码SSH登陆)。

除此之外还需要在三台机器的 /etc/hosts 文件中写入以下内容(需要root权限)

192.168.105.10 ivic10 192.168.105.11 ivic11 192.168.105.12 ivic12

配置好以后,在任意一台机器上可以用 hostname 无密码 SSH 登陆到另外两台机器上

#在ivic10上操作 ssh ivic11 #如果一切正常,应该可以直接登陆到ivic11上 2 下载二进制文件

Hadoop的 release 页面中有数个版本可以选择,因为后续要在 Hadoop 集群上部署其他应用,所以这里选择兼容性最好的 2.7.7 版本。

mkdir ~/bigdata cd ~/bigdata #Apache网站上的镜像太慢,从清华镜像下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz #解压到当前文件夹 tar -xzvf hadoop-2.7.7.tar.gz -C . 3 修改配置文件

首先在 ~/.profile 中添加环境变量

export HADOOP_HOME=http://www.likecs.com/home/ivic/bigdata/hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin

用 source 命令让环境变量立即生效

source ~/.profile

然后切换到 Hadoop 的配置文件目录下,开始修改 Hadoop 的配置文件 cd ~/bigdata/hadoop-2.7.7/etc/hadoop

3.1 core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ivic10:9000/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/tmp/hadoop-2.7.7</value> </property> </configuration>

通过fs.defaultFS指定 NameNode 的 IP 地址和端口号,通过hadoop.tmp.dir指定临时文件存放路径

3.2 hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/ivic/bigdata/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/ivic/bigdata/hdfs/data</value> </property> </configuration>

dfs.replication 指定备份数目为 3,dfs.name.dir 指定 NameNode 的文件存储路径,dfs.data.dir 指定 DataNode 的文件存储路径。

3.3 mapred-site.xml #将mapred-site.xml.template复制一份 cp mapred-site.xml.template mapreduce-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 3.4 yarn.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>ivic10</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be enforced for containers</description> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>4</value> <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description> </property> </configuration>

配置后两项是因为在部署 Flink on Yarn 的过程中出现了 FlinkYarnSession 无法启动的问题,从 StackOverflow 得知应该在此处加上这两项配置,否则虚拟内存占用会超出限制导致 Flink 无法启动。

3.5 slaves ivic11 ivic12 3.6 hadoop-env.sh export JAVA_HOME=http://www.likecs.com/usr/local/jdk1.8.0_201 4 将配置好的 Hadoop 分发到其他节点 #需要先在11/12节点上建立 /homne/ivic/bigdata/ 文件夹 scp -r /home/ivic/bigdata/hadoop-2.7.7 192.168.105.11:/home/ivic/bigdata/hadoop-2.7.7 scp -r /home/ivic/bigdata/hadoop-2.7.7 192.168.105.12:/home/ivic/bigdata/hadoop-2.7.7

然后分别在其他节点上配置环境变量 HADOOP_HOME 和 PATH。

5 启动集群 5.1 格式化 HDFS cd ~/bigdata/hadoop-2.7.7 hdfs namenode -format

注意:此命令只有在第一次启动前需要执行,目的是格式化 NameNode

5.2 启动集群 #启动 HDFS ./sbin/start-dfs.sh #启动 YARN ./sbin/start-yarn.sh #以上两条命令也可以用 ./sbin/start-all.sh 代替 #关闭集群 ./sbin/stop-all.sh

使用 jps 命令查看服务运行情况

#master节点中运行的服务 25928 SecondaryNameNode 25742 NameNode 26387 Jps 26078 ResourceManager #slave节点中运行的服务 24002 NodeManager 23899 DataNode 24179 Jps 6 提交示例任务

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpppfp.html