概述
之前在阿里云买的学生版服务器,闲着也是浪费,为了平常学习使用,决定在一台服务器上搭建一个伪分布式的开发环境。之前用三台虚拟机部署过集群,时间长了怕忘,现在升级各个版本重新部署,记下来方便以后查看。难免出现错误,欢迎指出,共同学习交流。
一、准备好需要用到的软件
1.ssh软件:
xshell5 xftp
2.使用cloudrea cdh5.8.0系列,下载地址
- hadoop-2.6.0-cdh5.8.0.tar.gz
- hbase-1.2.0-cdh5.8.0.tar.gz
- hive-1.1.0-cdh5.8.0.tar.gz
- zookeeper-3.4.5-cdh5.8.0.tar.gz
- spark-2.2.0-bin-hadoop2.6.tgz(spark到官网选择hadoop2.6版本)
- apache-maven-3.5.2-bin.tar.gz
- jdk-8u152-linux-x64.tar.gz
- kafka_2.11-0.10.0.0.tgz
- scala-2.11.8.tgz
3.系统选择
镜像:
直接选择了已经部署好jdk1.8,tomcat和mysql的系统,后期方便使用
4.web服务页面
hdfs hostname:50070
yarn hostname:8088
hbase hostname:60010
5.配置好环境变量
二、 基本配置
1.远程登录
进入控制台,生成密钥对,需要重启服务器后才生效。阿里云好像默认禁止使用密码远程登录,做如下配置即可密码登录。
该问题通常是由于 SSH 服务修改了 PasswordAuthentication 参数,禁用了密码验证登录所致。
将 /etc/ssh/sshd_config中的如下行注释掉。
然后重启ssh服务就可以通过密码远程登录
systemctl restart sshd
2.添加新用户及ssh免密登录
1.创建用户 hadoop
adduser hadoop
2.修改密码
passwd hadoop
3.为hadoop添加免密切换到root用户权限
vi /etc/sudoers
添加一行
hadoop ALL=(root)NOPASSWD:ALL
4.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld(关闭开启启动)
5.为hadoop用户添加ssh免密登录
(进入用户家目录)
cd ~
(生成密钥,之后一路回车)
ssh-keygen -t rsa
(进入.ssh目录)
cd ~/.ssh
(将本机公钥添加到authorized_key中)
ssh-copy-id 主机名
注意:
1.用户的家目录权限不能太低,只能700,否则无法配置免密登陆
3.配置java环境变量
vi /etc/profile
export JAVA_HOME=/jdk
export PATH=$PATH:$JAVA_HOME/bin
四、hadoop和yarn部署
1.在家目录创建hdfs存储数据的目录
1.cd /home/hadoop
2.mkdir hdfs
2.将上面要用到的所有软件全部解压到/opt目录
tar -xzvf /software /opt
3.配置
1.core-site
1.cd /opt/hadoop-2.6.0-cdh5.8.0/etc/hadoop
2.vi core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hdfs</value> #开始创建好的目录
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hostname:9000</value>
</property>
</configuration>
2.hdfs-site.xml
1.vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name> #数据存放的副本数
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value> #namenode数据目录
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value> #datanode数据目录
</property>
</configuration>
3.hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111
4.slaves
hostname #datanode节点主机名
4.hdfs格式化及启动
1.格式化hdfs
bin/hdfs namenode -format
2.启动namenode和datanode进程
sbin/start-dfs.sh
3.查看进程
jps
DataNode
NameNode
SecondaryNameNode
注意:
1.如果启动时报如下错,见上面基本配置1