修改root用户的密码
sudo passwd root
SSH放行
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
重启服务
sudo service sshd restart
分别在四台机器上修改
hostnamectl set-hostname --static "server100"
hostnamectl set-hostname --static "server101"
hostnamectl set-hostname --static "server102"
hostnamectl set-hostname --static "server103"
查看主机名
hostname

vi /etc/hosts
添加以下内容
192.168.30.100 server100
192.168.30.101 server101
192.168.30.102 server102
192.168.30.103 server103
四台机器上都执行执行
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server100
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server101
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server102
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server103
sudo ufw disable
sudo ufw status
假设你想要将额外的空间添加到现有的 LVM 逻辑卷 /dev/ubuntu-vg/ubuntu-lv 中:
首先,使用 lvdisplay 命令查看 LVM 逻辑卷的详细信息,确保有足够的未分配空间可用:
sudo lvdisplay
注意其中的 “Free PE / Size” 部分,确保有足够的空间。
如果有足够的未分配空间,使用 lvextend 命令扩展现有的逻辑卷。假设你有 500G 的空闲空间,命令可能如下所示:
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
这将利用所有可用的空闲空间进行扩展。
扩展逻辑卷后,你需要将文件系统扩展到新的空间。对于 ext4 文件系统,可以使用 resize2fs 命令:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
最后,使用 df -h 命令检查文件系统的大小,确保已经成功扩展。
df -h
如果你想要使用硬盘的剩余空间,你需要创建一个新的逻辑卷。以下是相应的步骤:
使用 lvcreate 命令创建一个新的逻辑卷。假设你想要创建一个名为 data-lv 的逻辑卷,可以执行:
sudo lvcreate -l +100%FREE -n data-lv ubuntu-vg
这将使用硬盘上所有可用的空闲空间创建一个新的逻辑卷。
接下来,你需要创建一个文件系统。对于 ext4 文件系统,可以使用 mkfs 命令:
sudo mkfs -t ext4 /dev/ubuntu-vg/data-lv
确保目标目录 /data 存在,如果不存在,创建它:
sudo mkdir /data
然后,将新创建的逻辑卷挂载到 /data:
sudo mount /dev/ubuntu-vg/data-lv /data
最后,如果你希望系统启动时自动挂载 /data,你可以编辑 /etc/fstab 文件,添加一行:
/dev/ubuntu-vg/data-lv /data ext4 defaults 0 0
保存并退出编辑器。
vi ~/.bashrc
末尾添加一行
ulimit -n 新的文件打开数
保存并关闭文件,然后重新加载配置文件:
source ~/.bashrc
使用以下命令验证更改是否已生效:
ulimit -n
sudo dpkg-reconfigure tzdata
运行上述命令后,你会看到一个交互式的界面,其中可以选择你所在的地区和城市。选择完毕后,系统将自动更新时区设置。
通过timedatectl命令查看时间状态
上传到/usr/loca目录,然后解压
tar -zxvf jdk-8u202-linux-x64.tar.gz
配置环境变量
vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_202
JRE_HOME=/usr/local/jdk1.8.0_202/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH
export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native:$LD_LIBRARY_PATH
export PATH=/usr/local/cmake/bin/:$PATH
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
配置生效
source /etc/profile
本次部署计划四台服务器server100,server102,server101,server103,其中server103作为master节点,其它三个节点作为数据节点
在三个agent节点安装zookeeper
上传到/usr/local
解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
建立软连接,方便后期升级
ln -s apache-zookeeper-3.7.1-bin/ zookeeper
修改配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/usr/local/zookeeper/tmp
server.1=server100:2888:3888
server.2=server101:2888:3888
server.3=server102:2888:3888
在data目录中创建一个空文件,并向该文件写入ID。
touch /usr/local/zookeeper/data/myid
echo 1 > /usr/local/zookeeper/data/myid
同步配置到其它节点
将配置好的ZooKeeper拷贝到其它节点
scp -r /usr/local/apache-zookeeper-3.7.1-bin root@server101:/usr/local
scp -r /usr/local/apache-zookeeper-3.7.1-bin root@server102:/usr/local
登录server101、server102,创建软链接并修改myid内容
server101
cd /usr/local
ln -s apache-zookeeper-3.7.1-bin zookeeper
echo 2 > /usr/local/zookeeper/data/myid
server102
cd /usr/local
ln -s apache-zookeeper-3.7.1-bin zookeeper
echo 3 > /usr/local/zookeeper/data/myid
运行验证
cd /usr/local/zookeeper/bin
./zkServer.sh start
查看启动状态
./zkServer.sh status

