一、安装jdk之前卸载open jdk
虚拟机挂载命令(Mount -t iso9660 /dev/cdrom /mnt)
虚拟机安装完成后重启系统
1.(rpm -qa|grep java)命令 查看所安装的java组件
2.使用 (rpm -e --nodeps +java组件名) 命令卸载java组件
3.进入JDK文件存放目录使用 (./+文件名) 命令 执行安装JDK操作
4.回到主目录进入/etc/目录使用vi命令修改profile文件配置JAVA环境变量
添加如下参数:
export JAVA_HOME=/usr/java/jdk1.6.0_24
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置完成后重启系统
二、安装并配置Hadoop
1.复制Hadoop安装包到其他目录
2.使用 (tar -zxvf +Hadoop文件路径) 命令 解压到当前目录
3.进入Hadoop安装目录下的conf文件夹
4.使用vi命令修改hadoop-env.sh文件添加如下参数
export JAVA_HOME=/usr/java/jdk1.6.0_24 (jdk安装目录)
5.使用(hostname)命令查看主机名称
6.使用(vi /etc/hosts)命令修改host文件配置, 使用(chown -R 用户名 Hadoop安装路径)命令来修改Hadoop安装文件夹的所属者
7.在最后一行中加入127.0.0.1 主机名 并保存
8.配置core-site.xml文件:在configuration节点中加入
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
9.配置hdfs-site.xml文件:在configuration节点中加入
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
10.配置mapred-site.xml文件:在configuration节点中加入
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
三、免密码SSH登录设置
1.使用 (ssh-keygen -t rsa)命令生成密钥对
2.使用(cd ~)命令 进入用户主目录并使用(ls -f)命令查看目录
3.进入.ssh目录 执行 (cp id_rsa.pub authorized_keys)命令 追加密钥
4.使用(ssh localhost)命令实现SSH连接
配置ssh免密码登录(三个节点m1、s1、s2)
实现SSH免密码登录的另一种方式:
主节点配置:
首先到用户主目录(cd ~),ls -a查看文件,其中一个为“.ssh”,该文件价是存放密钥的。待会我们生成的密钥都会放到这个文件夹中。
现在执行命令生成密钥:ssh-keygen -t rsa -P ""(使用rsa加密方式生成密钥)回车后,会提示三次输入信息,我们直接回车即可。
进入文件夹cd .ssh (进入文件夹后可以执行ls -a 查看文件)
将生成的公钥id_rsa.pub 内容追加到authorized_keys(执行命令:cat id_rsa.pub >> authorized_keys)
从节点配置:
以同样的方式生成秘钥(ssh-keygen -t rsa -P ""),然后s1和s2将生成的id_rsa.pub公钥追加到m1的authorized_keys中)
在s1中执行命令:scp id_rsa.pub m1:/root/.ssh/id_rsa.pub.s1 ,在s2中执行命令:scp id_rsa.pub m1:/root/.ssh/id_rsa.pub.s2
进入m1执行命令:cat id_rsa.pub.s1 >> authorized_keys ,cat id_rsa.pub.s1 >> authorized_keys
最后将生成的包含三个节点的秘钥的authorized_keys 复制到s1和s2的.ssh目录下( scp authorized_keys s1:/root/.ssh/, scp authorized_keys s2:/root/.ssh/)
四、启动及停止Hadoop
1.格式化分布式文件系统(HDFS)
进入Hadoop主目录下使用命令:(bin/hadoop namenode-format)
2.启动Hadoop守护进程
进入Hadoop主目录下使用命令:(bin/start-all.sh)
执行完毕后会在本机启动NameNode、DataNode、JobTracker、TaskTracker、Secondary NameNode五个Java进程
3.使用jps命令查看当前进程
4.停止Hadoop守护进程
进入Hadoop主目录下使用命令:(bin/stop-all.sh)
五、运行WordCount测试用例
1.在根目录下新建input文件,并新增test1.txt和test2.txt文件,内容随意写
2.使用(chown -R 用户名 路径)命令修改input文件所属者
3.进入Hadoop安装目录使用(bin/hadoop dfs -put /完整本地路径/ /完整hdfs路径/)命令将input文件夹放入hdfs文件系统中
4.使用(bin/hadoop jar hadoop-0.20.2-examples.jar wordcount /待计算文件的hdfs完整路径/ /结果输出文件夹hdfs完整路径) 命令进行计算
六、完全分布式模式配置
1.配置三台Linux虚拟机,一台桌面版,两台服务器版
2.在VMware中更改虚拟网络设置,设定host-only模式下的子网段
3.在Linux虚拟机中使用(dhclient eth0)命令加载第一块网卡
4.使用(ifconfig)命令查看网络状态及IP地址
5.在作为namenode和datanode节点的机器中配置etc/hosts文件,在最后一行中加入:
192.168.10.129(namenode节点IP地址) namenode节点名称
192.168.10.128(datanode0节点IP地址) datanode0节点名称
192.168.10.130(datanode1节点IP地址) datanode1节点名称
6.建立相同的用户hadoop,使用(adduser +用户名)命令,删除用户使用(userdel -Z +用户名命令)
使用(passwd +用户名)命令设置hadoop用户的密码,输入两次即可
/etc/sudoers 修改root权限
7.在所有机器的/home/用户名/目录下建立.ssh目录,并使用 ssh-keygen -t rsa和ssh-keygen -t dsa命令生成密钥对
8.进入~/.ssh目录使用如下命令
chmod -R 755 /home/hadoop改变目录权限
cp id_rsa.pub authorized_keys (将生成的密钥追加到authorized_keys中)
cp id_dsa.pub authorized_keys (将生成的密钥追加到authorized_keys中)
scp authorized_keys datanode0节点名称:/home/grid/.ssh
scp authorized_keys datanode1节点名称:/home/grid/.ssh
9.进入所有机器的.ssh目录下,使用如下命令更改authorized_keys的许可权限
chmod -R 700 ~/.ssh(chmod 644 authorized_keys 0.20.2版本无效)
10.所有机器的Hadoop程序需安装至相同目录下
11.在hadoop安装目录下的conf文件夹中修改Master和Slaves两个配置文件,分别为主节点和从节点(每个主机名为一行)
12.修改core-site.xml、hdfs-site.xml和mapred-site.xml三个配置文件
sudoservice iptables stop# 关闭防火墙服务
sudochkconfig iptables off
Hadoop-2.7.1配置文件:
core-site.xml:
(configuration)
(property)
(name)fs.defaultFS(/name)
(value)hdfs://master:9000(/value)
(/property)
(property)
(name)hadoop.tmp.dir(/name)
(value)file:/usr/local/hadoop/hadoop-2.7.1/tmp(/value)
(/property)
(property)
(name)io.file.buffer.size(/name)
(value)131702(/value)
(/property)
(/configuration)
hdfs-site.xml:
(configuration)
(property)
(name)dfs.namenode.name.dir(/name)
(value)file:/usr/local/hadoop/hadoop-2.7.1/hdfs/name(/value)
(/property)
(property)
(name)dfs.datanode.data.dir(/name)
(value)file:/usr/local/hadoop/hadoop-2.7.1/hdfs/data(/value)
(/property)
(property)
(name)dfs.replication(/name)
(value)3(/value)
(/property)
(property)
(name)dfs.namenode.secondary.http-address(/name)
(value)master:9001(/value)
(/property)
(property)
(name)dfs.webhdfs.enabled(/name)
(value)true(/value)
(/property)
(/configuration)
mapred-site.xml:
(configuration)
(property)
(name)mapreduce.framework.name(/name)
(value)yarn(/value)
(/property)
(property)
(name)mapreduce.jobhistory.address(/name)
(value)master:10020(/value)
(/property)
(property)
(name)mapreduce.jobhistory.webapp.address(/name)
(value)master:19888(/value)
(/property)
(/configuration)
yarn-site.xml
(configuration)
(property)
(name)yarn.nodemanager.aux-services(/name)
(value)mapreduce_shuffle(/value)
(/property)
(property)
(name)yarn.nodemanager.auxservices.mapreduce.shuffle.class(/name)
(value)org.apache.hadoop.mapred.ShuffleHandler(/value)
(/property)
(property)
(name)yarn.resourcemanager.address(/name)
(value)master:8032(/value)
(/property)
(property)
(name)yarn:resourcemanager.scheduler.address(/name)
(value)master:8030(/value)
(/property)
(property)
(name)yarn.resourcemanager.resource-tracker.address(/name)
(value)master:8031(/value)
(/property)
(property)
(name)yarn.resourcemanager.admin.address(/name)
(value)master:8033(/value)
(/property)
(property)
(name)yarn.resourcemanager.webapp.address(/name)
(value)master:8088(/value)
(/property)
(property)
(name)yarn.nodemanager.resource.memory-mb(/name)
(value)1024(/value)
(/property)
(/configuration)
13.发放Hadoop文件到从节点
命令:发放文件:scp -r hadoop-0.20.2 slaves0:/usr/local/hadoop
七、新增DataNode节点及相关配置
1.基础准备
在基础准备部分,主要是设置hadoop运行的系统环境
修改系统hostname(通过hostname和/etc/sysconfig/network进行修改)
修改hosts文件,将集群所有节点hosts配置进去(集群所有节点保持hosts文件统一)
设置NameNode(两台HA均需要)到DataNode的免密码登录(ssh-copy-id命令实现,可以免去cp *.pub文件后的权限修改)
修改主节点slave文件,添加新增节点的ip信息(集群重启时使用)
将hadoop的配置文件scp到新的节点上
2.添加DataNode
对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群
在新增的节点上,运行sbin/hadoop-daemon.sh start datanode即可
然后在namenode通过hdfs dfsadmin -report查看集群情况
最后还需要对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,即hdfs dfsadmin -setBalancerBandwidth 67108864即可
默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%
然后启动Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可
3.添加Nodemanager
由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群
在新增节点,运行sbin/yarn-daemon.sh start nodemanager即可
在ResourceManager,通过yarn node -list查看集群情况