一:安装Ubuntu虚拟机
1.Ubuntu系统下载
下载地址:http://www.ubuntu-china.cn/download/
2.Ubuntu系统安装
这里我安装了三台虚拟机,分别命名为master、node1、node2
3.设置root用户密码(三台虚拟机都需要进行)
打开终端并输入"sudo passwd"
二:修改虚拟机host相关文件
以下操作三台虚拟机都需进行
1.修改hostname文件
使用root用户登录,在终端输入"vim /etc/hostname",对于三台虚拟机,分别修改其内容为: master, node1, node2
2.修改hosts文件
使用root用户登录,在终端输入"vim /etc/hosts",在文件中加入三台虚拟机的IP,如下图所示:
本机的IP可以在终端输入"ifconfig"查看
3. 检验各主机是否联通
在终端使用"ping + ip",来检验各主机是否联通
三:创建组和用户
以下操作三台虚拟机都需进行
1. 创建hadoop用户组
使用root用户,在终端输入"addgroup hadoop"
2. 创建hdfs用户
使用root用户,在终端输入"adduser -ingroup hadoop hdfs"
3. 为hdfs用户添加sudo权限
使用root用户,在终端输入"vim /etc/sudoers", 在 "root ALL=(ALL:ALL) ALL"下面添加"hdfs ALL=(ALL:ALL) ALL"
四:配置ssh免密登录
1. 安装ssh服务
在三台虚拟机分别在终端输入"apt-get install openssh-server"
2. 生产公匙
使用hdfs用户,在终端输入"ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa"
3. 添加公匙到公匙证书列表中
在master主机节点中,使用hdfs用户,在终端输入"cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"
4. 在子节点新建.ssh文件夹
在node1,node2两个子节点中,使用hdfs用户,在终端输入"mkdir ~/.ssh"
5. 将公匙证书添加到其他节点中
在master主机节点中,使用hdfs用户,在终端输入"scp ~/.ssh/authorized_keys hdfs@node1:~/.ssh/"
在master主机节点中,使用hdfs用户,在终端输入"scp ~/.ssh/authorized_keys hdfs@node2:~/.ssh/"
五:安装JDK
在master主机下进行以下操作
1. 下载jdk
下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. 安装jdk
将下载好的jdk文件解压到"/usr/local"文件下。
3. 修改.bashrc文件
使用hdfs用户,在终端输入"vim ~/.bashrc"。在文件中最后添加以下内容:
export JAVA_HOME=/usr/local/jdk1.8.0
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
4. 更新.basrc文件
使用hdfs用户,在终端输入"source ~/.bashrc"
5. 测试jdk
使用hdfs用户,在终端输入"java -version",出现以下内容即为安装成功:
6. 发送jdk到子节点
使用master节点,在终端输入"scp -r /usr/local/jdk1.8.0 hdfs@node1:~",进去node1节点,在终端输入"sudo mv /usr/local/jdk1.8.0"。
按照同样的方式修改子节点上~/.bashrc文件。
六:hadoop的安装
以下操作在master主节点上进行
1.下载hadoop
下载地址:https://mirrors.aliyun.com/apache/hadoop/common/
2. 创建hadoop目录(三台虚拟机都要进行这一步)
使用root用户,在终端输入"mkdir hadoop",并输入"chown -R hdfs:hadoop /usr/local/hadoop"以及"chmod -R 775 /usr/local/hadoop"修改权限
3. 安装hadoop
使用hdfs用户,解压下载好的hadoop文件到"/usr/local/hadoop/"下
七:hadoop集群搭建
以下操作在master主节点上进行
1. 修改core-site.xml文件
在终端输入"vim /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/core-site.xml"
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.5/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>
2. 修改hdfs-site.xml文件
在终端输入"vim /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/hdfs-site.xml"
<configuration>
<property>
<name>dfs.nameservices</name>
<value>master-hadoop-cluster</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/hadoop-2.7.5/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/hadoop-2.7.5/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
3.修改mapred-site.xml文件
现在终端输入
"cp /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml"
然后在终端输入"vim /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml",在文件中修改内容如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> </property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>master:50030</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>
4. 修改yarn-site.xml文件
在终端输入"vim /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/yarn-site.xml", 在文件中修改内容如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</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>
<configuration>
5. 修改slaves配置文件
在终端输入"/usr/local/hadoop/hadoop-2.7.5/etc/hadoop/slaves",修改内容如下:
node1
node2
6. 修改相应文件中的JAVA_HOME
(1)在终端输入"/usr/local/hadoop/hadoop-2.7.5/etc/hadoop/hadoop-env.sh",修改内容如下:
export JAVA_HOME=/usr/local/jdk1.8.0
(2)在终端输入"/usr/local/hadoop/hadoop-2.7.5/etc/hadoop/yarn-env.sh",修改内容如下:
export JAVA_HOME=/usr/local/jdk1.8.0
7. 将hadoop发送到其他节点
使用以下命令将hadoop发送到其他子节点。
scp -r /usr/local/hadoop/hadoop-2.7.5/ hdfs@node1:/usr/local/hadoop/
scp -r /usr/local/hadoop/hadoop-2.7.5/ hdfs@node2:/usr/local/hadoop/
8. 配置hadoop环境变量
三台虚拟机都需进行这一步,并使用hdfs用户登录
(1).在终端输入"vim ~/.bashrc",修改配置文件如下图:
(2).在终端输入"source ~/.bashrc"
八:启动hadoop服务
在master节点下进行如下操作
1. 格式化文件系统
使用hdfs用户,在终端输入"hdfs namenode -format",返回状态为" 0 "即为格式化成功:
2. 启动服务
使用hdfs用户,在终端输入"start-all.sh"启动hadoop服务
3.检验是否成功启动
(1). 在master主节点上,输入jps,出现NameNode即为启动成功:
(2). 在node1、noed2子节点上,输入jps,显现DataNode即为启动成功:
九:Hadoop入门之——"WordCount"
1. 创建测试文件
在任意目录下创建名为test.txt的文件。随便输入一些内容。
2. 将文件上传到hdfs文件系统
(1). 使用以下命令查看hdfs目录:
hdfs dfs -ls /
(2). 使用以下命令新建test目录:
hdfs dfs -mkdir /test
(3). 将文件上传到hdfs:
hdfs dfs -put test.txt /test/
(4). 使用hadoop自带jar包执行wordcount程序
hadoop jar /usr/local/hadoop/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /test /output
(5). 查看hdfs根目录,可以看到多了名为"output"和"tmp"的目录,进入output目录。查看"part-r-00000"文件
第一次写这样的博客,如有任何不妥,请您及时联系我。
email: 17126252@bjtu.edu.cn
版权声明:博客编写不易,转载时请注明出处,万分感谢 !
http://blog.csdn.net/zyy_2018/article/details/79576252
Ubuntu16.4-Hadoop2.7.5分布式集群搭建(二)--- Spark集群搭建