通过前面https://www.bilibili.com/video/av31184748/的课程,我们已经配好了jdk、hosts、免密登陆等。
下面我们来进行hadoop集群的安装与部署
注:文章中的qipao请修改为自己的主机名或者ip地址
1.1首先我们去官网下载hadoop
下载好了,就是它
1.2上传hadoop
下面我们用winSCP或者mobaxterm把hadoop传输到一台虚拟机上的/usr/local/目录下,用软件连接后,选到/usr/local/目录拖进去就可以了
ok,拖进来了
1.3解压hadoop并配置环境变量
下面我们用Xshell或者mobaxterm连接到传好hadoop压缩包的那台虚拟机。
切换到/usr/local目录
执行tar -zxvf hadoop-2.8.3.tar.gz
ls命令查看,下面已经有了hadoop文件夹
然后再配置hadoop的环境变量
执行命令 vi /etc/profile
在末尾添加下面的代码
(注:如果你的hadoop目录名和我的不一样,请做相应修改)
#hadoop
export HADOOP_HOME=/usr/local/hadoop-2.8.3
export PATH=$PATH:$HADOOP_HOME/bin:/$HADOOP_HOME/sbin
执行命令
source /etc/porfile
1.4 修改hadoop中的一系列配置文件
提示:大家输入命令的时候输一点按tab键自己就出来了
执行命令 cd /usr/local/hadoop-2.8.3/etc/hadoop/ 切换到配置文件目录
修改/usr/local/hadoop-2.8.3/etc/hadoop目录内的一系列文件。
1.4.1 修改core-site.xml
执行命令vi core-site.xml
注:文章中的qipao请修改为自己的主机名或者ip地址
在<configuration></configuration>
节点内加入配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.8.3/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://qipao2:9000</value>
</property>
</configuration>
1.4.2修改 hadoop-env.sh
执行命令 vi hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME}
修改为:export JAVA_HOME=/usr/local/jdk1.8.0_181
说明:修改为自己的JDK路径
1.4.3修改hdfs-site.xml
执行命令 vi hdfs-site.xml
在<configuration></configuration>
节点内加入配置:
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop-2.8.3/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-2.8.3/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
说明:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。
1.4.4 新建并且修改mapred-site.xml
在当前目录下
cp mapred-site.xml.template mapred-site.xml
然后执行命令
vi mapred-site.xml
注:文章中的qipao请修改为自己的主机名或者ip地址
在<configuration></configuration>
节点内加入配置:
<property>
<name>mapred.job.tracker</name>
<value>qipao2:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/usr/local/hadoop-2.8.3/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<name>mapreduce.jobhistory.address</name>
<value>qipao2:10020</value>
<description>MR JobHistory Server管理的日志的存放位置</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>qipao2:19888</value>
<description>查看历史服务器已经运行完的Mapreduce作业记录的web地址,需要启动该服务
才行</description> </property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/history/done</value>
<description>MR JobHistory
Server管理的日志的存放位置,默认:/mr-history/done</description>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/history/done_intermediate</value>
<description>MapReduce作业产生的日志存放位置,默认值:/mr-history/tmp</description>
</property>
</property>
1.4.5修改slaves文件
注:文章中的qipao请修改为自己的主机名或者ip地址
执行命令 vi slaves
将里面的localhost删除
添加另外两外虚拟机的主机名 (注:如果你的主机名没有配置好可以用ip)
qipao3
qipao3
这里换成你们自己的主机名
1.4.6 修改yarn-site.xml文件
执行命令 vi yarn-site.xml
注:文章中的qipao请修改为自己的主机名或者ip地址
在<configuration></configuration>
节点内加入配置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>qipao2</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。
1.5将hadoop传输至其他虚拟机
请将qipao3 qipao4换为自己的其他虚拟机的主机名或者ip
scp -r /usr/local/hadoop-2.8.3 root@qipao3:/usr/local/
scp -r /usr/local/hadoop-2.8.3 root@qipao4:/usr/local/
1.6为另外两台虚拟机配置hadoop的环境变量
参考1.3中的配置方法
记得执行 source /etc/profile
使环境变量生效
1.7启动hadoop
1.7.1在namenode上执行初始化
因为qipao2是namenode,qipao3和qipao4都是datanode,所 以只需要对qipao2进行初始化操作,也就是对hdfs进行格式化。
执行初始化脚本,也就是执行命令:
hadoop namenode -format
1.7.2在namenode上执行启动命令
分别执行命令
start-dfs.sh start
start-yarn.sh start
./mr-jobhistory-daemon.sh start historyserver 启动历史记录服务
1.8测试hadoop
haddoop启动了,需要测试一下hadoop是否正常。
打开浏览器(不要用IE或者Edge建议谷歌浏览器或火狐浏览器)
输入namenode的ip地址,也就是qipao2的ip地址后面跟上端口号:50070 也就是后面的语句,根据ip做相应的修改就好了http://192.168.70.3:50070
hadoop启动成功