在Linux下搭建Hadoop分布式集群

来源:互联网 发布:linux gcc安装包下载 编辑:程序博客网 时间:2024/06/04 18:36

【设置网络连接】

首先我们要设置虚拟机NAT方式(自动分配IP地址)连接外网

进行更新源的操作(具体操作见:http://blog.csdn.net/arnold_lee_yc/article/details/74846263)

【安装Mysql】

sudo apt install mysql-server

验证是否安装成功

mysql -uroot -pashow databases;exit

【创建jar包存放目录】

mkdir softwarecd ~/software

【上传jdk hadoop】

rz

【在/目录下创建文件夹】

sudo mkdir mysoftware

【更改mysoftware所属】

sudo chown -R hadoop:hadoop mysoftware

【进入mysoftware并解压jdk、hadoop】

cd mysoftwaretar -zxvf ~/software/jdk-8u101-linux-x64.tar.gztar -zxvf ~/software/hadoop-2.7.3.tar.gz

【配置环境变量】

vim ~/.profile输入以下内容:export JAVA_HOME=/mysoftware/jdk1.8.0_101export HADOOP_HOME=/mysoftware/hadoop-2.7.3export PATH="$JAVA_HOME/bin:$HADOOP_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH"

【重启虚拟机检查是否安装成功】

sudo rebootjavac -versionjava -versionhadoop version
【更改NAT连接方式,不再自动分配地址】(这样当我们在不同环境开发,都不用去修改ip地址)



【将ip地址修改为静态ip】

sudo vim /etc/network/interfaces


【配置主从机ip地址映射】

sudo vim /etc/hosts


【初始化ssh(便于无密码登录)】

rm -rf .sshssh-keygen -t rsa -P ""cat id_rsa.pub >> authorized_keys

【添加配置信息】

cd /mysoftware/hadoop-2.7.3/etc/hadoop/vim hadoop-env.sh输入以下内容:export JAVA_HOME=/mysoftware/jdk1.8.0_101vim core-site.xml输入以下内容:<configuration>   <!--外部访问hadoopURL-->  <property>     <name>fs.default.name</name>     <value>hdfs://master:9000</value>  </property>   <!--hadoop产生临时文件所存放的位置-->  <property>     <name>hadoop.tmp.dir</name>     <value>file:/mysoftware/hadoop-2.7.3/tmp</value>  </property></configuration>vim hdfs-site.xml输入以下内容:<configuration>     <!--文件系统中每一个文件块的重复份数,建议使用奇数份-->   <property>     <name>dfs.replication</name>     <value>3</value>   </property>     <!--文件系统中元数据存放的位置-->   <property>     <name>dfs.namenode.name.dir</name>     <value>file:/mysoftware/hadoop-2.7.3/dfs/name</value>   </property>     <!--文件系统数据块存放的位置,数据块的大小默认是128M-->   <property>     <name>dfs.datanode.data.dir</name>     <value>file:/mysoftware/hadoop-2.7.3/dfs/data</value>   </property>     <!--对文件系统中数据访问时是否进行权限验证,默认true-->   <property>     <name>dfs.permissions</name>     <value>false</value>   </property></configuration>cp mapred-site.xml.template mapred-site.xmlvim mapred-site.xml输入以下内容:<configuration>     <!--hadoop分布式计算框架的处理交给哪个平台处理-->   <property>     <name>mapreduce.framework.name</name>     <value>yarn</value>   </property></configuration>vim yarn-site.xml输入以下内容:<configuration>     <!--hadoop分布式计算框架的资源调度管理的主机-->   <property>     <name>yarn.resourcemanager.hostname</name>     <value>master</value>   </property>     <!--hadoop分布式计算框架的资源处理方式-->   <property>     <name>yarn.nodemanager.aux-services</name>     <value>mapreduce_shuffle</value>   </property></configuration>vi slaves输入以下内容:slave01slave02slave03


【克隆主机】
进入每一个克隆机修改IP地址和主机名

sudo vim /etc/network/interface配置IPv4 子网掩码 默认网关(网段要和VMnet8的网段一致)sudo vim /etc/hostname                          分别改为slave01  slave02  slave03 

【启动hadoop】
第一次启动时执行格式化操作(仅第一次使用时执行,只有再也不用格式化)

hdfs namenode -format
启动hadoop分布式存储系统

cd /mysoftware/hadoop-2.7.3sbin/start-yarn.sh

查看java进程来确定hadoop是否启动成功

jps
看主节点是否会出现 namenode,secondarynamenode
看从节点是否会出现datanode
出现代表,hdfs启动成功,否则,表示失败,返回日志查看原因

less logs/hadoop-hadoop-namenode-master.log    查看namenode-master日志信
将本地文件上传到hdfs中

cd ~/datahdfs dfs -put *.txt /        将data目录下的所有.txt文件上传至hdfs的根目录下
开启集群资源管理

sbin/start-yarn.sh
调用mapreduce的jar包进行运算

cd /mysoftware/hadoop-2.7.3/share/hadoop/mapreducehadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /*.txt /out    统计单词数量hdfs dfs -cat /out/*       查看结果

【关闭hadoop】

cd /mysoftware/hadoop-2.7.3sbin/stop-yarn.sh      关闭集群资源管理sbin/stop-dfs.sh       关闭hdfs分布式文件系统

【关闭虚拟机】
sudo shutdown -h now