本次搭建运行环境在Windows10下的linux子系统进行搭建(linux我使用ubuntu,用其它都可以)
目前先搭建Hadoop+Zookeeper+HBase+Phoenix,后续会慢慢的增加的吧??
Hadoop官网:http://hadoop.apache.org/
Zookeeper官网:http://zookeeper.apache.org/
HBase官网:https://hbase.apache.org/
Phoenix官网:https://phoenix.apache.org/
如果懒得看我下面的配置,可以前往这里,我是通过这里进行学习的(官方文档还是很稳的??):
Hadoop配置:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
Zookeeper配置:https://zookeeper.apache.org/doc/current/zookeeperStarted.html
HBase配置:http://hbase.apache.org/book.html#quickstart
Phoenix配置:https://phoenix.apache.org/installation.html
1.前往Microsoft store 安装好看的Windows Terminal(如果想要知道如何加在右键菜单上,去搜一下就有了)
2.前往Microsoft store 安装Ubuntu 20.04LTS(进行一些基础的配置,大概就是配置一下账号密码而已)
3.前往https://mirror.bit.edu.cn/apache下载对应的大数据平台的组件,我这边的配置是根据cdh来的,跟着平台走比较稳:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_62_packaging.html
4.下载(https://www.netsarang.com/zh/xftp)学习版本(用来传输下载下来的组件,当然你也可以在linux下用wget指令下载,还省去这个麻烦的步骤,也可以直接不需要它)
5.下载(https://code.visualstudio.com),下vscode用来打开文件编辑,我感觉我傻傻的??,进去后需要用下载这个组件(Remote Development)
上面都准备完成后,开始进入主题
先更新一下ubuntusudo apt update
下载jdk1.8,一定要java8,java11容易出问题巨坑
apt-cache search openjdk
可以查看所有jdk版本
sudo apt-get install openjdk-8-jdk
安装这个
安装成功执行java -version
就是正确的
java的目录在/usr/lib/jvm下
在ubuntu安装ssh,用来做连接 sudo apt install openssh-server
生成密钥sudo ssh-keygen -A
编辑sudo vi /etc/ssh/sshd_config
找到 PasswordAuthentication no将其更改为yes,保存退出
vi的操作方式:i编辑,esc后输入:wq!保存离开
启动ssh sudo service ssh --full-restart
使用xftp工具连接ubuntu,将我们下载的组件都扔到某个目录下,具体自己定。(建议在linux下进行下载,不用移来移去wget
指令)
使用tar -xvf *.tar.gz
解压
通过vscode连接linux,打开hadoop的目录
如果没有连接过就选择Add New SSH Host
录入格式请看输入框提示,如:ssh 用户名@linux地址 ssh root@localhost
录入完可以自行选择保存地址,选择保存地址后,右下角估计会弹出一个提示Host added!,点击connect即可,过程中会让你选择连接的系统,并且输入密码
连接成功后,下次再连接,可以通过远程资源管理进行
这个时候就得将所有解压出来的指令配置在变量中,方便我们日常使用而不用经常跑到目录下去使用它的指令
打开sudo vi /etc/profile
直接在头部增加我们的环境变量代码
大概这样的格式
vi的操作方式:i编辑,esc后输入:wq!保存离开
执行source /etc/profile
执行完后,可以通过echo $变量名
进行验证
回到我们的资源管理器,打开文件夹,选择我们的Hadoop目录
前往hadoop目录下,目前我们这帮新手接触最多的估计就是这几个文件
hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml
hadoop-env.sh的配置
在开头加上JAVA_HOME的路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
core-site.xml的配置
<configuration>
<!-- hdfs地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml的配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml的配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
yarn-site.xml的配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
设置无密码的ssh
ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
配置完成后执行
hdfs namenode -format
格式化文件系统
start-dfs.sh
启动NameNode、DataNode、SecondaryNameNode
start-yarn.sh
启动NodeManager和ResourceManager
想要停止也有对应的stop指令,不过我就懒人了,使用start-all.sh
就会调用上面两个指令
启动成功可以访问 http://localhost:9870进行查看,上面配置文件的具体解释看官方文档的说明
Zookeeper的配置就相当简单了,只需要把自带的zoo_sample.cfg模板里面的内容,复制到新创建的zoo.cfg里去即可
然后通过zkServer.sh start
启动我们的zookeeper
HBase的主要配置文件hbase-env.sh,hbase-site.xml
还是老样子,在hbase-env.sh开头处加上JAVA_HOME的路径,然后关闭自带的Zookeeper
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export HBASE_MANAGES_ZK=false
export HBASE_PID_DIR=/home/angerxzer/hbase-2.1.2/pids
hbase-site.xml的配置(这里采用伪分布式的部署,里面的地址按自己设置的进行配置)
<configuration>
<!-- 部署在Hadoop下的文件系统中 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<!-- 解决list_namespace java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper的错误 -->
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
<!-- 开启分布式运行 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 配置在外置的Zookeeper下 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<!-- 配置在外置的Zookeeper的端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/angerxzer/hbase-2.1.2/zookeeper</value>
</property>
<!-- 使用我们电脑的文件系统,作为数据存储,解决Failed to become active master异常 -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
然后我们就可以执行start-hbase.sh
开启我们的HBase了
将我们的目录下的
phoenix-5.0.0-HBase-2.0-server.jar
phoenix-core-5.0.0-HBase-2.0.jar
放到HBase的lib目录下
修改HBase下的hbase-site.xml,增加两个属性
<!-- Phoenix 开启 schema 与 namespace 的对应关系 -->
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
然后将HBase的hbase-site.xml文件里的内容,直接copy到Phoenix下的hbase-site.xml下
然后通过Phoenix bin目录下的sqlline.py zookeeper地址运行起来
运行py脚本需要安装python
sudo apt-get install python
至此我们的初步搭建已算完成
Hadoop+Zookeeper+HBase+Phoenix搭建
原文:https://www.cnblogs.com/ancm/p/13878432.html