在虚拟机上执行IDEA代码

--在pom.xml中修改<build>
<build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

1.将输入、输出路径存到数组args中

 

#输入路径
D:\大数据实践\words.txt

#输出路径
D:\大数据实践\wordcount_output

两个路径中间用“空格”隔开 

 

2.运行代码后,打包

先删除原有的target包,再点击“1”处,打包后重新出现“2”,有“3”代表成功

打开jar包所在的文件夹

第二个jar包比第一个多出External Libraries中的内容

将文件重命名拖到 /opt/jar下

--创建jar文件夹
[root@bigdata02 opt]# mkdir jar

com.igeekhome.mapreduce.wordcount.WordCountDriver

3.将words.txt放到/opt/file下

--创建/input文件夹
hadoop fs -mkdir /input

--将words.txt文件转移到/input文件夹中
hadoop fs -put /opt/file/words.txt /input

4.在虚拟机上执行IDEA上的代码

 hadoop jar /opt/jar/mapreduce_demo.jar com.igeekhome.mapreduce.wordcount.WordCountDriver /input /output

报错:(内存限制问题)解决:先关闭dfs、yarn服务再修改以下两个文件,三个虚拟机的文件都修改完成后,重新开启服务,再执行操作

在mapred-site.xml中添加如下内容

<!-- 是否对容器强制执行虚拟内存限制 -->
 <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>Whether virtual memory limits will be enforced for 
containers</description>
    </property>
 
 
 <!-- 为容器设置内存限制时虚拟内存与物理内存之间的比率 -->
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>5</value>
        <description>Ratio between virtual memory to physical memory when 
setting memory limits for containers</description>
    </property>

在yarn-site.xml中添加如下内容

<property>
   <name>yarn.scheduler.minimum-allocation-mb</name>
   <value>2048</value>
   <description>default value is 2048</description>
</property>

先修改一台虚拟机的文件内容,再拷贝到另外两台上

scp /opt/softs/hadoop3.1.3/etc/hadoop/mapred-site.xml root@bigdata03:/opt/softs/hadoop3.1.3/etc/hadoop/

scp /opt/softs/hadoop3.1.3/etc/hadoop/mapred-site.xml root@bigdata04:/opt/softs/hadoop3.1.3/etc/hadoop/

scp /opt/softs/hadoop3.1.3/etc/hadoop/yarn-site.xml root@bigdata03:/opt/softs/hadoop3.1.3/etc/hadoop/

scp /opt/softs/hadoop3.1.3/etc/hadoop/yarn-site.xml root@bigdata04:/opt/softs/hadoop3.1.3/etc/hadoop/
--检查是否拷贝成功
cat /opt/softs/hadoop3.1.3/etc/hadoop/mapred-site.xml
cat /opt/softs/hadoop3.1.3/etc/hadoop/yarn-site.xml

开启服务,重新运行代码

 hadoop jar /opt/jar/mapreduce_demo.jar com.igeekhome.mapreduce.wordcount.WordCountDriver /input /output

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在本地IDEA上连接到虚拟机上的Flume,您需要执行以下步骤: 1. 在虚拟机上安装Flume,并确保Flume的配置文件已经启用了网络接收器(Netcat或Avro)。 2. 确保虚拟机上的Flume可以接受来自本地计算机的连接。可以通过运行以下命令来测试: ``` telnet <虚拟机IP地址> <Flume监听端口> ``` 如果连接成功,则表示Flume已经可以接受来自本地计算机的连接。 3. 在本地计算机上安装telnet客户端,以便连接到虚拟机上的Flume。如果您的计算机上没有安装telnet客户端,则可以使用其他工具,如Netcat等。 4. 在本地计算机上打开终端或命令行界面,并运行以下命令: ``` telnet <虚拟机IP地址> <Flume监听端口> ``` 这将连接到虚拟机上的Flume。您可以在终端或命令行界面输入Flume事件,以测试是否可以将事件发送到Flume。 5. 如果连接成功,则可以在本地计算机上的IDEA配置Flume客户端,以便从本地计算机向虚拟机上的Flume发送事件。您可以使用Flume SDK或其他Flume客户端库来发送事件。 例如,您可以使用以下Java代码来向Flume发送事件: ```java import org.apache.flume.Event; import org.apache.flume.EventDeliveryException; import org.apache.flume.api.RpcClient; import org.apache.flume.api.RpcClientFactory; import org.apache.flume.event.EventBuilder; import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; public class FlumeClient { public static void main(String[] args) throws EventDeliveryException { RpcClient client = RpcClientFactory.getDefaultInstance("虚拟机IP地址", <Flume监听端口>); client.activate(); Map<String, String> headers = new HashMap<String, String>(); headers.put("key", "value"); String body = "Hello, Flume!"; Event event = EventBuilder.withBody(body, Charset.forName("UTF-8"), headers); client.append(event); client.close(); } } ``` 运行此代码将在本地计算机上向虚拟机上的Flume发送事件。您可以根据需要修改代码的IP地址和端口号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值