创建用户及准备
在构建hadoop之前,创建一个hadoop用户,并通过passwd hadoop给用户设置密码。
接着使用su hadoop切换到hadoop用户:
并且切换到主目录下创建一个dir 命名为opt。
创建好了目录,上传两个压缩包至opt,分别是:
---hadoop-2.7.5.tar.gz
---jdk-8u152-linux-x64.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz
tar -zxvf jdk-8u152-linux-x64.tar.gz
解压后,会生成两个文件夹
配置环境
先配置jdk的环境。
cd jdk1.8.0_152
事实上我们没必须要一个一个键盘敲击出jdk可以通过TEB键补齐。
接着编辑 主目录下的 隐藏文件 .bashrc,可以通过 ll -a看到。
声明一个javapath变量,把当前绝对路径赋给它:
javapath=`pwd`
vi ~/.bahsrc 添加两行路径:
export JAVA_HOME=$javapath
export PATH=$PATH:$javapath/bin
再刷新一下 .bashrc:source ~/.bashrc
执行java,就配置好了。
配置好了jdk,接着配置hadoop。
依葫芦画瓢,先声明变量,hadooppath=`pwd`
vi ~/.bahsrc
export HADOOP_HOME=$hadooppath
export HADOOP_CONF_DIR=$hadooppath/opt/hadoop
export PATH=$PATH:$hadooppath/bin:$hadooppath/sbin
刷新一下,执行hadoop.就配置好啦。
无密码登陆
ssh-keygen -t rsa
根据它的提示一直回车或者y后,它会生出一个.ssh的隐藏文件夹
ssh-copy-ip localhost
这时你会发现一个问题无法解析主机名。
修改ip地址为静态ip
切换到root用户,不然权限不够。
cd /etc/sysconfig/network-scripts
修改ifcfg-ens33
首先,把BOOTPROTO=dhcp改为 BOOTPROTO=static
再添加这4行代码
IPADDR=192.168.220.138
NETMASK=255.255.255.0
GATEWAY=192.168.220.1
DNS1=202.106.0.20
2.修改主机名和主机映射
vi /etc/hostname
将localhost改为python
保存退出
vi /etc/hosts
192.168.158.166 python
保存退出。
重启网络 systemctl restart network。
这时候你就会发现localhost 变成了python.
此时就可以在hadoop用户下执行ssh-copy-id python。
伪分布式集群
OK,做好这些前戏咱们正式进入主题。
进入/home/hadoop/opt/hadoop-2.7.5/etc/hadoop内配置以下文件:
core-site.xmlhdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves文本文件
-------------------------------------
从官网查询:hadoop.apache.org/docs
默认文件系统:hdfs
<property>
<name>fs.defaultFS</name>
<value>http://python:9000</value>
</property>
修改hadoop关于文件 块的默认备份数 3,修改为1
修改Hadoop文件块的默认备份数 3,修改为1
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/opt/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop/opt/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>python:50070</value>
</property>
修改mapred-site.xml文件:
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
启用yarn的资源调度框架
<property><name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置datanode的主机名称
将localhost改为python
配置yarn的主机
<property>
<name>yarn.resourcemanager.hostname</name>
<value>python</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value> mapreduce_shuffle</value>
</property>
以上配置均是放入<configration>中
配置好以后,并不是就能立即启动的,还需要关闭防火墙。
关闭防火墙以及selinux
关闭防火墙需要root权限
su root
先关闭关闭selinux
临时关闭:setenforce 0
永久关闭:vi /etc/selinux/config
修改:SELINUX=disabled
保存并退出
接着关闭防火墙。
推荐使用临时关闭。
临时关闭: systemctl stop firewalld
完成后退出当前用户回到hadoop用户
exit
hdfs namenode -format #第一次启动要执行格式化,之后启动不用执行这个
start-dfs.sh
在执行jps,如果出现
就证明你成功啦。