微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

关于环境变量

#拿不到环境变量
ssh [email protected] 'echo $bianliang'

#先加载环境变量,再输出环境变量
ssh [email protected] '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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