Hadoop集群配置

来源:互联网 发布:建设银行软件下载 编辑:程序博客网 时间:2024/06/01 12:06

之前简单搭了一个hadoop伪分布集群,后来改成高可用了,两台master,三台slave,但是笔记本内存只有4G,跑起来实在费劲,于是,只能又从头开始搭最简单的,一个master,一个slave的集群。
这次的目标就是,不上网查攻略,尽量写脚本完成,然后把博客写完!
1.克隆两个最小化安装版的虚拟机,系统,centOS7
我把master取名:h-master,slave取名h-slave
2.配置网络:
h-master ip:192.168.120.120
h-slave ip:192.168.120.121
vi /etc/sysconfig/network-script/ifcfg-ens33
改IP,GATEWAT,BOOTPROTO
然后重启网络,systemctl restart network
修改网卡配置文件
注意上面的网段需要与虚拟机网络设置里的网段相同。
网段
其实上面这步,我尝试用把ifcfg-ens33文件拷出来,用sed删除掉uuid,ipaddr,gateway这三行,再添加上去ipaddr和gateway,再替换到源文件,却没有成功。
此处先记录下这两条sed命令,到时候回头再试试
sed -i /UUID/d ifcfg-ens33
sed -i /IPADDR/d ifcfg-ens33
sed -i /GATEWAY/d ifcfg-ens33
在最后一行添上ip和网关
sed -i ‘aIPADDR=192.168.120.120ifcfgens33sedia GATEWAY=192.168.120.2’ ifcfg-ens33
3.永久关闭防火墙和selinux/添加hadoop用户

需要去每个机器下,把/etc/hostname改成对应的主机名,我的分别为h-master和h-slave
这是关防火墙和新建用户脚本
然后再写一个脚本,执行上面这个脚本a,以及把脚本a传到slave上执行;
这里写图片描述
嗯,记得新建一个pwd文件,里面为hadoop用户的密码。
到目前为止,网络方面的一些配置和hadoop用户的创建就完成了,下面就是安装JDK和hadoop了。
4.很尴尬,才想起来忘记弄ssh无密码登陆了,不然可以在脚本中覆盖的,算了,手动弄一下吧,在每个节点上执行ssh localhost,确保ssh安装。

cd .sshssh-keygen -t rsa #遇到提示一路回车就行ll #会看到 id_rsa id_rsa.pub 两文件前为私钥,后为公钥cat id_rsa.pub >> authorized_keys #把公钥内容追加到authorized_keys文件中chmod 600 authorized_keys 

5.此处我们jdk用yum方式安装,hadoop用压缩包方式。
先把两个文件传到master上.
因为我们jdk是用yum安装,需要root权限,需要把hadoop用户加到sudoers文件里,这一步也没有脚本完成,需要手动操作。
su root
vi /etc/sudoers
:90 (快速定位到90行)
这里写图片描述
不要复制再修改成hadoop,手动输入,记得是制表格!!
在home/hadoop底下创了个software文件夹,把jdk和hadoop压缩文件都放在里面了,下面开始安装,显示切换到root用户安装jdk
这里写图片描述
yum -y install jdk-8u121-linux-x64.rpm
这个时候jdk会默认安装在/usr/java文件中
设置java环境变量,
vi ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=PATH:JAVA_HOME/bin
再将hadoop解压到/home/hadoop/下面,记得是hadoop用户解压,不然文件都将会是root用户所有,以后访问会有权限方面的问题
设置hadoop环境变量

# Hadoop Environment Variablesexport HADOOP_HOME=/home/hadoop/hadoop-2.7.3export HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

修改hadoop配置,要改动五个文件:
编辑如下5个文件 在 /home/hadoop/hadoop-2.7.3/etc/hadoop 目录中
1.core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://h-master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop-2.7.3/tmp</value>
</property>
</configuration>

2.hdfs-site.xml

<property>                <name>dfs.namenode.secondary.http-address</name>                <value>h-master:50090</value>        </property>        <property>                <name>dfs.replication</name>                <value>1</value>        </property>        <property>                <name>dfs.namenode.name.dir</name>                <value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/name</value>        </property>        <property>                <name>dfs.datanode.data.dir</name>                <value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/data</value>        </property>

3.mapred-site.xml

<property>                <name>mapreduce.framework.name</name>                <value>yarn</value>        </property>        <property>                <name>mapreduce.jobhistory.address</name>                <value>h-master:10020</value>        </property>        <property>                <name>mapreduce.jobhistory.webapp.address</name>                <value>h-master:19888</value>        </property>

4.yarn-site.xml

<property>                <name>yarn.resourcemanager.hostname</name>                <value>h-master</value>        </property>        <property>                <name>yarn.nodemanager.aux-services</name>                <value>mapreduce_shuffle</value>        </property>

5.slaves

h-slave

slave上的环境变量什么的跟master一样。

6.格式化namenode
hdfs namenode format

7.start-dfs.sh
start-yarn.sh

在h-master,jps能看到
namenode,secondarynamenode,resourcemanager,
在h-slave上,jps能看到
datanode,nodemanager