系统是Ubuntu16.04
0 准备工作
安装SSH
sudo apt-get install openssh-server openssh-client
安装vim
sudo apt install vim-gtk
1 安装java1.8.211
安装包到官网下就好。
然后建文件夹,解压,改名
sudo mkdir -p /usr/local/java
sudo cp -r jdk-8u211-linux-x64.tar.gz /usr/local/java
cd /usr/local/java
sudo tar -xvzf jdk-8u211-linux-x64.tar.gz
sudo mv jdk1.8.0_211 jdk
添加系统变量
sudo vim /etc/profile
结尾添加
export JAVA_HOME=/usr/local/java/jdk
export JRE_HOME=/usr/local/java/jdk/jre
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin
使配置文件生效
source /etc/profile
查看安装是否成功
java -version
若如下图所示打印出安装的版本,则安装成功
设置静态ip
查看网络信息
ifconfig
第一行最左边的名字,就是本机的网络接口,此处为 ens33 ,不同机器可能不同。
修改/etc/network/interfaces 文件 [注意是interfaces,有s]。
sudo vim /etc/network/interfaces
内容改为下图,注意自己的主机名
gateway可以通过 netstat -rn
查看
然后刷新ip,注意,第一条代码中,你要修改成本机的网络接口
sudo ip addr flush ens33
sudo systemctl restart networking.service
重启系统,看看网络是否正常连接,我这里已经能正常连接了,ip也是自己设置的值
如果不能正常连接,则打开命令行,输入以下代码
sudo vim /etc/NetworkManager/NetworkManager.conf
修改其中的
managed=true
然后重启network-manager
sudo service network-manager restart
最后重启系统,应该就可以了
修改主机名
sudo vim /etc/hostname
将其中以及存在的主机名修改为自己想要的主机名,我这里是将ubuntu改为了OPENTSDB03
注意不要有多余的空行
修改完主机名后,需要修改/etc/hosts文件
sudo vim /etc/hosts
改为下图所示内容
就只是修改前三行,自己有多少机器进行联机就添加对应的ip和hostname
保存后也需要重启虚拟机才能生效
设置免密登录
这里需要每个虚拟机有一个同样名称的用户名,并要具有root权限
su
可切换到root用户
su 用户名
可切换到对应用户
在root用户下,输入以下代码设置一个名为hbasehadoop的用户
useradd hbasehadoop
输入以下设置对应的密码
passwd hbasehadoop
继续以root用户执行,添加用户到sudoers中
chmod u+w /etc/sudoers
vim sudoers
在文件末尾加上一句
hbasehadoop ALL=NOPASSWD:ALL
此时可以切换到hbasehadoop后可以通过sudo whoami
查看是否拥有sudo的权限
显示root
应该就可以了。
然后在每台虚拟机上切换到hbasehadoop用户,执行以下命令生成密钥对文件
ssh-keygen -t rsa -P ""
遇到停就回车,会在hbasehadoop/.ssh下生成一个id_rsa.pub密钥对文件
选一台虚拟机a在hbasehadoop用户下执行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
要说明的是,当虚拟机a的authorized_keys存入虚拟机b的密钥对时,a就可以免密进入b对应的用户,所以需要将几个虚拟机上生成的id_rsa.pub依次传入a中,然后cat进authorized_keys中,最后将这个authorized_keys传到每个虚拟机的hbasehadoop/.ssh下
在其他虚拟机上将生成的id_rsa.pub依次传入a
scp ~/.ssh/id_rsa.pub hbasehadoop@a:/home/hbasehadoop
在a中cat进authorized_keys中
cat id_rsa.pub >> ~/.ssh/authorized_keys
所有都cat完后,对.ssh文件夹赋予700权限,对authorized_keys设置600权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
此时其他机器的密钥对都已经存在a中了,在其他机器上测试
ssh a
会发现可以直接登录到a上,不需要用户名和密码
最后再在其他虚拟机上下载authorized_keys文件,免密登录就弄好啦
scp hbasehadoop@a:/home/hbasehadoop/.ssh/authorized_keys ~/.ssh
完成后最好测试一下相互间的登录,以防后续产生一些莫名奇妙的麻烦。
如果在opentsdb03连接opentsdb05时发现如下错误:
Warning: the ECDSA host key for ‘opentsdb05‘ differs from the key for the IP address ‘192.168.182.134‘
则在opentsdb03上执行ssh-keygen -R 192.168.182.134
NTP安装与配置
这一部分我在有的资料上没提到,需要安装的话参考[https://www.cnblogs.com/quchunhui/p/7658853.html]
sudo apt-get install ntp
Hadoop安装配置
参考的资料是安装的2.6.4版本的Hadoop,我自己要安装的是2.7.7,版本对应如下图
首先解压,重命名
tar zxvf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7 hadoop
然后给Hadoop文件夹赋予我们所使用的hbasehadoop用户权限
chown hbasehadoop.hbasehadoop hadoop
然后将这个程序文件夹移动到/usr/local里
sudo mv hadoop /usr/local
可以通过ll
查看当前目录所有文件的权限设置。
添加环境变量
这些环境变量是一定要设定的,配置了Hadoop的程序文件的路径。切换到hbasehadoop用户并编辑~./bashrc文件
su hbasehadoop
vim ~/.bashrc
结尾加上
HADOOP_HOME就是hadoop程序文件的位置,保存后使用source加载.bashrc文件,使配置立即生效。
source ~/.bashrc
修改配置文件
vim $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh
在开头加入几行。另外将JAVA_HOME的路径添加进去,这是前面自己安装的java路径。
下面是从资料上照的一张图。
保存后创建日志文件夹,可以先通过命令df -h
查看目前存储空间,选取一个较大的空间下建立日志文件夹,这里的地址就是上图里的HADOOP_LOG_DIR。切换到root用户,建立文件夹并赋予用户权限。
mkdir /data
mkdir /data/logs
mkdir /data/logs/hadoop
chown hbasehadoop.hbasehadoop /data/logs/hadoop
配置core-site.xml
vim $HADOOP_PREFIX/etc/hadoop/core-site.xml
这个文件是配置Hadoop的web属性的文件,在其中加入如下内容
编辑hdfs-site.xml
vim $HADOOP_PREFIX/etc/hadoop/hdfs-site.xml
这个文件负责配置HDFS相关的属性,需要在其中添加配置项,如下图所示。
这里dfs.replication是用来设计备份的,0表示会备份,1表示不备份,实际开发时设为0,此处为学习,就设为1
dfs.namenode.name.dir是namenode在硬盘上存储文件的位置。dfs.datanode.data.dir是datanode在硬盘上存储文件的位置。
配置完要去创建这儿的两个文件夹并赋权限:
mkdir -p /data/hadoop/hdfs/nn
mkdir -p /data/hadoop/hdfs/dn
chown -R hbasehadoop.hbasehadoop /data/hadoop
格式化namenode
在hbasehadoop下用hdfs命令格式化namenode
hdfs namenode -format
启动单机模式
使用sbin中的start-dfs.sh命令启动hadoop
$HADOOP_PREFIX/sbin/start-dfs.sh
现在我们只是配置了一台机器,使用上面指令启动Hadoop时,会在hbasehadoop上同时启动namenode、secondary namenode和datanode,这样一来就是单机模式,这样做的目的是检查验证配置是否正确、并能看到Hadoop的一些基本界面和操作,为后面复杂配置打基础。
启动结果如下图
通过tail命令可以查看启动日志,启动日志在配置的HADOOP_LOG_DIR中
tail -200f /data/logs/hadoop/hadoop-qingkong-namenode-OPENTSDB03.log
名称会有所不同,和主机名和用户名相关。
用浏览器访问Hadoop控制台
没问题后,就可以通过浏览器打开 http://OPENTSDB03:50070,如果没问题的话就可以看到以下画面,这里OPENTSDB03是配置的服务器名,也可以换成对应的IP。
关闭Hadoop
执行以下指令即可
stop-dfs.sh