安装环境:Centos 6
Hadoop版本:2.7.2
用户名:huwei
Hadoop2.7.2下载链接:https://pan.baidu.com/s/1AK4CXh2jBKOSa-bN4NA8nQ 提取码:bemy
提示:全文中所有cd命令,均可在图形化界面点击进入指定文件夹后,右击打开终端而省略。
cd命令进入/usr/local 目录下,由于进入系统目录操作需要管理员权限,故使用su命令由普通用户转为root用户,mkdir Hadoop创建Hadoop文件夹(touch是创建文件)
su
cd /usr/local/
mkdir Hadoop
mv /home/huwei/下载/hadoop-2.7.2.tar.gz /usr/local/Hadoop
移动成功后如下图:
进入刚刚创建的Hadoop文件夹,鼠标右击“在终端打开”
即直接在终端进入了该文件夹的位置,免去的较为繁琐的cd命令
还有一点要特别注意的就是,在系统目录里进行操作,需要转为root用户
su
解压压缩包
tar -zxvf hadoop-2.7.2.tar.gz
su命令转为root用户,在任一目录下输入
vi /etc/profile
进入该文件后按下键盘中的字母 i 进行输入,在文件末尾添加以下变量(具体根据自己放置hadoop的位置进行相应修改)
export HADOOP_HOME=/usr/local/Hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
输入完成后按下键盘右上角的 Esc 并输入:wq进行保存退出
使变量生效并检验
source /etc/profile
任意目录输入hado,然后按下Tab,如果自动补全hadoop,则说明环境变量配置的没问题,回车则有
检查是否安装了SSH
rpm -qa | grep ssh
一般情况下,CentOS 默认已安装了 SSH client、SSH server,可打开终端执行如下命令进行检验。如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。
ssh localhost
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 ,这样就登陆到本机了
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
SSH无密码登陆
在客户端生成私钥与公钥
ssh-keygen -t [rsa|dsa],rsa和dsa代表不同的算法
将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub(如果用dsa则生成id_dsa,id_dsa.pub)
ssh-keygen -t rsa # 三个回车
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 ./authorized_keys # 修改文件权限
ssh-copy-id localhost # 将公钥拷贝给自己
此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示
有关上述Linux权限详解可参考:https://blog.csdn.net/u013197629/article/details/73608613
查看防火墙状态(切换为root用户)
service iptables status
CentOS 7的防火墙服务为firewalld,不再使用iptables了
systemctl stop firewalld 关闭防火墙服务网
若出现下图信息则说明防火墙处于开启状态!
关闭防火墙
service iptables stop
service iptables status
进入hadoop文件夹下的etc/hadoop/目录,打开终端并切换为root用户
(1)hadoop-env.sh
vi hadoop-env.sh
按下左上角的Esc输入:wq保存退出
(2) core-site.xml
vi core-site.xml
在
中加入
fs.defaultFS</name>
hdfs://localhost:9000</value>
</property>
(3) hdfs-site.xml
vi hdfs-site.xml
在
中加入
<!-- HDFS的副本为1,即数据只保存一份 -->
dfs.replication</name>
1</value>
</property>
(4) mapred-site.xml
由于该目录下只有mapred-site.xml.template文件,故将其改名为mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
修改mapred-site.xml文件
vi mapred-site.xml
在
中加入
<!-- 指定MapReduce运行在YARN上 -->
mapreduce.framework.name</name>
yarn</value>
</property>
(5) yarn-site.xml
vi yarn-site.xml
在
中加入
<!-- 分别指定ResouceManager的地址 -->
yarn.resourcemanager.hostname</name>
localhost</value>
</property>
<!-- 分别指定MapReduce的方式 -->
yarn.nodemanager.aux-services</name>
mapreduce_shuffle</value>
</property>
按下左上角的Esc输入:wq保存退出
要在root下进行
vi /etc/hosts
hdfs namenode -format
进入hadoop文件夹下的sbin目录,需切换至root用户
start-dfs.sh
start-yarn.sh
jps
你可能会遇到的以下问题
(1)在root用户下启动hadoop集群不需要输入密码,而在普通用户下的免密登录没有起效,仍需要多次输入密码,这可能是因为你刚刚是在root用户下进行的免密操作,那么就在普通用户下重新执行SSH免密操作。
(2)如果启动hadoop集群时提示找不到命令…,那么就再次输入source /etc/profile或输入source /etc/profile再reboot重启。
(3)在普通用户下启动yarn,虽然可以正常启动,但是过程中会有“……权限不够·”
chown -R huwei:huwei /tmp/
即可正常。
其中huwei分别为我的用户名和组名,想要查看当前用户的所在组
groups 用户名
即可返回组名以及组下的用户名