3.HDFS集群—搭建伪分布式

关于环境变量

#拿不到环境变量
ssh root@192.168.xxx.xxx 'echo $bianliang'

#先加载环境变量,再输出环境变量
ssh root@192.168.xxx.xxx 'source /etc/profile;echo $bianliang'

关于克隆虚拟机

#需要为每台机器重新生成不同的machine-id:
rm /etc/machine-id /var/lib/dbus/machine-id
dbus-uuidgen --ensure
systemd-machine-id-setup
reboot

#修改主机名
#修改IP地址

Linux基础设施

设置IP
#修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33

#将BOOTPROTO修改为"static"
BOOTPROTO="static"

#在BOOTPROTO下添加
IPADDR="192.168.238.100"	#IP地址
NETMASK="255.255.255.0"		#子网掩码
GATEWAY="192.168.238.255"	#默认网关
DNS="192.168.238.2"			#DNS
设置主机名
#修改配置文件
vi /etc/sysconfig/network
#添加内容
NETWORKING=YES
HOSTNAME=name

#centos修改
vi /etc/hostname
关闭防火墙
service iptables stop		#关闭防火墙
systemctl stop firewalld	#centos关闭防火墙

chkconfig iptables off		#禁止开启启动
systemctl disable firewalld	#centos禁止自启
关闭SELinux
SELinux是Linux的一种安全子系统。
Linux权限管理是针对文件不针对进程的,就比如root启动了某进程,则这个进程可以操作任何一个文件。
SELinux在Linux文件权限外,增加了对进程的限制,进程只能在允许的范围内操作资源。
SELinux工作模式:
enforcing		强制模式(操作违反规则会制止并且记录到日志文件)
permissive		宽容模式(操作违反规则不制止但是记录到日志文件)
disable			关闭
修改SElinux配置文件:
vi /etc/selinux/config
写入:SELINUX=disable
设置hosts映射
vi /etc/hosts

192.168.238.101	tongyuzhe1
192.168.238.102	tongyuzhe2
192.168.238.103	tongyuzhe3
192.168.238.104	tongyuzhe4
时间同步
方式1
所有主机和同一台主机同步
方式2
通过网络,所有主机和时钟服务器保持同步
安装
# 安装时钟同步软件
yum install -y ntp

# 配置文件
crontab -e

# 定时任务,每分钟与阿里云时钟服务器同步
# 分时日月周
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;

# 查看服务是否启动
service ntpd status
# 启动服务
service ntpd start
# 设置开机自启动
chkconfig ntpd on
# 开机自启失败解决方法
# 禁止系统自己控制时钟
systemctl disable chronyd
安装jdk
卸载open-JDK
#查看和java相关的安装包
rpm -qa | grep java

#卸载所有java-1.*的安装包
sudo yum remove java-1.*

#卸载tzdata
rpm -e tzdata-java-2020a-1.el7.noarch
创建目录
#创建安装目录
mkdir -p /export/softwares	#软件包存放目录
mkdir -p /export/servers	#软件安装目录
上传
rz -E
解压安装
tar -xvf jdk-8u281-linux-x64.tar.gz -C ../servers/
配置环境变量
#修改配置文件
vim /etc/profile

#添加以下内容
export JAVA_HOME=/export/servers/jdk1.8.0_281
export PATH=$JAVA_HOME/bin:$PATH

#保存并使用环境设置
source /etc/profile
关闭邮箱检查提示
#修改配置文件
vim /etc/profile

#添加内容
unset CHECKMAIL

#使其生效
source /etc/profile
设置SSH免秘钥
想管理A,就把自己公钥拷贝到A主机
免密SSH原理
1. 先在B节点配置A节点的公钥
2. A节点请求B节点要求登录
3. B节点使用A节点的公钥,加密一段文本
4. A节点使用私钥解密,返回给B节点
5. B节点验证文本是否正确
第一步
在每台电脑中执行以下命令,生成公钥和私钥
ssh-keygen -t rsa
按三次回车就行
第二步

将三台公钥拷贝至同一台机器

# 将本机公钥拷贝至tongyuzhe1
ssh-copy-id tongyuzhe1
复制第一台机器上三个认证到其他机器
# 将本机目录认证复制到tongyuzhe2主机的/root/.ssh下
scp /root/.ssh/authorized_keys tongyuzhe2:/root/.ssh

hadoop安装配置

hadoop搭建
#创建路径
mkdir /opt/bigdata

#安装hadoop
tar xf hadoop-2.6.5.tar.gz

#移动目录
mv hadoop-2.6.5 /opt/bigdata

#配置hadoop角色环境变量
export HADOOP_HOME=/opt/bigdata/hadoop-2.6.5
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

#使配置文件生效
source /etc/profile
配置hadoop目录
#进入hadoop配置目录
cd $HADOOP_HOME/etc/hadoop

#修改配置文件
vi hadoop-env.sh
#从远端SSH访问时,是访问不到环境变量的
#所以要将以下目录
export JAVA_HOME=${JAVA_HOME}
#修改为绝对路径
export JAVA_HOME=/export/servers/jdk1.8.0_281
角色启动位置
#hadoop配置文件千万不能有空行之类的
NameNode启动位置
#修改文件
vi core-site.xml 

#在<configuration>内添加
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://主机名:9000/</value>
</property>
DataNode启动位置
vi slaves

#添加主机名
tongyzuhe1
SecondaryNameNode启动位置
#修改文件
vi hdfs-site.xml

#在<configuration>内添加
<property>
   #修改SecondaryNameNode主机
   <name>dfs.namenode.secondary.http-address</name>
   <value>tongyuzhe1:50090</value>
</property>
角色启动细节
#修改文件
vi hdfs-site.xml 

#在<configuration>内添加
文件块副本数
<property>
	<name>dfs.replication</name>
	#因为是伪分布式,所以只有1块
	<value>1</value>
</property>
NameNode存放位置
<property>
	#指定namenode存放的文件夹
	<name>dfs.namenode.name.dir</name>
	<value>/var/bigdata/hadoop/local/dfs/name</value>
</property>
DataNode存放位置
<property>
	#指定datanode存放的文件夹
	<name>dfs.datanode.data.dir</name>
	<value>/var/bigdata/hadoop/local/dfs/data</value>
</property>
SecondaryNameNode存放位置
<property>
	#修改SecondaryNameNode目录
	<name>dfs.namenode.checkpoint.dir</name>
	<value>/var/bigdata/hadoop/local/dfs/secondary</value>
</property>

hadoop初始化启动

初始化
#初始化
#会创建目录
#初始化一个空的fsimage
#创建VERSION配置文件,随机分配个CID
hdfs namenode -format

#修改windows的hosts
192.168.238.101	tongyuzhe1
...
启动HDFS
#启动
start-dfs.sh

#停止
stop-dfs.sh

#查看服务
#ps是查看服务,jps是查看和java有关的服务
jps
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值