50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > 2 学大数据笔记-Xshelll工具连接 JDK Hadoop3安装 环境配置

2 学大数据笔记-Xshelll工具连接 JDK Hadoop3安装 环境配置

时间:2023-07-10 10:14:48

相关推荐

2 学大数据笔记-Xshelll工具连接 JDK Hadoop3安装 环境配置

一、xhell连接Centos7

1、下载xshell4和xftp4

2、安装xshell,xftp4

点击--->next--->free for home/school--->同意协议,next--->next---->next--->install--->finishxftp安装和xshell安装类似复制代码

3、xshell,xftp4使用

运行xshell--->点击新建(以后再连接就是选择哪个文件夹)--->主机:192.168.200.10,名称:basecontos7--->用户身份验证:用户名root,密码root--->确定--->创建出如下的会话连接(basecentos),点击连接第一次连接虚拟机时xshell需要保存连接用户的用户名和密码,下次登录时就可以不要在输入,方便后期登录。复制代码

登录成功

4、安装jdk

点击

这个图标,打开打开xftp工具,如下

把下载好的jdk1.8文件 拖动放在linux目录下

回到xshell窗口,输入 ll 可以看到刚才放入的jdk

执行: [root@localhost ~]# rpm -ivh jdk-8u211-linux-x64.rpm

开始安装jdk

5、安装jdk环境变量

执行: [root@localhost ~]# find / -name java #找到java的安装目录

最后两个,是java(jdk)的安装目录

执行: [root@localhost ~]# vi .bash_profile

如下图配置,JAVA_HOME路径对应上面java安装目录

wq!强制保存退出

#使用source命令使配置的环境变量生效

[root@localhost ~]# source .bash_profile

#使用java -version命令查看java环境变量配置是否成功

[root@localhost ~]# java -version

#显示java version "1.8.0_211" 表示java环境变量(JAVA_HOME)已经配置成功.

6、配置时间同步

#yum是个linux下的一个在线软件安装工具

执行: [root@localhost ~]# yum install -y ntpdate 等到显示Complete! 软件安装成功

#使用crontab -e命令添加定时时间同步配置

执行: [root@localhost ~]# crontab -e

7、安装网络工具net-tools

net-tools是linux系同下的一个网络故障排查工具,工作中我们经常使用它查看集群网络运行情况

执行: [root@localhost ~]# yum install -y net-tools

等到显示Complete! 软件安装成功

8、克隆虚拟机

在xhell输入 init 0 关闭centos7 ,断开xhell连接

在虚拟机管理软件VMware Workstation主界面

BaseCentos7--->右键--->管理--->克隆--->下一步--->虚拟机当前状态,下一步--->创建连接克隆,下一步--->输入名称node1,node2,node3,克隆三台--->完成

9、配置主机名,IP

分别启动三台虚拟机,node1,node2,node3

分别执行命令: hostnamectl set-hostname nodeX(虚拟机名,第一台node1,类推)

执行退出:logout ,在登陆,用户已经由localhost变成了node1,node2,node3

三节点ip规划如下

节点名称 ip

node1 192.168.200.11

node2 192.168.200.12

node3 192.168.200.13

修改ip配置;

