最近在弄hadoop方面的东西,需要搭建全分布环境。记录一下搭建步骤,以免下次忘了。
首先自己电脑上需要已经安装了vmware的虚拟机安装环境,还有相应的linux系统安装镜像文件。
第一步新建虚拟机:
自己在本地电脑上新建文件夹用于存放新建的虚拟机,例如本机E盘的vms中新建bigdata115文件夹,存放bigdata115这台需要新建的虚拟机。
可以通过文件新建虚拟机,或右键点击左侧空白处点击新建虚拟机。
Xshell
一次回话关闭防火墙:systemctl stop firewalld.service;
永久关闭防火墙:systemctl disable firewalld.service
查询防火墙状态:systemctl status firewalld.service
安装linux系统的JDK;
使用tar -zxvf 相应目录下的jdk架包 -C 指定解压的目录
修改当前用户目录下的.bash_profile文件,配置linux的JAVA_HOME环境变量,修改PATH环境变量。最后通过source .bash_profile这个文件使修改生效。
修改linux系统根目录下的/etc/hosts文件修改主机名,注意
使用rpm -ivh tree-1.6.0-10.el7.x86_64.rpm命令安装tree命令,使用tree命令查看树形目录结构;
到安装包路径下,使用tar -zxvf hadoop-2.7.3.jar.gz -C ~/training/
解压安装hadoop,安装之后修改当前用户的~/.bash_profile文件,修改之后使用source ~/.bash_profile使修改生效
Hadoop一般是三种安装模式:
1.本地模式:只要安装上hadoop就好了,然后利用里面的程序运行linux系统上的本地文件,修改hadoop的etc目录下的配置文件。进入到hadooop的share目录下的mapreduce下,执行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /root/temp/input/data.txt /root/temp/output/wc
本地模式的配置
参数文件 | 配置参数 | 参考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
2.伪分布模式:就是一台电脑上有了hadoop的所有功能。
伪分布模式的配置
参数文件 | 配置参数 | 参考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
hdfs-site.xml | dfs.replication | 1 |
dfs.permissions | false | |
core-site.xml | fs.defaultFS | hdfs://<hostname>:9000 |
hadoop.tmp.dir | /root/training/hadoop-2.7.3/tmp | |
mapred-site.xml | mapreduce.framework.name | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | <hostname> |
yarn.nodemanager.aux-services | mapreduce_shuffle | |
这些配置文件均在etc的hadoop目录下/root/training/hadoop-2.7.3/etc/Hadoop 1.首先在linux系统的.bash_profile(~/.bash_profile)文件中配置hadoop_home目录 JAVA_HOME=/root/training/jdk1.8.0_144 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH HADOOP_HOME=/root/training/hadoop-2.7.3 export HADOOP_HOME PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export PATH 2.到/root/training/hadoop-2.7.3/etc/Hadoop目录下,修改hadoop-env.sh文件第25行 export JAVA_HOME=/root/training/jdk1.8.0_144 3.修改hdfs-site.xml文件 <!--配置数据块的冗余度,默认值是3--> <!--原则是冗余度跟数据节点个数保持一致,最大不要超过3--> <property> <name>dfs.relication</name> <value>1</value> </property> <!--是否开启HDFS的权限检查,默认是true--> <!--默认是开启,使用默认值,后面想关闭可以设置为false--> <!-- <property> <name>dfs.permissions</name> <value>false</value> </property> --> 4.修改core-site.xml文件 <!--配置HDFS主节点的地址,就是NameNode地址--> <!--9000是RPC的通信的端口--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata111:9000</value> </property> <!--HDFS数据块和元信息保存在操作系统的目录位置--> <!--默认是Linux的temp目录,一定要修改--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property> 5.修改mapred-site.xml文件,etc的hadoop目录下没有直接这个文件,需要通过mv mapred-site.xml.template mamapred-site.xml这个命令来生成。 <configuration> <!--MR程序运行的容器或框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 6.修改yarn-site.xml文件 <configuration> <!-- Site specific YARN configuration properties --> <!--配置yarn主节点的位置--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata111</value> </property> <!--NodeManager执行MR任务的方式是Shuffle洗牌--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 7.需要格式化namenode这个节点, hdfs namenode –format 当看到Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.这句就表示格式化成功. 8.最后使用start-all.sh命令脚本启动hadoop,需要输入4次密码,启动之后使用jps命令查看启动情况。 9.使用浏览器打开hdfs及yarn的访问主页: 使用stop-all.sh命令关闭Hadoop服务。 10.在为关闭服务前,使用 hdfs dfs -mkdir /input hdfs dfs -put data.txt /input hdfs dfs -ls /input |
3.全分布模式:这个就需要起码三台电脑,一台用于安装hadoop的namenode及secondNameNode.以及yarn容器的resourceManage.l;另外两台就主要是装datanode及nodemanage.三台设置免密码登入:
进入当前用户目录下:使用ssh-keygen -i rsa命令生成密钥对
通过ssh-copy-id -i .ssh/id_rsa.pub root@bigdata11*拷贝公钥给指定的电脑。
验证免密码登入通过没有。
其实这三种模式主要还是配置的不同,也就是hadoop目录下的etc配置文件配置不同:具体如下。
全分布模式的配置
参数文件 | 配置参数 | 参考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
hdfs-site.xml | dfs.replication | 2 |
dfs.permissions | false | |
core-site.xml | fs.defaultFS | hdfs://<hostname>:9000 |
hadoop.tmp.dir | /root/training/hadoop-2.7.3/tmp | |
mapred-site.xml | mapreduce.framework.name | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | <hostname> |
yarn.nodemanager.aux-services | mapreduce_shuffle | |
slaves | DataNode的地址 | 从节点1 从节点2 |
全分布模式于伪分布模式的配置差不多,主要就一个slaves 文件的配置确定干活的节点,其他几个配置文件制定主节点的主机配置。通过scp -r hadoop-2.7.3/ root@bigdata114:/root/training命令将hadoop网络拷贝到另外一台电脑上。