hadoop集群安装
(1)使用vi编辑/etc/sysconfig/network
把HOSTNAME的值改为namenode1,保存退出。
(2)执行hostname namenode,在当前环境中立即生效
(3)执行命令hostname查看设置结果
1.2 绑定ip与hostname
说明:如下的ip和hostname以实际分配的为准
编辑文件/etc/hosts,增加ip与hostname的映射信息
1.3 关闭防火墙
(1) 执行命令service iptables stop关闭防火墙
(2) 执行命令service iptables status查看防火墙是否正在运行
1.4 关闭防火墙的自动运行
- 执行命令chkconfig iptables off
1.5 重复1到5
在另外两台台服务器上执行2.1到2.5的步骤
1.6 设置ssh免密码登录
SSH(secure shell)免密码登录,各主机之间可以互相ping通
(1)在namenode1中执行命令ssh-keygen -t rsa产生公钥私钥文件,产生的文件位于~/.ssh目录下
(2)进入~/.ssh目录,执行命令cp id_rsa.pub authorized_keys
(3)在其他四台机器执行上面的2步,然后把每一台机器上的authorized_keys中的内容拷贝到hadoop1的authorized_keys中,
最后通过scp ~/.ssh/authorized_keys namenode2:~/.ssh命令把authorized_keys复制到每一台机器中。
1.7 解压hadoop安装文件
解压hadoop安装文件 tar -zvxf hadoop-2.6.0.tar.gz
1.8 修改环境变量
在 /etc/profile 中添加
export HIVE_HOME=/usr/local/apache/hadoop-2.6.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
执行命令source /etc/profile使修改生效
1.9 创建临时文件夹
a. 具体操作前首先在hadoop根目录下创建以下文件夹:
mkdir tmp
mkdir dfs
mkdir dfs/data
mkdir dfs/name
注:这里新建的目录会在hdfs-site.xml中用到。实际上namenode节点上只需要dfs/name目录,datanode节点上只需要dfs/data 目录。
1.10 修改hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_75/
注:若没有配置JAVA_HOME,后续执行hadoop命令时会报如下错误:
1.11 修改yarn-env.sh
1.12 修改mapred-env.sh
1.13 修改slaves
修改配置文件vim /usr/local/hadoop/hadoop-2.6.0/etc/hadoop/slaves,将各个datanode节点的hostname加进去:
1.14 配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode1:9000</value>
<description>The name of the default file system</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/apache/hadoop-2.6.0/tmp</value>
<description>A base for other temporary directories</description>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
</configuration>
1.15 配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/apache/hadoop-2.6.0/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/apache/hadoop-2.6.0/dfs/data</value>
</property>
</configuration>
注:这里指定的dfs.namenode.name.dir与dfs.datanode.data.dir若不存在的话,后续start-dfs时会报错:
1.16 配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1.17 配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>namenode1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
注:Yarn是Hadoop推出整个分布式(大数据)集群的资源管理器,负责资源的管理和分配,基于Yarn我们可以在同一个大数据集群上同时运行多个计算框架,例如Spark、MapReduce、Storm。
1.18 启动并验证hadoop集群
a、格式化hdfs文件系统:hadoop namenode –format或者
hdfs namenode -format
该命令会启动,格式化,然后关闭namenode。
实际上格式化后,在namenode上会生成以下文件:
其中VERSION文件的内容如下:
该命令不会在datanode的dfs.datanode.data.dir 对应的目录下生成任何文件:
b、启动hdfs: start-dfs.sh
使用jps验证HDFS是否启动成功:
通过webui检查HDFS是否启动成功
http://namenode1:50070 或者直接输入IP,如图下所示
1.19 启动yarn
执行start-yarn.sh命令
使用jps验证yarn是否启动成功:
1.20 启动JobHistory
a、启动JobHistory Server:mr-jobhistory-daemon.sh start historyserver
使用jps验证JobHistory Server是否启动成功:
1.21 验证hadoop集群
创建文件夹:
hdfs dfs -mkdir -p /data/wordcount
hdfs dfs -mkdir -p /output
上传文件:
hdfs dfs -put /usr/local/hadoop/hadoop-2.6.0/etc/hadoop/*.xml /data/wordcount
查看上传文件是否成功:
hdfs dfs -ls /data/wordcount
尝试执行hadoop自带的wordcount程序:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /data/wordcount /output/wordcount
下图可见,执行成功:
至此hadoop集群安装就完成了!!!