首先我们需要安装几个常用的软件
这里的shell我选的是zsh,因为这个语法兼容bash
1 | # 建立一个hadoop用户 |
下面开始分布式环境的配置
因为分布式需要多态机器
可以把上面这个克隆一下,这样就避免了很多的重复配置
我现在有两台虚拟机
ip分别为[ip:1]
和[ip:2]
([ip:1]
和[ip:2]
替换为真实ip,如192.168.168.3)
把[ip:1]
作为master
,[ip:2]
作为slave1
首先修改/etc/hostname
文件[ip:1]
的机器改为master
, [ip:2]
的机器改为slave1
再在/etc/hosts
中添加ip映射1
2[ip:1] master
[ip:2] slave1
然后master
的机器需要可以ssh
进slave
机器,所以还需要把master
的.ssh/id_rsa.pub
的内容加进slave1
的.ssh/authorized_keys
中。
下面进行配置文件的修改
在hadoop
的etc
的文件夹下配置一下文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50<!-- core-site.xml -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
<!-- hdfs-site.xml -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
<!-- mapred-site.xml -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<!-- yarn-site.xml -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
同时还需要建立/usr/local/hadoop
目录
如果机器是master
的话,还需要手动指定slaves
在$HADOOP_HOME/etc/hadoop/slaves
文件中加上slave1
下面就可以启动了1
2
3hdfs namenode -format
start-dfs.sh
start-yarn.sh
如果成功的话,jps
命令在master
上应该除了jps
本身外还显示3个进程
分别为1
2
3NameNode
SecondaryNameNode
ResourceManager
在slave上应该还额外显示2两进程1
2DataNode
NodeManager
下面如果我们需要自己写一些java
文件进行练手的话
我推荐的模式是利用idea
的远程文件的功能在本地编辑,然后上传到服务器
运行一个脚本
这样的话我们就可以利用强大的idea写程序同时又可以在服务器很方便的跑了
1 |
|
这样我们在idea本地编辑好Main.java
文件,然后上传到服务器,在服务器执行./start.sh
就可以执行了。