window环境远程连接hadoop2.8.3并运行mapreduce(1)
环境:win7 vmware myeclipse hadoop2.8.3(http://archive.apache.org/dist/hadoop/)
windows下运行mapreduce所需的库文件(hdfs操作不需要)https://github.com/steveloughran/winutils
Linux环境:
仅主机模式:编辑菜单->虚拟网络编辑器-> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok
回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.1.100 子网掩码:255.255.255.0 -> 点击确定
虚拟机 -> 右键 -> settings -> network adapter -> host only(仅主机模式) -> ok
首次安装虚拟机设置时间与用户:date查看当前时间 date -s 12:12:12设置时分秒 hwclock -w写入BIOS useradd hadoop增加用户hadoop passwd hadoop设置密码 修改主机名:vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= yourname 修改IP(按下面模板写,删掉原来中存在的多余项):vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:3C:BF:E7"#不用改原来的
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"#不用改原来的
IPADDR="192.168.1.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
修改主机名和IP的映射关系(按下面模板写,删掉原来中存在的多余项):vi /etc/hosts
192.168.1.101 localhost yourname
#127.0.0.1 localhost yourname(要注释掉,否则有异常哦)
关闭防火墙
#查看防火墙状态service iptables status
#关闭防火墙service iptables stop
#查看防火墙开机启动状态chkconfig iptables --list
#关闭防火墙开机启动chkconfig iptables off
重启Linux
reboot安装JDK
将java添加到环境变量中vim /etc/profile
#在文件最后添加
export JAVA_HOME=/home/hadoop/app/jdk
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile
安装hadoop2.8.3
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
伪分布式需要修改5个配置文件
配置hadoop
第一个:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/home/*/java/jdk
第二个:core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://yourname:9000</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
第三个:hdfs-site.xml(有重复的不用删掉,新建dfs、namenode、datanode文件夹)
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/app/hadoop-2.8.3/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/app/hadoop-2.8.3/dfs/datanode</value>
</property>
第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>yourname:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>yourname:19888</value>
</property>
第五个:yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>yourname</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
将hadoop添加到环境变量vim /etc/proflie
export JAVA_HOME=/home/*/java/jdk
export HADOOP_HOME=/home/*/hadoop-2.8.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource /etc/profile
配置ssh免登陆
#进入到我的home目录
cd ~ssh-****** -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上(如本机)
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys格式化namenode(是对namenode进行初始化,看到successful之前新建dfs/namenode中会有新文件出来)
hadoop namenode -format
启动hadoop
先启动HDFS
sbin/start-dfs.sh
再启动YARN
sbin/start-yarn.sh
验证是否启动成功
使用jps命令验证
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
http://192.168.1.101:50070 (HDFS管理界面,192.168.1.101为yourname对应ip)
http://192.168.1.101:8088 (MR管理界面)日志:http://192.168.1.101:50070/logs/可查看hadoop运行中有木有报错,有报错就去百度吧,没报错就可以学习hdf命令和运行自带的wordcount了
eclipse远程dfs:插件hadoop-eclipse-plugin-2.8.3.jar(下载地址https://download.****.net/download/elmo66/10634446),eclipse设置windows上hadoop位置(不需要改配置文件),设置windows环境变量HADOOP_HOME与path
新建系统变量HADOOP_USER_NAME = hadoop(不配置小心异常哈)
需要将advanced parameters中的local、localhost、0.0.0.0改为192.168.1.101,tmp目录要与hadoop配置文件中保持一致
参考:
之后就可以用java编写操作dfs且DFS locations中可以看到dfs文件信息
如果本篇博客对你有帮助,请记得打赏给小哥哥哦丷丷。