搭建Hadoop需要的基本条件要有虚拟机,我用的时vm14pro,linux版本用的是centOS6.9。jdk版本用的是jdk1.7。
为了方便配置,我们第一步应该先配置主机名和映射,防止在配置yarn配置文件的主机名时找不到相关映射。
修改主机名和映射
查看网卡配置:
[cent@localhost etc]$ cd /etc/sysconfig/network-scripts/
[cent@localhost network-scripts]$ cd /
[cent@localhost /]$ cd /etc/sysconfig/network-scripts/
[cent@localhost network-scripts]$ ls
ifcfg-eth0 ifdown-eth ifdown-isdn ifdown-sit ifup-bnep ifup-ipv6 ifup-post ifup-tunnel network-functions
ifcfg-lo ifdown-ib ifdown-post ifdown-tunnel ifup-eth ifup-isdn ifup-ppp ifup-wireless network-functions-ipv6
ifdown ifdown-ippp ifdown-ppp ifup ifup-ib ifup-plip ifup-routes init.ipv6-global
ifdown-bnep ifdown-ipv6 ifdown-routes ifup-aliases ifup-ippp ifup-plusb ifup-sit net.hotplug
[cent@localhost network-scripts]$ cat ifcfg-eth0
DEVICE="eth0" 名称
BOOTPROTO="dhcp" 代理
HWADDR="00:0C:29:D8:55:59" mac
IPV6INIT="yes" ipv6代理
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="8e258042-670a-464c-9843-374b4edc56dc"
使用命令vim ifcfg-eth0对网卡进行编译,修改后如下:
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:D8:55:59"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR="192.168.200.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.200.1"
UUID="8e258042-670a-464c-9843-374b4edc56dc"
查看主机名,映射
[root@localhost sysconfig]# cat network
NETWORKING=yes
HOSTNAME=localhost
[cent@localhost sysconfig]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
编译network,将localhost.domain改为cent,并修改hosts文件,添加“192.168.200.130 cent”;
使用reboot命令重启使其生效。
安装jdk
使用“tar -zxvf”解压后,在etc/profile配置JAVA_HOME环境变量。
安装hadoop
下载hadoop安装包,将其解压,移动到相应的目录中:
进入到etc/hadoop目录中修改配置文件:
1.修改hadoop-env.sh,添加变量:
export JAVA_HOME=/home/cent/jdk1.7.0_55
export HADOOP_OPTS="-Djava.library.path=/simple/soft/hadoop-2.6.4/lib/native"
2.修改core-site.xml,
<configuration>
<!--指定fs的缺省名称-->
<property>
<name>fs.default.name</name>
<value>hdfs://cent:9000</value>
</property>
<!--指定HDFS的namenode缺省路径的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://cent:9000</value>
</property>
<!--指定hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/simple/soft/hadoop-2.6.4/tmp</value>
</property>
</configuration>
3.修改hdfs-site.xml
<configuration>
<!--指定HDFS副本的数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--指定hdfs的namenode存储路径-->
<property>
<name>dfs.name.dir</name>
<value>/simple/soft/hadoop-2.6.4/hdfs/name</value>
</property>
<!--指定hdfs的datanode存储路径-->
<property>
<name>dfs.data.dir</name>
<value>/simple/soft/hadoop-2.6.4/hfds/data</value>
</property>
</configuration>
4.修改mapred-site.xml(没有先将mapred-site.xml.template改名)。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5.修改yarn-site.xml:
<configuration>
<!--指定yarn的resourcemanager的地址以及reduce获取数据的方式
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>cent</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6.添加环境变量
使用source etc/profile使其生效。
测试
1.格式化nameNode,执行命令hdfs namenode -format或者hadoop namenode -format,实现格式化,最后显示提示消息,则表示执行成功。
SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1
2.启动hadoop进程,执行命令start-dfs.sh,启动HDFS系统,
[root@localhost hadoop]# start-dfs.sh
18/07/15 15:46:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [Java HotSpot(TM) Client VM warning: You have loaded library /simple/soft/hadoop-2.6.4/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
localhost]
sed: -e expression #1, char 6: unknown option to `s'
-c: Unknown cipher type 'cd'
guard.: ssh: Could not resolve hostname guard.: Name or service not known
noexecstack'.: ssh: Could not resolve hostname noexecstack'.: Name or service not known
root@localhost's password: now.: ssh: Could not resolve hostname now.: No address associated with hostname
... ...
it: ssh: Could not resolve hostname it: Temporary failure in name resolution
18/07/15 15:47:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
启动yarn计算进程,执行命令start-yarn.sh
[root@localhost hadoop]# start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /simple/soft/hadoop-2.6.4/logs/yarn-cent-resourcemanager-localhost.out
Java HotSpot(TM) Client VM warning: You have loaded library /simple/soft/hadoop-2.6.4/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
root@localhost's password:
localhost: starting nodemanager, logging to /simple/soft/hadoop-2.6.4/logs/yarn-root-nodemanager-localhost.out
使用jps查看进程,查看是否启动
[root@localhost hadoop]# jps
5366 Jps
3451 NodeManager
3175 ResourceManager
4703 NameNode
3841 SecondaryNameNode
关闭防火墙:
[root@cent hadoop]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
登入HDFS管理页面(http://192.168.200.130:50070):
登入MR管理页面(http://192.168.200.130:8080):
ssh免密配置
[root@localhost hadoop]# cd ~/.ssh
[root@localhost .ssh]# pwd
/root/.ssh
[root@localhost .ssh]# ls -al
total 12
drwx------. 2 root root 4096 Jul 15 15:11 .
dr-xr-x---. 3 root root 4096 Jul 15 15:54 ..
-rw-r--r--. 1 root root 1177 Jul 15 15:12 known_hosts
[root@localhost .ssh]# ssh-keygen -t rsa 生成公钥、私钥文件
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e6:2b:d9:fc:27:28:76:50:92:63:73:45:69:9c:f6:e8 root@localhost
The key's randomart image is:
+--[ RSA 2048]----+
| o.o |
| B |
| . + o |
| * o . . |
| . *S. |
| .o E |
| =.. |
| = =.. . |
| . +...o |
+-----------------+
[root@localhost .ssh]# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEA0943Nhgrq+7sOP6q5ZbMAOubnE9D+l7EOyj1wOxi4+DYUk8k
+z6OJUC7zJDXRYIV83ps7k07T9LbHD14UtydJg1DGwSlxXhXF0O1CY+dtWoxSbdy
IjSlsLBYYuCX7aDsMvvz2kUKaRzSw+Kn1aSCdMYGBrcb81A4K8fbokzRfyO3yTHI
L/C2RPwb9xks449GzhvKSgHDXWqrvGEmu2wCh9wX9l83y9AFgMuwuZfQnUI/fg55
JYogrThOnLO6Acd0QyWEfjW8EtUZBfYgPxJAqU0w0N7x1u91vAkr1trNx8W8WiWp
LTx1/BlV5UN6jge43Be/G4vrGcQBn8hoDVUN8QIBIwKCAQA2evhBHCh8qybM08WL
fow6wD30/nCQ1oo7GSlAPMj4xMnpR40qqa+F7BMIt4fQC4H8x7WcXQCff1zqAS2R
pnGNcR/iYEfiUiUF+3eyAFvA72vCf6EBe0CMhR4KzAnPY+T3KthOEcDZM0wjvfCk
pqUz+GfzGSRxxCuzfIjvOFMgsPG7qOLtxc+TEMMDeH5tlOuZB4ym0kIVANYLcbQL
PXQkyJUR2FazBXT7q4Cf7mxDfZ4Zr2YG0P1/aAXKG6zI8HY4Y7Y8pmfl3OSUPqeL
kXDm7diZsnwKR00VNOf/dQLh4nZItyolyUgUArUy0rc/fT3FYekoVwllsesRpGXO
HcVbAoGBAPj/0ennw0Px/xiDbJQ8Cczs0ljeCZCprV6JkvP8thPzb47f+6Re5MVp
PegaWEBfiu+BQA5HqKCZOQemXPvHGsJvFZPn7NxWtH0g2+qtV2VCVX5+9H7dZIUN
QEPNSLCvsEC+k4iv2Rg1WMVtvXAD3o5iH3dbcbb7aJvvKG7uMm2FAoGBANnTJGvH
80sXESmCnx7Eezr/8zH/qhVFnZsGTOhaHEdatdOYGkJC8nkoZJuGoFz+XQWY62xR
mFDro6I5sjq7d1fcU0hVFxLMcD9rtMZy9wfk6PY1F+XuA+FcUH5Eki5UT3a5rWAj
VJrOREGVbwkFCTpBe4QjOYFZ/NOIdftvWYR9AoGADjqBBg0+W6dtqaEcJbpJs/BG
iLw7D5Sq0jO/QSRiLQaYqRQdAhQNEphMri1kIO+ESDNFfSiqjNWOOvOQSObOVEDc
qV21w3KrOlmmKqrRy0WefEHE1AymqIRqEoDCUz09RYc7oWkiWSeerDIoFQeJD3NS
QVWuuf+81bXlDac2FOMCgYBQ6AY2qVpduBxRPyUor2D4qDXCHSHqpNQjo0EjGifC
u0rZkEREf0QeX3XTXePKxOC476fmZ3MWvexSMq/p7dvezi2P5Rcy3jhSEg/x8C/e
XFaHVYyImjv0nqGN/DZLuOpQq12nXZR0A3hwIY+kQ7L4YXcFMaelEsufBsy8edDK
zwKBgQCtoNGWzU5Iofd0kbtZ5J98RW4r/lJHhC3dGLrk95mOaHsXNu5RxzMaVh3w
8AnbjUt4LhblbCQ6mNoX4ANIw8jpbsiXDxPFkoIjE2/SCwa+2+ig586GZIxTo0Fc
1TSKDOeSoITZNP1/16s4Z3cVn0XraZw9GvjbfrZg7n73sbvrYA==
-----END RSA PRIVATE KEY-----
[root@localhost .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0943Nhgrq+7sOP6q5ZbMAOubnE9D+l7EOyj1wOxi4+DYUk8k+z6OJUC7zJDXRYIV83ps7k07T9LbHD14UtydJg1DGwSlxXhXF0O1CY+dtWoxSbdyIjSlsLBYYuCX7aDsMvvz2kUKaRzSw+Kn1aSCdMYGBrcb81A4K8fbokzRfyO3yTHIL/C2RPwb9xks449GzhvKSgHDXWqrvGEmu2wCh9wX9l83y9AFgMuwuZfQnUI/fg55JYogrThOnLO6Acd0QyWEfjW8EtUZBfYgPxJAqU0w0N7x1u91vAkr1trNx8W8WiWpLTx1/BlV5UN6jge43Be/G4vrGcQBn8hoDVUN8Q== root@localhost
[root@localhost .ssh]# ssh-copy-id localhost 给自身设置免密码登陆
root@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@localhost .ssh]# cd ~/.ssh
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
[root@localhost .ssh]# ssh localhost 免密码直接连接
Last login: Tue Apr 24 15:20:47 2018 from 192.168.200.1
[root@localhost ~]#