VMWare安装Ubuntu安装hadoop集群
VMWare安装Ubuntu安装hadoop集群
本文记载许多常见问题的解决方案,当遇到问题时,请先往下看,是否有解决方案,若无请自行百度查找。
VMware Workstation安装
安装器链接如下。
安装器
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.2.0-18760230.exe
可自定义安装路径,建议安装在D盘。在D盘新建一个VMWare的文件夹
双击下载的安装器。安装过程简单,无脑下一步即可。
选择刚刚新建的文件夹即可。
耐心等待安装完成。
若是安装出现问题,可参考以下链接的解决方法
https://www.bilibili.com/video/BV1eo4y1o77M?spm_id_from=333.999.0.0
安装ubuntu系统
首先到官网下载镜像文件
ubuntu镜像
https://ubuntu.com/download/desktop
自行选择下载一个版本,笔者下载的是20.04.
虚拟机安装ubuntu网上有许多教程,故此文不在赘述。附上一个教程链接:
若点击自定义硬件无教程所示结果,则直接点击完成。接着看以下操作
然后如图所示点击:
点击浏览选择之前安装的ubuntu20.04.iso的镜像文件。
若是在安装过程中,屏幕显示不全,看不到安装步骤中的continue,back。则退出安装,选择try ubuntu。点击右上角设置,修改显示或display,修改分辨率,并保存分辨率设置。然后再安装ubuntu。由于版本不同,语言不同,显示的界面可能有所不同,总之修改分辨率并保存即可。
此处参考了大佬的方法。
安装完后 修改区域和语言 点击管理安装语言 一般会自动检测安装,需要一定的安装时间,请耐心等待。
选择汉语后会有一个restart绿色按钮,点击重启,即可修改语言。
重启后会询问是否修改以前的文件名,选择不修改,并且选择保留的旧文件名。
如下图所示。
Win+a ,切换到全部应用,点击图标 软件和更新,修改软件源,点击如下,选择其他服务器,选择中国服务器,推荐阿里云。
如有提示有软件更新,直接更新即可。ubuntu系统到此安装完毕
ubuntu中安装java
在ubuntu系统,使用快捷键
Ctrl +alt +t打开终端,输入以下指令,创建路径,需要输入密码,输入密码即可。在终端中输入命令
sudo mkdir /usr/lib/jvm
到官网下载此java安装包,下载此安装包需要注册用户用QQ邮箱注册一个账号即可。名字可随意输入。链接如下
java安装
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
选择下载那个jdk-8u311-linux.tar.gz,或者其他新版本也可。下载后选择保存
然后切换到Downloads路径下,用ls可以查看目录下的文件
cd Downloads
输入以下命令,输入tab键可自动补全
sudo tar -zxvf jdk-8u311-linux-x64.tar.gz -C /usr/lib/jvm
解压完成后,修改环境变量 ,输入以下命令
sudo gedit ~/.bashrc
在文件中追加以下代码
#set oracle jaca environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_311
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
保存后,关掉编辑窗口。
加载环境变量
source ~/.bashrc
测试java是否正确安装配置:
java -version
出现以上结果代表java安装正确。
安装ssh并设置免密登录
安装ssh
sudo apt-get install ssh
安装pdsh
sudo apt-get install pdsh
设置ssh为pdsh的默认rcmd
sudo echo ssh >> /etc/pdsh/rcmd_default
若提示权限不够或者其他,请继续往下看
输入以下命令,查看pdsh
pdsh -q -w localhost
若Rcmd type 为ssh 则配置成功,若rcmd type还是 rsh则配置失败,那么进行以下处理. 输入
sudo gedit ~/.bashrc
添加以下内容:
export PDSH_RCMD_TYPE=ssh
如下图所示:
保存后再执行以下命令
source ~/.bashrc
重新输入
pdsh -q -w localhost
有以下结果,配置成功
配置ssh免密登录
输入以下指令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
以上命令是产生公私密钥,运行成功产生目录在用户主目录下的~/.ssh目录中,如下:
id_rsa.pub为公钥,id_rsa为私钥,紧接着将公钥文件导入到authorized_keys文件,实现免密登录本机(localhost)这个步骤是必须的 。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
单机测试免密登录
ssh localhost
若是登录失败,提示port 22 connection refused,则输入以下命令
sudo apt-get install openssh-server
再次登录. 第一次登录,会要你确认,直接输入yes 即可。记得输入 exit 退出登录.
关掉此虚拟机,克隆两台虚拟机
右键->管理->克隆 下一页 选择 完整克隆
新建新的文件夹存储或者用默认目录也可。 虚拟机名称自行修改。
若是你 需要删除虚拟机 关机后 右键 ->管理->从磁盘中删除 即可。
分别修改三台虚拟机的hostname,分别为master,slave1,slave2,注意三台都需要修改 重启后生效 修改完后记得重启 ,重启,重启
sudo gedit /etc/hostname
删掉原来的内容leo-virtual-machine,换成master Ctrl+S 保存,退出编辑窗口
输入以下命令,重启
reboot
通过ifconfig获取三台虚拟机的ip地址,如下图所示,注意三台虚拟机都需执行此命令,获取ip地址 。这里笔者就不贴三张图了。
如果输入ifconfig ,提示没有命令 ,直接安装即可。命令如下
sudo apt-get install net-tools
接着输入
ifconfig
修改hosts文件
sudo gedit /etc/hosts
输入三台虚拟机的ip 和hostname 如下图所示。注意 127.0.1.1这行需要加#注释掉,或者删掉。三台虚拟都要执行此操作。记得保存。
Master 免密登录slave1 slave2
分别在两台slave虚拟中执行以下两条命令,注意两台slave虚拟机都需要执行,注意是在slave虚拟机执行,其中leo@master @前面是用户名,后面是主机名hostname。
scp leo@master:~/.ssh/id_rsa.pub ~/.ssh/master_rsa.pub
cat ~/.ssh/master_rsa.pub >> ~/.ssh/authorized_keys
结果应当如下,笔者做教程时未保存结果图,但是成功结果应当如下所示。
配置完成后,回到master主机,输入
ssh slave1
结果应当如下,笔者做教程时未保存结果图,但是成功结果应当如下所示
登陆成功后 输入exit 退出
再登录slave2
ssh slave2
登录成功后 exit 退出
安装hadoop
安装hadoop 只需要在master主机中安装即可,后面会通过节点复制。
链接如下
hadoop
https://hadoop.apache.org/releases.html
安装后选择保存
创建hadoop目录
mkdir ~/hadoop
cd到Downloads目录,可以看到下载的hadoop包,:
输入以下命令
注意命令应与你下载的版本相同 Tab键可自动补全
tar -zxvf hadoop-3.2.2.tar.gz -C ~/hadoop
安装完成后修改环境变量 输入以下命令修改环境变量
sudo gedit ~/.bashrc
增加以下内容:注意/home/leo中的leo是你自己的用户名,自行修改 hadoop-3.x.x版本号也自行修改.
# set Hadoop environment
export HADOOP_HOME=/home/leo/hadoop/hadoop-3.2.2
export HADOOP_COMMON_LIB_NATIVE=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
输入以下命令,加载环境变量
source ~/.bashrc
输入hadoop命令,有以下结果,配置成功
进入home目录,
一直点进hadoop-3.2.2/etc/hadoop整个文件夹中,若有文件没现实,点击显示隐藏文件。
分别对配置文件进行修改,修改以下文件
修改hadoop-env.sh文件 加上java目录 注意前面的#需要删除 如下图所示
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_311
修改 core-site.xml 文件 注意此处修改,以下内容需要按照自己的安装版本和目录修改。
例如 /home/leo/hadoop/hadoop-3.2.2/tmp
leo换成自己的用户名,版本号换成自己的版本号
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>hdfs namenode port</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/leo/hadoop/hadoop-3.2.2/tmp</value>
<description>A base for other temporary directories</description>
</property>
</configuration>
配置hdfs-site.xml文件 此处修改也需要自行修改目录,同上
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/leo/hadoop/hadoop-3.2.2/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/leo/hadoop/hadoop-3.2.2/dfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<final>true</final>
</property>
<property>
<name>dfs.webhdfs.enable</name>
<value>true</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>master:50090</value>
</property>
</configuration>
配置mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置yarn-site.xml文件
<configuration>
<!-- Site specific YARN configuration property -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodmanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置workers文件 加入三台主机名 主机名必须一致,与你在hosts中写入的hostname必须一致
向slave虚拟机复制hadoop节点 以下命令自行修改,此为格式: 用户名@主机名 然后在master输入以下命令 leo是用户名,自行修改为自己的用户名
scp -r hadoop leo@slave1:~/
scp -r hadoop leo@slave2:~/
在master虚拟机 切换到 cd hadoop/hadoop-3.2.2 中执行以下命令 格式化namenode
cd hadoop/hadoop-3.2.2 执行以下命令,下面所有命令都应在此路径下执行才可。
bin/hdfs namenode -format
启动hdfs
sbin/start-dfs.sh
输入jps查看节点,有图中所示结果,则配置正确。
若是只显示 2696 Jps 这种,或者只有一两个节点。则是之前的配置文件修改错误,请回去仔细检查修改,并且两条slave虚拟机中hadoop的配置文件也需要修改,因为slave的hadoop是通过master复制出来的。
到slave虚拟机输入jps查看
在master浏览器中输入 htpp://localhost:9870得到以下结果
以下别的端口都应有界面
secondnamenode url: master(ip):50090
datanode url: workers(ip):9864
启动YARN:
sbin/start-yarn.sh
通过本地8088端口查看
url localhost:8088
启动历史记录服务,jps查看服务是否开启
bin/mapred --daemon start historyserver
到端口 localhost:19888
查看Web应用的运行情况
到这基本安装完成。
上传文件测试
新建文件夹
bin/hdfs dfs -mkdir /newDir
在Document目录下新建testHDFS.txt
cd ~/Document
gedit testHDFS.txt
输入内容,随意输入即可
上传文件
注意以下命令需要切换到hadoop路径下执行
bin/hdfs dfs -put ~/Documents/testHDFS.txt /newDir
到master 的localhost:9870中查看文件
如下图所示,点击hdfsDir
再点击testHDFS.txt
点击head the file 得到文件内容。如下如所示,到此安装结束。Hadoop还提供计算功能,可使用mapreduce模块wordcount实现单词计数,十分简单,读者可自行百度。