标签:ast config usr machine 命令 plugins 启动 ssh免密登录 一个
二 HDFS部署
主要步骤如下:
1. 配置Hadoop的安装环境;
2. 配置Hadoop的配置文件;
3. 启动HDFS服务;
4. 验证HDFS服务可用。
1‘ 查看是否存在hadoop安装目录 ls /usr/cstor/hadoop 如果没有,利用工具从本地导入hadoop安装文件。
查看jdk是否存在,如果没有同上方法导入
2’ 确认集群服务器之间可SSH免密登录
使用ssh工具登录到每一台服务器,执行命令ssh 主机名,确认每台集群服务器均可SSH免密登录。方法查看我的博客 >>
3‘ 查看hadoop_env.sh 文件,此文件只需修改JAVA_HOME
用vim编辑器修改此文件,将export JAVA_HOME=${JAVA_HOME}改为jdk的目录,例如在我的电脑上是export JAVA_HOME=/usr/local/jdk1.7.0_79/
4’ 指定HDFS主节点
此处需要配置文件 core-site.xml ,查看该文件,并标签之间修改如图所示的配置:
5‘ 拷贝该配置到集群其他子集上,首先查看你的集群所有子集
输入命令 for x in cat ~/data/2/machines
; do echo $x ; scp -r /usr/cstor/hadoop/etc $x:/usr/cstor/hadoop ; done; 实现拷贝
6’ 启动HDFS节点
首先在master服务器上格式化主节点hdfs namenode -format
其次配置slaves文件,将localhost修改为slave1~3;
最后在hadoop安装目录下统一启动HDFS;
用jps 命令在各个子集检验是否启动节点成功;
7‘hdfs配置成功后可以在client上向HDFS上传文件:
三 、读写HDFS文件
1’ 配置client服务器classpath
(1) 使用ssh工具登录client服务器,执行命令vi /etc/profile,编辑该文件。Linux 中/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量。修改设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序(.class文件)。
(2) 执行命令source /etc/profile,使刚才的环境变量修改生效;
2’ 在client服务器编写HDFS写程序
(1)在client服务器上执行命令vi WriteFile.java,编写HDFS写文件程序: WriteFile.java
(2)编译并打包HDFS写程序
使用javac编译刚刚编写的代码,并使用jar命令打包为hdpAction.jar
(3)执行HDFS写程序
在client服务器上使用hadoop jar命令执行hdpAction.jar:
查看是否已生成weather.txt文件,若已生成,则查看文件内容是否正确:
3‘ 在client服务器编写HDFS读程序
(1)在client服务器上执行命令vi ReadFile.java,编写HDFS读WriteFile.txt文件程序: ReadFile.java
(2)编译文件并打包,然后执行;
四 配置eclipase Hadoop插件并进行打包上传
1’ 首先下载eclipse hadoop插件,解压为jar文件,将其放置在eclipse文件位置的plugins文件夹下,例如D:\eclipse-standard-kepler-SR2-win32\eclipse\plugins
2‘ 配置本地的hadoop环境,需下载hadoop组件
3’ 打开eclipase新建project查看是否已经有Map/Reduce Project的选项。第一次新建Map/Reduce项目时,需要指定hadoop解压后的位置(即第二部组件解压的位置),在新建时项目填写界面右中间有hadoop的路径填写;
4’ 编写java文件,例如上述的ReadFile.java
5‘ 打包成jar文件,右击项目的export的jar file,然后选择所需的文件打包成jar文件,(此步骤是重点)
6’ 使用WinSCP、XManager或其它SSH工具的sftp工具上传刚刚生成的hdpAction.jar包至client服务器(我用的是工具),并在client服务器上使用hadoop jar命令执行hdpAction.jar,查看程序运行结果。
>运行该jar文件 hadoop jar ~/hdpAction.jar ReadFile
1 新建一个maven项目
打印根目录下的文件的名字
添加pom依赖
pom.xml代码
2 测试
TestHDFS.java
复制代码
package cn.itcast.hdfs;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
public class TestHDFS {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
//1首先需要一个hdfs的客户端对象
conf.set(“fs.defaultFS”, “hdfs://mini1:9000”);
FileSystem fs = FileSystem.get(conf);
RemoteIterator listFiles = fs.listFiles(new Path("/"), false);
//通过迭代器可以遍历出我们hdfs文件系统的根目录下的文件
while (listFiles.hasNext()) {
LocatedFileStatus fileStatus = listFiles.next();
Path path = fileStatus.getPath();
String fileName = path.getName();
System.out.println(fileName);
}
}
}
复制代码
运行结果如下图
参考博客:https://blog.csdn.net/weixin_44184668/article/details/90382414?
标签:ast config usr machine 命令 plugins 启动 ssh免密登录 一个
原文地址:https://www.cnblogs.com/wsq666/p/14187632.html