执行: [root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

分别修改三台ip,修改完成后执行: systemctl restart network 重启网卡

在xshell中创建三台虚拟机连接会话:分别主机改成:192.168.200.11 192.168.200.12 192.168.200.13

连接三台虚拟机--->接收并保存--->node1,node2,node3分别显示小绿点,标示连接成功

二、root用户的免密登录配置

1、生成公钥和私钥

执行: [root@node1 ~]# ssh-keygen -t rsa #<--回车

2、配置hosts文件

#hosts文件中配置三台机器ip和主机名的映射关系,其他两台机器按照相同的方式操作.三台机器都相同配置

执行: [root@node1 ~]# vi /etc/hosts

3、拷贝公钥文件

(1). 将node1的公钥拷贝到node2,node3上

(2). 将node2的公钥拷贝到node1,node3上

(3). 将node3的公钥拷贝到node1,node2上

执行: [root@node1 ~]# ssh-copy-id -i node2

其他同理,分别在node2 node3上执行

4、验证免密登录

执行: [root@node1 ~]# ssh node2

登录成功,验证成功,分别在三台机器上验证

5、添加本地认证公钥到认证文件中,分别执行

#进入到root用户的家目录下[root@node1 ~]# cd ~[root@node1 ~]# cd .ssh/#讲生成的公钥添加到认证文件中[root@node1 .ssh]# cat id_rsa.pub >> authorized_keys复制代码

三、安装hadoop3

1、创建hadoop用户组和hadoop用户

#1.创建用户组hadoop[root@node1 ~]# groupadd hadoop#2.创建用户hadoop并添加到hadoop用户组中[root@node1 ~]# useradd -g hadoop hadoop#3.使用id命令查看hadoop用户组和hadoop用户创建是否成功[root@node1 ~]# id hadoop#用户uid 用户组id gid用户组名uid=1000(hadoop) gid=1000(hadoop) groups=1000(hadoop)#设置hadoop用户密码为hadoop[root@node1 ~]# passwd hadoopChanging password for user hadoop.New password: #输入hadoop后回车BAD PASSWORD: The password is shorter than 8 charactersRetype new password: #再次输入hadoop后回车passwd: all authentication tokens updated successfully.[root@node1 ~]# chown -R hadoop:hadoop /home/hadoop/[root@node1 ~]# chmod -R 755 /home/hadoop/#把root用户的环境变量文件复制并覆盖hadoop用户下的.bash_profile[root@node1 ~]# cp .bash_profile /home/hadoop/#免密登录[hadoop@node1 ~] su - hadoop[hadoop@node1 ~] source.bash_profile#使用su - hadoop切换到hadoop用户下执行如下操作[hadoop@node1 ~]# ssh-keygen -t rsa #<--回车Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): #<--回车#会在root用户的家目录下生成.ssh目录,此目录中会保存生成的公钥和私钥Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): #<--回车Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:gpDw08iG9Tq+sGZ48TXirWTY17ajXhIea3drjy+pU3g root@node1The key's randomart image is:+---[RSA 2048]----+|. . || * = ||. O o || . + . || o . + S. || ..+..o*. E||o o+++*.=o..||.=.+oo.=oo+o||+.. .oo.o=o+o |+----[SHA256]-----+You have new mail in /var/spool/mail/root[hadoop@node1 ~]# #修改.ssh目录权限[hadoop@node1 ~]$ chmod -R 755 .ssh/[hadoop@node1 ~]$ cd .ssh/[hadoop@node1 .ssh]$ chmod 644 *[hadoop@node1 .ssh]$ chmod 600 id_rsa[hadoop@node1 .ssh]$ chmod 600 id_rsa.pub [hadoop@node1 .ssh]$ #免密登录执行: su - hadoop 切换到hadoop下1. 将node1的公钥拷贝到node2,node3上2. 将node2的公钥拷贝到node1,node3上3. 将node3的公钥拷贝到node1,node2上#复制到node2上[hadoop@node1 ~]# ssh-copy-id -i node2#复制到node3上[hadoop@node1 ~]# ssh-copy-id -i node3#添加本地认证公钥到认证文件中[hadoop@node1 ~]# cd .ssh/#讲生成的公钥添加到认证文件中[hadoop@node1 .ssh]# cat id_rsa.pub >> authorized_keys复制代码

2、配置hadoop

在一台机器上配置好后复制到其他机器上即可,这样保证三台机器的hadoop配置是一致的.从xshell打开xftp4,上传hadoop3安装包,进行解压#1.创建hadoop安装目录[root@node1 ~]# mkdir -p /opt/bigdata#2.解压hadoop-3.1.2.tar.gz[root@node1 ~]# tar -xzvf hadoop-3.1.2.tar.gz -C /opt/bigdata/#配置环境变量[hadoop@node1 ~]# su - hadoop[hadoop@node1 ~]# vi .bash_profile # .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsJAVA_HOME=/usr/java/jdk1.8.0_211-amd64HADOOP_HOME=/opt/bigdata/hadoop-3.1.2PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport JAVA_HOMEexport HADOOP_HOMEexport PATH~ :wq!#验证环境变量#1.使环境变量生效[hadoop@node1 ~]# source .bash_profile #2.显示hadoop的版本信息[hadoop@node1 ~]# hadoop version#3.显示出hadoop版本信息表示安装和环境变量成功.Hadoop 3.1.2Source code repository /apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9aCompiled by sunilg on -01-29T01:39ZCompiled with protoc 2.5.0From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9This command was run using /opt/bigdata/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar[hadoop@node1 ~]# 复制代码

3、配置hadoop-env.sh

这个文件只需要配置JAVA_HOME的值即可,在文件中找到export JAVA_HOME字眼的位置,删除最前面的#

export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64[root@node1 ~]# cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/You have new mail in /var/spool/mail/root[root@node1 hadoop]# pwd/opt/bigdata/hadoop-3.1.2/etc/hadoop[root@node1 hadoop]# vi hadoop-env.sh 复制代码

4、配置core-site.xml

切换到cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下

[root@node1 ~]# cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/[root@node1 hadoop]# vi core-site.xml<configuration><!-- 指定hdfs的namenode主机的hostname --><property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><!-- io操作流的配置 --><property><name>io.file.buffer.size</name><value>131072</value></property><!--hadoop集群临时数据存储目录--><property><name>hadoop.tmp.dir</name><value>/opt/bigdata/hadoop-3.1.2/tmpdata</value></property></configuration>复制代码

wq!保存

5、配置hdfs-site.xml

[root@node1 hadoop]# vi hdfs-site.xml<configuration><!--namenode元数据存储目录--><property><name>dfs.namenode.name.dir</name><value>/opt/bigdata/hadoop-3.1.2/hadoop/hdfs/name/</value></property><!--指定block块的的大小--><property><name>dfs.blocksize</name><value>268435456</value></property><!-- --><property><name>dfs.namenode.handler.count</name><value>100</value></property><!--工作节点的数据块存储目录 --><property><name>dfs.datanode.data.dir</name><value>/opt/bigdata/hadoop-3.1.2/hadoop/hdfs/data/</value></property><!--block的副本数--><property><name>dfs.replication</name><value>3</value></property>复制代码

6、配置mapred-site.xml

[root@node1 hadoop]# vi mapred-site.xml<!--指定运行mapreduce的环境是yarn --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.application.classpath</name><value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*, $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value></property></configuration>复制代码

7、配置yarn-site.xml

[root@node1 hadoop]# vi yarn-site.xml<configuration><!--指定resourcemanager的位置--><property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.address</name><value>node1:18040</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>node1:18030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>node1:18025</value></property><property><name>yarn.resourcemanager.admin.address</name><value>node1:18141</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>node1:18088</value></property></configuration>复制代码

8、编辑works

此文件用于配置集群有多少个数据节点,我们把node2,node3作为数据节点,node1作为集群管理节点.[root@node1 hadoop]# vi workers #将localhost这一行删除掉node2node3~ 复制代码

四、远程复制hadoop到集群机器

#1.进入到root用户家目录下[root@node1 hadoop]# cd ~#2.使用scp远程拷贝命令将root用户的环境变量配置文件复制到node2[root@node1 ~]# scp .bash_profile root@node2:~.bash_profile 100% 338 566.5KB/s 00:00 #3.使用scp远程拷贝命令将root用户的环境变量配置文件复制到node3[root@node1 ~]# scp .bash_profile root@node3:~.bash_profile 100% 338 212.6KB/s 00:00 [root@node1 ~]# #4.进入到hadoop的share目录下[root@node1 ~]# cd /opt/bigdata/hadoop-3.1.2/share/You have new mail in /var/spool/mail/root[root@node1 share]# lltotal 0drwxr-xr-x 3 1001 1002 20 Jan 29 12:05 docdrwxr-xr-x 8 1001 1002 88 Jan 29 11:36 hadoop#5.删除doc目录,这个目录存放的是用户手册,比较大,等会儿下面进行远程复制的时候时间比较长,删除后节约复制时间[root@node1 share]# rm -rf doc/[root@node1 share]# cd ~You have new mail in /var/spool/mail/root[root@node1 ~]# scp -r /opt root@node2:/[root@node1 ~]# scp -r /opt root@node3:/#使集群所有机器环境变量生效(23都需要)[hadoop@node2 hadoop-3.1.2]# cd ~[hadoop@node2 ~]# source .bash_profile [hadoop@node2 ~]# hadoop versionHadoop 3.1.2Source code repository /apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9aCompiled by sunilg on -01-29T01:39ZCompiled with protoc 2.5.0From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9This command was run using /opt/bigdata/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar[hadoop@node2 ~]# 复制代码

五、修改hadoop安装目录的权限

node2,node3也需要进行如下操作#1.修改目录所属用户和组为hadoop:hadoop[root@node1 ~]# chown -R hadoop:hadoop /opt/You have new mail in /var/spool/mail/rootYou have new mail in /var/spool/mail/root#2.修改目录所属用户和组的权限值为755[root@node1 ~]# chmod -R 755 /opt/[root@node1 ~]# chmod -R g+w /opt/[root@node1 ~]# chmod -R o+w /opt/[root@node1 ~]#复制代码

6、格式化hadoop

#切换[root@node1 ~]# su - hadoop[hadoop@node1 hadoop]$ hdfs namenode -format复制代码

7、启动集群

[hadoop@node1 ~]$ start-all.sh WARNING: Attempting to start all Apache Hadoop daemons as hadoop in 10 seconds.WARNING: This is not a recommended production deployment configuration.WARNING: Use CTRL-C to abort.Starting namenodes on [node1]Starting datanodesStarting secondary namenodes [node1]Starting resourcemanagerStarting nodemanagers#使用jps显示java进程[hadoop@node1 ~]$ jps40852 ResourceManager 40294 NameNode40615 SecondaryNameNode41164 Jps[hadoop@node1 ~]$在浏览器地址栏中输入:http://192.168.200.11:9870查看namenode的web界面.(3.0版本端口号是9870 ,2.0版本是50070),能打开如下页面,说明启动成功复制代码

8、运行mapreduce程序

#1.使用hdfs dfs -ls / 命令浏览hdfs文件系统,集群刚开始搭建好,由于没有任何目录所以什么都不显示.[hadoop@node1 ~]$ hdfs dfs -ls /#2.创建测试目录[hadoop@node1 ~]$ hdfs dfs -mkdir /test #3.在此使用hdfs dfs -ls 发现我们刚才创建的test目录[hadoop@node1 ~]$ hdfs dfs -ls /Found 1 itemsdrwxr-xr-x - hadoop supergroup0 -06-30 17:23 /test#4.使用touch命令在linux本地目录创建一个words文件[hadoop@node1 ~]$ touch words#5.文件中输入如下内容[hadoop@node1 ~]$ vi wordsi love youare you ok#6.将创建的本地words文件上传到hdfs的test目录下[hadoop@node1 ~]$ hdfs dfs -put words /test#7.查看上传的文件是否成功[hadoop@node1 ~]$ hdfs dfs -ls -r /testFound 1 items-rw-r--r-- 3 hadoop supergroup 23 -06-30 17:28 /test/words#/test/words 是hdfs上的文件存储路径 /test/output是mapreduce程序的输出路径,这个输出路径是不能已经存在的路径,mapreduce程序运行的过程中会自动创建输出路径,数据路径存在的话会报错,这里需要同学注意下.[hadoop@node1 ~]$ hadoop jar /opt/bigdata/hadoop-3.1.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /test/words /test/output[hadoop@node1 ~]$ hdfs dfs -ls -r /test/outputFound 2 items-rw-r--r-- 3 hadoop supergroup 28 -06-30 17:32 /test/output/part-r-00000-rw-r--r-- 3 hadoop supergroup0 -06-30 17:32 /test/output/_SUCCESS[hadoop@node1 ~]$ hdfs dfs -text /test/output/part-r-00000are1i1love1ok1you2复制代码

自此,hadoop3三节点集群搭建启动完成,下一个学习搭建hadoop2.0三节点集群

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。