Hadoop 安装配置
解压到根目录
tar xvf hadoop.2.7.1.tar.gz
配置profile
sudo gedit /etc/profile ,里面加上:
————————————————————————————————————
export JAVA_HOME=/home/yuqiao/jdk1.8.0_45
export JRE_HOME=$JAVA_HOME/jre
export SCALA_HOME=/home/yuqiao/scala-2.11.7
export SPARK_HOME=/home/yuqiao/spark-2.0.2-bin-hadoop2.7
export HADOOP_HOME=/home/yuqiao/hadoop-2.7.1
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.1.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.1.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.1.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.1.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
———————————————————————————————————————
配置hadoop-env.sh
sudo gedit /home/yuqiao/hadoop-2.7.1/etc/hadoop/hadoop-env.sh
加上两句:
export JAVA_HOME=/home/yuqiao/jdk1.8.0_45 #和profile里的javahome一致
export HADOOP_PREFIX=/home/yuqiao/hadoop-2.7.1
一个例子
例子:一个计数的例子
使用hadoop自带的hadoop-mapreduce-examples-2.6.0.jar
对某目录下的文档进行单词数的统计
执行命令
$ cd /home/yuqiao/ hadoop-2.7.1
$ mkdir input
$ cp etc/hadoop/*.xml input
$hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input /home/yuqiao/output '\bs\w+\b'
$ cat output/*
以上操作主要功能是在Hadoop安装的目录下创建文件夹input,然后将 etc/hadoop/目录下的xml 文件拷贝到文件夹input下,通过执行hadoop命令调用java编写的jar程序share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 将input目录下的所有xml文件内包含dfs的内容写入到output目录下,使用cat命令来查看。
集群配置
查看每台电脑的IP情况
ifconfig 命令
master截图:
slave1截图:
注意inet 地址
开头的ens33
百度ip,查看外网的静态ip:
每台机子都修改hostname
sudo gedit /etc/hostname
内容分别为master和slave1
每台机子都改hosts
sudo gedit /etc/hosts
内容入下:
———————————————————————————————————————
127.0.0.1 localhost
192.168.159.128 master # master的inet地址
192.168.159.130 slave1 #slave1的inet地址
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
——————————————————————————————————————
master截图:
每台机子都改interfaces
$sudo gedit /etc/network/interfaces
内容如下
——————————————————————————————————————
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33 #这是ifconfig里的第一行
iface ens33 inet static
address 192.168.159.128 #master的inet地址,从ifconfig 里看到
netmask 255.255.255.0 #master的掩码,从ifconfig 里看到
network 192.168.159.0
boardcast 192.168.159.255 #master的广播,从ifconfig 里看到
gateway 192.168.159.2
dns-nameservers 8.8.8.8 8.8.4.4 115.156.143.108 #最后的115....108是百度ip地址得到的
——————————————————————————————————————
master截图:
检验成果
在多台虚拟机同时运行的情况下:
ping master
ping slave1
配置shh免密码登录
配置ssh免密码登录是让各节点能自动通过安全认证,不影响正常通讯。
安装shh
执行命令
$sudo apt-get install ssh
$sudo apt-get update
确认sshserver是否启动了:
$ ps -e | grep ssh