从头配置opentsdb(1) 搭建单机版Hadoop

系统是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

修改配置文件

配置hadoop-env.sh

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值