一、目标:
构建由3台PC机构成的hadoop环境,安装完成后使用HDFS、Mapreduce、Hbase等完成一些小例子。
二、硬件需求:
3台Centos 7.0 系统PC机,每台PC机4G内存,500G硬盘,双核CPU。
三、软件需求:
每台PC机装有Centos 7.0系统,其中一台namenode,安装系统时命名master;另外两台为datanode,安装系统时分别命名为slave1、slave2。
四、Hadoop集群模式安装过程:
1 修改3台主机上的/etc/hosts,主机名和IP地址分配:master、slave1、slave2。
首先、以root身份在master主机上修改/etc/hosts文件的内容:(注意,修改IP时以3台真实联网的IP为准)
2 将master主机上的/etc/hosts复制到其它2台主机上(复制过程需要输入root认证密码)
3 因为Hadoop集群中所有节点主机上都以hadoop账户安装、配置、加载运行,所以首先需要以root身份在3个节点上创建一个hadoop账户,默认情况下所有主机的/home目录下创建一个hadoop的目录为hadoop账户的宿主目录。
4 设置主机间无密码信任连接:
4.1 在master主机上以hadoop账户身份使用ssh-keygen命令生成master主机hadoop账户密钥对。此时在master节点主机的~/.ssh目录生成密钥对id_rsa和di_rsa.pub,可以通过ls命令列表查看。
4.2 再分别用ssh命令操作slave1、slave2主机生成2台节点的密钥对。
4.3 将刚刚生成的密钥对中的公钥复制到master节点的~/.ssh/目录之下
4.4 将master、slave1、slave2主机的公钥写入master主机~/.ssh目录的认证文件authorized_keys中
4.5 用chmod命令修改认证文件authorized_keys的属性为600
4.6 将~/.ssh/authorized_keys认证文件复制到所有节点主机的~/.ssh/目录中,并进行密码连接测试。
5 hadoop目录结构的创建
5.1 chadoop目录创建:mkdir ~/chadoop
5.2 tmp目录创建:mkdir ~/chadoop/tmp
5.3 dfs目录以及其下name和data目录的创建:mkdir -p~/chadoop/dfs/name ~/chadoop/dfs/data
6 Java SDK安装与配置
6.1 Java SDK下载(wget http://202.118.69.111/res/jdk-8u121-linux-x64.tar.gz),并对其移动改名。
6.2 Java SDK环境变量的设置,将~/.bash_profile加入JAVA——HOME,CLASSPATH和PATH
(配置环境变量命令 vi ~/.bash_profile,配置完后需用命令生效 . ~/.bash_profile)并可用(java-version查看环境变量是否生效)
8 master主节点克隆到slave1、slave2节点
8.1克隆“画像”文件
scp ~/.bash_profilehadoop@slave1:~/
scp ~/.bash_profilehadoop@slave2:~/
8.2画像文件生效
ssh hadoop@slave1 . ~/.bash_profile
ssh hadoop@slave2 . ~/.bash_profile
8.3 chadoop目录克隆到slave1、slave2
scp -r chadoop/hadoop@slave1:~
scp -r chadoop/hadoop@slave2:~
9在master节点主机上格式化hdfs文件系统
9.1 hdfs namenode -format
9.2启动hadoop(启动前关闭所有节点主机的防火墙,开放所有端口号)
service firewalld stop(会提示输入root用户密码)
chkconfig firewalld off
(首先关闭主节点,再分别利用ssh命令进入slave1与slave2关闭其余节点防火墙)
9.3 hadoop的启动
启动命令:start-all.sh
检验hadoop进程:jps(master节点有4个ResourceManager, Jps, NameNode, SecondaryNamenode,slave1与slave2有3个NodeManager, DataNode, Jps)
9.4 hadoop的停止
命令:stop-all.sh
10 hadoop的操作
10.1在hdfs文件系统里面操作。首先,用-mkdir命令在hdfs中创建一个mydir目录,然后用-put命令上载文件,步骤如下:
hdfs dfs -mkdir /mydir
hdfs dfs -put ~/chadoop/hadoop/hadoop-2.8.0/etc/hadoop/*/mydir
hdfs dfs -ls /mydir
10.2利用hadoop平台上Mapreduce程序运行(统计所给例子词频)
命令:hadoop jar~/chadoop/hadoop/hadoop-2.8.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jarwordcount /mydir/* /mydir/output
注意:hadoop jar(算法包位置)(例子输入文件夹)(例子结果输出文件夹)
10.3结果查看(hdfs dfs -cat/mydir/output/part-r-00000)
11 hadoop的Web方式查询
hadoop内置了tomcat应用服务器,安装运行后可以通过浏览器浏览运行
hadoop的hdfs系统的观察端口是50070
应用程序的观察端口是8088