Hadoop学习笔记02
Hadoop集群搭建
工具:VMware 系统为CentOS6.5(CentOS-6.5-x86_64-bin-DVD1.iso)
JDK版本为 jdk-8u131-linux-x64.tar.gz
Hadoop版本为 hadoop-2.8.1.tar.gz
采用NAT方式联网、网关地址自定如:192.168.33.1
装3个节点
node01:192.168.33.22
node02:192.168.33.23
node03:192.168.33.24
VMware装CentOS就不说了。三个机子的主机名:node01,node02,node03。
创一个hadoop用户密码自己定。
**为用户配置sudo权限
用root编辑 vi /etc/sudoers
在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
** 给三个节点修改固定IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.33.23
NETMASK=255.255.255.0
GATEWAY=192.168.33.2
DNS1=192.168.33.2

重启网络————service network restart
ping www.baidu.com 看下能不能连同外网。
** 修改主机名和IP的映射关系
vim /etc/hosts
192.168.33.22 node01
192.168.33.23 node02
192.168.33.24 node03
在各个主机下ping 一下看下能不能同
如:ping node02
** 关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
**SSH免密登陆
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
cp id_rsa.pub authorized_keys

修改authorized_keys权限:chmod 644 authorized_keys
把node01节点中把authorized_keys分发到各个结点上(第一次会提示输入密码):
scp /home/hadoop/.ssh/authorized_keys node02:/home/hadoop/.ssh
scp /home/hadoop/.ssh/authorized_keys node03:/home/hadoop/.ssh
当第一次连接后退出exit,然后第二次连接ssh node02 就不需要密码

**安装JDK
#创建文件夹 app
/home/hadoop/app
解压
tar -zxvf jdk-8u131-linux-x64.tar.gz -C /home/hadoop/app
将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile

重启
**安装Hadoop
先上传hadoop的安装包到node01 去/home/hadoop/app
配置/etc/hadoop的配置文件
第一个:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_131
第二个:core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/hadoop-2.8.1/tmp</value>
</property>
第三个:hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/data</value>
</property>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>node01:50090</value>
</property>
第四个:mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五个:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
将hadoop添加到环境变量
vim /etc/proflie
export HADOOP_HOME=/home/hadoop/app/hadoop-2.8.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile
hadoop version

将hadoop分发到各个节点
scp -r /home/hadoop/app/hadoop-2.8.1/ node03:/home/hadoop/app
scp -r /home/hadoop/app/hadoop-2.8.1/ node03:/home/hadoop/app
(再配置系统配置,node02,node03)
scp -r /home/hadoop/app/hadoop-2.8.1/ node03:/home/hadoop/app
**格式化namenode(是对namenode进行初始化)
hdfs namenode -format
**配置node1下etc的slave
vi slave
添加
node01
node02
node03

运行:start-dfs.sh
start-yarn.sh
用jps查看node01,node02,node03



在网页上输入node01的ip地址加上50070端口
http://192.168.33.22:50070

成功!!!
**测试
在/home/hadoop 路径下随便创建一个.txt文件

从本地上传一个文本文件到hdfs的/wordcount/input目录下
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put words.txt /wordcount/input
可以用过 hadoop fs -ls /wordcount 查看 或用node01ip地址加端口50070打开的那个页面

在HADOOP安装目录下,运行一个示例mr程序
cd $HADOOP_HOME/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.8.1.jar wordcount /wordcount/input /wordcount/output



浙公网安备 33010602011771号