需要准备的环境与对应的版本如下
软件版本hadoop2.7.1spark1.6.2hive1.2.1hbase1.1.5python3.8javadefault 1.8接下来就一步步的搭建hadoop环境
先简单的测试一下能否上网
ping www.baidu.com如果不行的话需要自行配置ip,操作如下,以b311为例
机房机器的ip格式为10.132.214.?,?那一位每个人都使用自己主机上面贴的数字.如10.132.214.27
E: 无法获得锁 /var/lib/dpkg/lock - open 类似的错误
sudo rm /var/lib/dpkg/lock如果电脑上没有hadoop用户就执行下面的命令
sudo adduser hadoop # 输入两次密码 然后按回车至指令结束设置sudo权限
# 为用户设置sudo权限 su # 切换到root用户 如果产生报错信息 su 认证失败则用下面的命令设置root用户的密码123 sudo passwd gedit /etc/sudoers gedit 与 vim 二选一 vim /etc/sudoers #在如下内容出加入如下内容 hadoop ALL=(ALL:ALL) ALL su hadoop # 切换回hadoop用户修改主机名,这里以hadoop为例
sudo vim /etc/hostname # 修改里面的名字为想要的主机名,永久修改 sudo hostname hadoop # 临时修改设置ip映射
sudo vim /etc/hosts在文件中加入自己的ip与名字,如果是集群搭建的话需要加入所有节点的ip和名字
10.132.214.27 hadoop除了上述,额外添加以下内容,否则最后可能接收不到kafka数据:
10.132.221.111 wzu111 10.132.221.112 wzu112 10.132.221.113 wzu113 10.132.221.114 wzu114 10.132.221.116 wzu116 10.132.221.117 wzu117 10.132.221.117 wzu117 10.132.221.118 wzu118 10.132.221.119 wzu119 10.132.221.120 wzu120 10.132.221.121 wzu121 10.132.221.123 wzu123 10.132.221.124 wzu124 10.132.221.125 wzu125 10.132.221.126 wzu126 10.132.221.127 wzu127 10.132.221.128 wzu128 10.132.221.129 wzu129 10.132.221.130 wzu130 10.132.221.132 wzu132出现1.8.0就成功了 如果要卸载多余的java执行下面的命令 选择你要卸载的版本执行
sudo apt-get autoremove default-jre sudo apt-get autoremove default-jdk sudo apt-get autoremove openjdk-11-jre-headless如果在安装的时候没有弹出设置密码界面,然后登录的时候报错如下,可以看这篇文章
mysql解决空密码错误修改mysql默认编码为utf-8
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf `增加如下内容` character_set_server=utf8重启mysql
sudo service mysql restart '或者' service mysql restart下载安装文件
到Hadoop官网下载安装文件hadoop-2.7.1.tar.gz,假设下载得到的安装文件为hadoop-2.7.1.tar.gz。下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的默认规范,用户安装的软件一般都是存放在“/usr/local/”目录下。请使用hadoop用户登录Linux系统,打开一个终端,执行如下命令:
$ cd ~/下载 # 进入下载目录 $ wget http://10.132.239.12:8000/file/hadoop-2.7.1.tar.gz # 下载hadoop软件 $ sudo tar -zxf ~/下载/hadoop-2.7.1.tar.gz -C /usr/local # 解压到/usr/local中 $ cd /usr/local/ $ sudo mv ./hadoop-2.7.1/ ./hadoop # 将文件夹名改为hadoop $ sudo chown -R hadoop ./hadoop # 修改文件权限 -R处理指定目录以及其子目录下的所有文件伪分布式模式配置 Hadoop可以在单个节点(一台机器)上以伪分布式的方式运行,同一个节点既作为名称节点(NameNode),也作为数据节点(DataNode),读取的是分布式文件系统 HDFS 中的文件。
需要配置相关文件,才能够让Hadoop在伪分布式模式下顺利运行。Hadoop的配置文件位于“/usr/local/hadoop/etc/hadoop/”中,进行伪分布式模式配置时,需要修改2个配置文件,即core-site.xml和hdfs-site.xml。
cd /usr/local/hadoop/etc/hadoop/可以使用vim编辑器打开core-site.xml文件
vim core-site.xml它的初始内容如下:
<configuration> </configuration>修改以后,core-site.xml文件的内容如下:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>在上面的配置文件中,hadoop.tmp.dir用于保存临时文件,若没有配置hadoop.tmp.dir这个参数,则默认使用的临时目录为“/tmp/hadoo-hadoop”,而这个目录在Hadoop重启时有可能被系统清理掉,导致一些意想不到的问题,因此,必须配置这个参数。fs.defaultFS这个参数,用于指定HDFS的访问地址,其中,9000是端口号。 同样,需要修改配置文件hdfs-site.xml,修改后的内容如下:
vim hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>修改配置文件以后,要执行名称节点的格式化,命令如下:
$ cd /usr/local/hadoop $ ./bin/hdfs namenode -format如果格式化成功,会看到“successfully formatted”和“Exitting with status 0”的提示信息,若为“Exitting with status 1”,则表示出现错误。
执行下面命令启动Hadoop:
$ cd /usr/local/hadoop $ ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格可能会让你输入一个yes/no 输入yes就好了 启动时可能会出现如下警告信息:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable WARN这个警告提示信息可以忽略,并不会影响Hadoop正常使用。
Hadoop启动完成后,可以通过命令 jps 来判断是否成功启动,命令如下:
jps若成功启动,则会列出如下进程:NameNode、DataNode和SecondaryNameNode。
在开头加入如下内容
export HADOOP_HOME=/usr/local/hadoop/ export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin配置环境变量
vim ~/.bashrc '修改如下' export HBASE_HOME=/usr/local/hbase export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HB ASE_HOME/bin source ~/.bashrc2. 下载MySQL JDBC驱动程序 为了让Hive能够连接到MySQL数据库,需要下载MySQL JDBC驱动程序。可以到MySQL官网(http://www.mysql.com/downloads/connector/j/)下载mysql-connector-java-5.1.40.tar.gz。下载到本地,保存到Linux系统的“~/下载”目录下(也就是“/home/hadoop/下载”目录)。 然后,在Linux系统中打开一个终端,在终端中执行如下命令解压缩文件:
scp tmp@10.132.221.201:~/mysql-connector-java-5.1.40-bin.jar ~/下载 # 密码: hadoop cd ~/下载 tar -zxvf ./mysql-connector-java-5.1.40.tar.gz #如果执行上面scp命令的这步可以跳过,因为已经解压好了 #下面将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下 # 两条命令看之前有无解压来选择 cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib # 或者用这条 cp ./mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib3. 启动MySQL
mysql -u root -p #登录MySQL数据库4. 在MySQL中为Hive新建数据库 现在,需要在MySQL数据库中新建一个名称为hive的数据库,用来保存Hive的元数据。MySQL中的这个hive数据库,是与Hive的配置文件hive-site.xml中的“mysql://localhost:3306/hive”对应起来的,用来保存Hive元数据。
mysql> create database hive;5. 配置MySQL允许Hive接入 需要对MySQL进行权限配置,允许Hive连接到MySQL。
mysql> grant all on *.* to hive@localhost identified by 'hive'; mysql> flush privileges;6. 配置Hive 下面的命令要先退出mysql界面 进入hive的conf目录,配置hadoop路径
CTRL+D退出mysql交互界面 $ cd /usr/local/hive/conf $ cp hive-env.sh.template hive-env.sh $ vim hive-env.sh在hive-env.sh文件里加下面的内容:
export HADOOP_HOME=/usr/local/hadoop保存退出后执行source
source hive-env.sh7. 启动Hive
$ cd /usr/local/hadoop $ ./sbin/start-dfs.sh然后,再执行如下命令启动Hive:
hive本实验采用的spark版本为2.3.1,不要按以前的教程下载,那个版本是1.6.2
启动spark
spark-shell如果出现问题也可以百度
sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa期间要输入enter
sudo apt install python3.6 #kafka 模块在3.6以上版本运行会报错 #curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py #sudo python3.8 get-pip.py 外网文件,通常无法下载 因此采用另一种方法 sudo apt-get install python3-pip python3.6 -m pip install kafkaImportError: cannot import name 'sysconfig’看这个连接
当输入python的时候设置默认为python3.6
sudo ln -s /usr/bin/python3.6 /usr/bin/python保存退出后运行 这里的python3.6指的是安装了kafka的python环境
python3.6 test.py效果如下即为成功
