可以使用SecureCRT 或者 Xshell 连接到虚拟机,我用SecureCRT连接不到虚拟机,许久找不到解决办法,重装四次SecureCRT依然无法连接到虚拟机,所以改用Xshell连接到虚拟机进行实验。
1.关闭防火墙
显示防火墙状态 firewall-cmd --state 临时关闭防火墙,每次开机重新开启防火墙
systemctl stop firewalld禁止防火墙服务
systemctl disable firewalld再次运行firewall-cmd --state
显示not running即可
2.传输JDK和HADOOP压缩包 使用 Xftp 将下面两个包从本地当前路径(Windows)传从到当前路径(Linux)
jdk-8u121-linux-x64.tar.gz hadoop-2.7.3.tar.gz
JDK和HADOOP压缩包下载链接:https://pan.baidu.com/s/1BVXasc7O5v0kfr9wdYIF_A 提取码:utbg
Xftp下载地址:https://www.netsarang.com/zh/xftp-download/
3.解压JDK、HADOOP包
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module4.配置JDK并生效 打开配置文件
vi /etc/profile做如下修改
export JAVA_HOME= usr/local/hadoop /jdk1.8.0_121 export PATH=$JAVA_HOME/bin:$PATH保存并退出,生效配置
source /etc/profile接着运行命令javac检验是否成功。
5.配置HADOOP并生效 打开配置文件
vi /etc/profile做如下修改
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH保存并退出,生效配置
source /etc/profile接着运行命令hadoop检验是否成功。
6.单机模式配置hadoop -env.sh
hadoop-env.sh文件修改
vi /opt/module/hadoop-2.7.3/etc/hadoop/hadoop-env.sh修改第25行 export JAVA_HOME=/opt/module/jdk1.8.0_121
显示行号 Esc :set number 取消行号 Esc :set nonumber
保存并退出
本地模式没有HDFS和Yarn,配置JDK后MapReduce能够运行java程序。
7.运行自带程序wordcount
转入wordcount所在路径
cd /opt/module/hadoop-2.7.3/share/hadoop/mapreduce创建In.txt文件,作为输入文件
touch in.txt如果in.txt是空文件,运行vi in.txt,输入内容作为被统计词频的输入文件 输出目录/output必须不存在,程序运行后自动创建
运行wordcount
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/运行成功之后,进入/output目录,打开文件part-r-00000查看计数结果
一定要完成上述1-6安装配置
进入Hadoop路径
cd /usr/local/hadoop/hadoop-2.7.3/etc/hadoop①~④配置文件均在<configuration与 </configuration之间添加如下property:
①core-site.xml
<!--配置HDFS主节点,namenode的地址,9000是RPC通信端口--> <property> <name>fs.defaultFS</name> <value>hdfs:// iZuf6hb8srmhxeqc7i7ysvZ:9000</value> </property> <!--配置HDFS数据块和元数据保存的目录,一定要修改--> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.3/tmp</value> </property>②hdfs-site.xml
<!--注释配置数据块的冗余度,默认是3--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--secondaryNameNode的主机地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>bigdata128:50090</value> </property>③mapred-site.xml
该配置文件不存在,先复制
cp mapred-site.xml.template mapred-site.xml再添加如下property
<!--配置MR程序运行的框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>④yarn-site.xml
<!--配置Yarn的节点--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata128</value> </property> <!--NodeManager执行MR任务的方式是Shuffle洗牌--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>Slaves文件里使用默认localhost,或者添加 bigdata128(既是NameNode又是DataNode) 注:如果Slaves文件为空,就没有DataNode和NodeManager。
⑤修改\etc\hosts配置文件
vi \etc\hosts注释掉已有内容,添加虚拟机的ip及对应主机名(修改为自己的虚拟机IP和主机名) 注:查询虚拟机的ip ip addr 查询主机名 hostname
192.168.128.130 bigdata128⑥修改\etc\hostname配置文件
vi \etc\hostname添加虚拟机的主机名:
bigdata128重启虚拟机,配置生效
注:如果不是第一次格式化,格式化之前先删除/opt/module/hadoop-2.7.3/下面的tmp、logs两个目录
如果启动之前已经启动过,启动之前先停止 stop-all.sh
①执行ll,查看/opt/module/hadoop-2.7.3/tmp/dfs目录,如下图所示,则正确。 ②执行jps,如下图所示 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager 如果全部启动,伪分布式配置成功。
上传本地当前路径下的in.txt文件 到hdfs的/adir目录下。
hdfs dfs -put in.txt /adir运行
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/在 ip:50070 网页中查看/user/root/output/part-r-00000文件里的词频统计结果。
生成公、私密钥对
ssh-keygen -t rsa按3次回车键
查看 .ssh 下的 rd_rsa (生成的私钥文件)和rd_rsa.pub(生成的公钥文件)
cd ~/.ssh复制至远程服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata128查看生成的 authorized_keys