将“hadoop-3.2.3.tar.gz”放置于server1节点的“/usr/local”目录,并解压。
cd /usr/local
tar -zxvf hadoop-3.2.3.tar.gz
建立软链接
ln -s hadoop-3.2.3 hadoop
修改配置文件
cd $HADOOP_HOME/etc/hadoop
修改hadoop-env.sh
echo "export JAVA_HOME=/usr/local/jdk1.8.0_202" >> hadoop-env.sh
echo "export HDFS_NAMENODE_USER=root" >> hadoop-env.sh
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> hadoop-env.sh
echo "export HDFS_DATANODE_USER=root" >> hadoop-env.sh
修改yarn-env.sh
echo "export YARN_REGISTRYDNS_SECURE_USER=root" >> yarn-env.sh
echo "export YARN_RESOURCEMANAGER_USER=root" >> yarn-env.sh
echo "export YARN_NODEMANAGER_USER=root" >> yarn-env.sh
修改core-site.xml
vi core-site.xml
<property>
<name>fs.defaultFSname>
<value>hdfs://server103:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/home/hadoop_tmp_dirvalue>
property>
<property>
<name>ipc.client.connect.max.retriesname>
<value>100value>
property>
<property>
<name>ipc.client.connect.retry.intervalname>
<value>10000value>
property>
<property>
<name>hadoop.proxyuser.root.hostsname>
<value>*value>
property>
<property>
<name>hadoop.proxyuser.root.groupsname>
<value>*value>
property>
修改hdfs-site.xml
vi hdfs-site.xml
<property>
<name>dfs.replicationname>
<value>3value>
property>
<property>
<name>dfs.namenode.name.dirname>
<value>/home/data1/hadoop/nnvalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>/home/data1/hadoop/dnvalue>
property>
<property>
<name>dfs.namenode.http-bind-hostname>
<value>0.0.0.0value>
property>
<property>
<name>dfs.datanode.handler.countname>
<value>600value>
property>
<property>
<name>dfs.namenode.handler.countname>
<value>600value>
property>
<property>
<name>dfs.namenode.service.handler.countname>
<value>600value>
property>
<property>
<name>ipc.server.handler.queue.sizename>
<value>300value>
property>
<property>
<name>dfs.webhdfs.enabledname>
<value>truevalue>
property>
修改mapred-site.xml
vi mapred-site.xml
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
<final>truefinal>
<description>The runtime framework for executing MapReduce jobsdescription>
property>
<property>
<name>mapreduce.job.reduce.slowstart.completedmapsname>
<value>0.88value>
property>
<property>
<name>mapreduce.application.classpathname>
<value>
/usr/local/hadoop/etc/hadoop,
/usr/local/hadoop/share/hadoop/common/*,
/usr/local/hadoop/share/hadoop/common/lib/*,
/usr/local/hadoop/share/hadoop/hdfs/*,
/usr/local/hadoop/share/hadoop/hdfs/lib/*,
/usr/local/hadoop/share/hadoop/mapreduce/*,
/usr/local/hadoop/share/hadoop/mapreduce/lib/*,
/usr/local/hadoop/share/hadoop/yarn/*,
/usr/local/hadoop/share/hadoop/yarn/lib/*
value>
property>
<property>
<name>mapreduce.map.memory.mbname>
<value>6144value>
property>
<property>
<name>mapreduce.reduce.memory.mbname>
<value>6144value>
property>
<property>
<name>mapreduce.map.java.optsname>
<value>-Xmx5530mvalue>
property>
<property>
<name>mapreduce.reduce.java.optsname>
<value>-Xmx2765mvalue>
property>
<property>
<name>mapred.child.java.optsname>
<value>-Xmx2048m -Xms2048mvalue>
property>
<property>
<name>mapred.reduce.parallel.copiesname>
<value>20value>
property>
<property>
<name>yarn.app.mapreduce.am.envname>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoopvalue>
property>
<property>
<name>mapreduce.map.envname>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoopvalue>
property>
<property>
<name>mapreduce.reduce.envname>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoopvalue>
property>
<property>
<name>mapreduce.job.counters.maxname>
<value>1000value>
property>
修改yarn-site.xml
vi yarn-site.xml
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
<final>truefinal>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>server1value>
property>
<property>
<name>yarn.resourcemanager.bind-hostname>
<value>0.0.0.0value>
property>
<property>
<name>yarn.nodemanager.resource.memory-mbname>
<value>371200value>
property>
<property>
<name>yarn.scheduler.maximum-allocation-mbname>
<value>371200value>
property>
<property>
<name>yarn.scheduler.minimum-allocation-mbname>
<value>1024value>
property>
<property>
<name>yarn.nodemanager.resource.cpu-vcoresname>
<value>64value>
property>
<property>
<name>yarn.scheduler.maximum-allocation-vcoresname>
<value>64value>
property>
<property>
<name>yarn.scheduler.minimum-allocation-vcoresname>
<value>1value>
property>
<property>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>
<property>
<name>yarn.client.nodemanager-connect.max-wait-msname>
<value>300000value>
property>
<property>
<name>yarn.nodemanager.vmem-pmem-rationame>
<value>2.1value>
property>
<property>
<name>yarn.nodemanager.vmem-check-enabledname>
<value>falsevalue>
property>
<property>
<name>yarn.nodemanager.pmem-check-enabledname>
<value>falsevalue>
property>
<property>
<name>yarn.application.classpathname>
<value>
/usr/local/hadoop/etc/hadoop,
/usr/local/hadoop/share/hadoop/common/*,
/usr/local/hadoop/share/hadoop/common/lib/*,
/usr/local/hadoop/share/hadoop/hdfs/*,
/usr/local/hadoop/share/hadoop/hdfs/lib/*,
/usr/local/hadoop/share/hadoop/mapreduce/*,
/usr/local/hadoop/share/hadoop/mapreduce/lib/*,
/usr/local/hadoop/share/hadoop/yarn/*,
/usr/local/hadoop/share/hadoop/yarn/lib/*
value>
property>
<property>
<name>yarn.nodemanager.local-dirsname>
<value>/home/data1/hadoop/yarn/local,/home/data2/hadoop/yarn/local,/home/data3/hadoop/yarn/local,/home/data4/hadoop/yarn/local,/home/data5/hadoop/yarn/local,/home/data6/hadoop/yarn/local,/home/data7/hadoop/yarn/local,/home/data8/hadoop/yarn/local,/home/data9/hadoop/yarn/local,/home/data10/hadoop/yarn/local,/home/data11/hadoop/yarn/local,/home/data12/hadoop/yarn/localvalue>
property>
<property>
<name>yarn.nodemanager.log-dirsname><value>/home/data1/hadoop/yarn/log,/home/data2/hadoop/yarn/log,/home/data3/hadoop/yarn/log,/home/data4/hadoop/yarn/log,/home/data5/hadoop/yarn/log,/home/data6/hadoop/yarn/log,/home/data7/hadoop/yarn/log,/home/data8/hadoop/yarn/log,/home/data9/hadoop/yarn/log,/home/data10/hadoop/yarn/log,/home/data11/hadoop/yarn/log,/home/data12/hadoop/yarn/logvalue>
property>
<property>
<name>yarn.timeline-service.enabledname>
<value>truevalue>
property>
<property>
<name>yarn.timeline-service.hostnamename>
<value>server1value>
property>
<property>
<name>yarn.timeline-service.http-cross-origin.enabledname>
<value>truevalue>
property>
<property>
<name>yarn.resourcemanager.system-metrics-publisher.enabledname>
<value>truevalue>
property>
修改workers
确认Hadoop版本,3.x以下的版本编辑slaves文件,3.x及以上的编辑workers文件
vi workers
修改workers文件,只保存所有agent节点的IP地址(可用主机名代替),其余内容均删除
server100
server101
server102
拷贝hadoop-3.2.3到server100、server101、server102节点的“/usr/local”目录。
scp -r /usr/local/hadoop-3.2.3 root@server100:/usr/local
scp -r /usr/local/hadoop-3.2.3 root@server101:/usr/local
scp -r /usr/local/hadoop-3.2.3 root@server102:/usr/local
分别登录到server100、server101、server102节点,为hadoop-3.2.3建立软链接。、
cd /usr/local
ln -s hadoop-3.2.3 hadoop
启动Hadoop集群
1、启动ZooKeeper集群。
分别在server100、server101、server102节点上启动ZooKeeper。
cd /usr/local/zookeeper/bin
./zkServer.sh start
2、启动JournalNode。
分别在server100、server101、server102节点上启动JournalNode。
只在第一次进行格式化操作时,需要执行2-4,完成格式化后,下次启动集群,只需要执行1、5、6。
cd /usr/local/hadoop/sbin
./hadoop-daemon.sh start journalnode
3、格式化HDFS
在server1节点上格式化HDFS。
hdfs namenode -format
启动hdfs
start-all.sh
访问web页面验证
http://server103:9870

上传并解压到/usr/local
建立软连接
tar -zxvf hbase-2.3.7-bin.tar.gz
ln -s hbase-2.3.7 hbase
添加hbase到环境变量
vim /etc/profile
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH
source /etc/profile
修改hbase配置文件
cd $HBASE_HOME/conf
vim hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_202
export HBASE_MANAGES_ZK=false
export HBASE_LIBRARY_PATH=/usr/local/hadoop/lib/native
vi hbase-site.xml
<property>
<name>hbase.rootdirname>
<value>hdfs://server1:9000/HBasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.tmp.dirname>
<value>/usr/local/hbase/tmpvalue>
property>
<property>
<name>hbase.unsafe.stream.capability.enforcename>
<value>falsevalue>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>server100:2181,server101:2181,server102:2181value>
property>
<property>
<name>hbase.wal.providername>
<value>filesystemvalue>
property>
修改regionservers
vim regionservers
server100
server101
server102
拷贝hdfs-site.xml
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/hdfs-site.xml
拷贝hbase-2.3.7到server100、server101、server102节点的“/usr/local”目录。
scp -r /usr/local/hbase-2.3.7 root@server100:/usr/local
scp -r /usr/local/hbase-2.3.7 root@server101:/usr/local
scp -r /usr/local/hbase-2.3.7 root@server102:/usr/local
分别登录到server100、server101、server102节点,为hbase-2.3.7建立软链接
cd /usr/local
ln -s hbase-2.3.7 hbase
启动hbase
/usr/local/hbase/bin/start-hbase.sh
访问验证
http://server103:16010/
