一:大数据存储和计算系统
1、hadoop用于分布式存储和map-reduce计算。
2、spark用于分布式机器学习,Spark 是在 Scala 语言中实现的,与 Hadoop 不同,Spark 和 Scala能够紧密集成。
3、hive是分布式数据库,是独立的数据库。
4、hbase是分布式kv系统,是独立的数据库。
hadoop自带数据计算处理:
二:配置hadoop多节点环境。
搭建三台虚拟机:
192.168.25.130 master-one
192.168.25.128 server-one
192.168.25.129 server-two
1.分别修改机器名称:
查看当前机器名命令:
hostname
分别在三台虚拟机运行,修改当前机器名称命令:
hostname master-one
hostname server-one
hostname server-two
通过命令检查是否ping的通:
ping -c 3 server-one
2.配置ssh无秘钥登录
分别在虚拟机系统中生成秘钥:
ssh-keygen -t rsa -P '' 一路回车就好
在主节点上执行,将主节点的秘钥复制到所有的子节点上:
ssh-copy-id -i ~/.ssh/id_rsa.pub server-one
ssh-copy-id -i ~/.ssh/id_rsa.pub server-two
测试是否配置成功:
ssh server-one 是否远程登录到server-one子节点
每次退出都要采用:
exit 回车退出
3.安装java-jdk
安装jdk请查看其它文章,注意获取jdk环境变量命令:
# which java
/usr/bin/java
# ls -lrt /usr/bin/java
/usr/bin/java -> /etc/alternatives/java
# ls -lrt /etc/alternatives/java
/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/bin/java
注意:在hadoop配置中环境变量要写以下路径:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre
4.配置hadoop
1.下载hadoop。hadoop-2.9.0.tar.gz
2.新建在opt文件夹下新建hadoop文件夹:
将hadoop-2.9.0放入/opt/hadoop中,解压:
tar -xvf hadoop-2.9.0.tar.gz
3.修改hadoop配置文件,所有需要修改的配置文件都在/opt/hadoop/hadoop-2.9.0/etc/hadoop文件夹下。可以通过统一配置,然后将配置好的hadoop分别复制到主从节点系统中,注意jdk的环境变量要按照本机的环境变量配置,其他的配置信息在主从节点是一样的。
在主节点和和子节点中新建以下文件夹:
mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data
一:修改core-site.xml
修改/opt/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml文件
在<configuration></configuration>节点内加入配置:
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master-one:9000</value>
</property>
二: 修改hadoop-env.sh
修改/opt/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh文件
将export JAVA_HOME=${JAVA_HOME}
修改为:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre
说明:修改为自己的JDK路径
三:修改hdfs-site.xml
修改/opt/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml文件
在<configuration></configuration>节点内加入配置:
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
说明:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。
四:新建并且修改mapred-site.xml
文件夹中有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml。
修改这个新建的mapred-site.xml文件,在<configuration></configuration>节点内加入配置:
<property>
<name>mapred.job.tracker</name>
<value>master-one:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
五:修改slaves文件
修改/opt/hadoop/hadoop-2.9.0/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:
server-one
server-two
六: 修改yarn-site.xml文件
修改/opt/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml文件,
在<configuration></configuration>节点内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行):
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master-one</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。
4启动hadoop
4.1在namenode上执行初始化
因为master-one是namenode,server-one和server-two都是datanode,所以只需要对master-one进行初始化操作,也就是对hdfs进行格式化。
一: 进入到hserver1这台机器的/opt/hadoop/hadoop-2.9.0/bin目录,也就是执行命令:
cd /opt/hadoop/hadoop-2.9.0/bin
二:执行初始化脚本,也就是执行命令:
./hadoop namenode -format
三:执行启动命令:
进入文件夹:
cd /opt/hadoop/hadoop-2.9.0/sbin
执行初始化脚本,也就是执行命令:
./start-all.sh
注意:第一次执行上面的启动命令,会需要我们进行交互操作,在问答界面上输入yes回车
5.测试hadoop
haddoop启动了,需要测试一下hadoop是否正常。
执行命令,关闭防火墙,CentOS7下,命令是:
systemctl stop firewalld.service
hserver1是我们的namanode,该机器的IP是192.168.119.128,在本地电脑访问如下地址:
http://192.168.25.130:50070/
自动跳转到了overview页面
在本地浏览器里访问如下地址:
http://192.168.25.130:8088/
自动跳转到了cluster页面
参考地址:https://blog.csdn.net/pucao_cug/article/details/71698903