Hadoop环境搭配
前面是环境搭建,最后面是我在搭建过程遇到的问题!
小弟不才,只能总结出这份资料。
网络配置环境:/etc/sysconfig/network-scripts
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6ebbf8d9-7be0-42fe-8818-47ccccf2bd4a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.201.123
NETMASK=255.255.255.0
GATEWAY=192.168.201.2
DNS1=8.8.8.8
DNS2=223.5.5.5
重启网卡:service network restart
搜索安装包:yum search 。。。。。
安装:yum -y install 。。。。。
配置Java需要配置到bin目录下
Hadoop 需要配置到bin和sbin
修改主机名路径:/etc/hosts(改完之后需要重启)
环境配置:/etc/profile
刷新环境变量:source /etc/profile
hadoop配置: hadoop下的etc文件
core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop/tmp</value>#路径
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://IP地址或用户名:9000</value>
</property>
hdfs-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop/hdfs/name</value>#存放的路径,按需求改
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop/hdfs/data</value>#存放的路径按需求改
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>192.168.92.35:9001</value>#改ip
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>
slave:去掉主机名,加上子节点机名
hadoop-env.sh中的环境变量
export JAVA_HOME=加上JAVA_HOME的路径
免密操作:ssh-keygen -t rsa
传密钥:sh-copy-id root@用户名(或IP地址)
给其他主机传文件:
scp 文件 root@目的机名:路径
传目录: scp -r 目录 root@目的机:/路径
防火墙(分布式需要全部关闭防火墙)
启动: systemctl start firewalld
关闭: systemctl stop firewalld
格式化:hdfs namenode -format
服务:
启动:start-all.sh
关闭:stop-all.sh
给Hadoop传文件:hdfs dfs -put a.txt /
hdfs dfs -put 文件 Hadoop目标位置
使用jar包命令:hadoop jar aa.jar wordcount /a.txt /out
解释:hadoop jar jar包 类名(如果有包则要加 包名. ) 输入文件 输出目的位置
查看结果:hdfs dfs -cat /out/part-r-00000
解释:hdfs dfs -cat 目录/part-r-00000
在完全分布式中,wordcount任务可能会停在: INFO mapreduce.Job: Running job: job_1609081522418_0002
可以尝试修改成以下配置:
1、hadoop/etc/capacity-scheduler.xml 将0.1改成0.5
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.1</value>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.5</value>
2、capacity-scheduler.xml中添加以下配置:
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
3、重启系统
如果子节点上缺少datenode 可以尝试将/hadoop/hdfs删除
如果自己导的wordcount包报代码错误,可以用官方的jar包使用(谨考试急用)
位置:/user/hadoop-2.7.7/share/hadoop/mapreduce 的 hadoop-mapreduce-examples-2.7.7.jar
报错:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/user/hadoop-2.7.7/share/hadoop/common/lib/hadoop-auth-2.7.7.jar) to method sun.security.krb5.Config.getInstance()
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.security.authentication.util.KerberosUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
可能是因为我jdk版本太高导致的问题,暂时不影响使用。(如果有如果的大神知道的话,希望可以告诉我怎么回事,谢谢!!)